diff options
author | 2022-02-22 09:21:45 -0500 | |
---|---|---|
committer | 2022-02-22 09:21:45 -0500 | |
commit | 74d4e9bb1b043a3ad5699d94d74e1d7d95ef8135 (patch) | |
tree | fa685068ed8897d5adc980077de39941d39739be /plugin/kubernetes/kubernetes.go | |
parent | b1d5d7c572e8cfec87d6036ad0249c2ec4ae362a (diff) | |
download | coredns-74d4e9bb1b043a3ad5699d94d74e1d7d95ef8135.tar.gz coredns-74d4e9bb1b043a3ad5699d94d74e1d7d95ef8135.tar.zst coredns-74d4e9bb1b043a3ad5699d94d74e1d7d95ef8135.zip |
kubernetes: log server start delay and api connection failures (#5044)
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
Diffstat (limited to 'plugin/kubernetes/kubernetes.go')
-rw-r--r-- | plugin/kubernetes/kubernetes.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/plugin/kubernetes/kubernetes.go b/plugin/kubernetes/kubernetes.go index 12224a872..8f45aac70 100644 --- a/plugin/kubernetes/kubernetes.go +++ b/plugin/kubernetes/kubernetes.go @@ -272,6 +272,7 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o }() timeout := time.After(5 * time.Second) + logWaiting := time.After(500 * time.Millisecond) ticker := time.NewTicker(100 * time.Millisecond) defer ticker.Stop() for { @@ -280,6 +281,8 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o if k.APIConn.HasSynced() { return nil } + case <-logWaiting: + log.Info("waiting for Kubernetes API before starting server") case <-timeout: log.Warning("starting server with unsynced Kubernetes API") return nil @@ -304,11 +307,20 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (bool, string) { ticker := time.NewTicker(100 * time.Millisecond) defer ticker.Stop() + logTicker := time.NewTicker(10 * time.Second) + defer logTicker.Stop() + var connErr error for { select { + case <-logTicker.C: + if connErr == nil { + continue + } + log.Warningf("Kubernetes API connection failure: %v", connErr) case <-ticker.C: sv, err := kubeClient.ServerVersion() if err != nil { + connErr = err continue } @@ -328,6 +340,7 @@ func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (b if err == nil { return true, discovery.SchemeGroupVersion.String() } else if !kerrors.IsNotFound(err) { + connErr = err continue } @@ -335,6 +348,7 @@ func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (b if err == nil { return true, discoveryV1beta1.SchemeGroupVersion.String() } else if !kerrors.IsNotFound(err) { + connErr = err continue } |