aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/kubernetes.go
diff options
context:
space:
mode:
authorGravatar Chris O'Haver <cohaver@infoblox.com> 2022-02-22 09:21:45 -0500
committerGravatar GitHub <noreply@github.com> 2022-02-22 09:21:45 -0500
commit74d4e9bb1b043a3ad5699d94d74e1d7d95ef8135 (patch)
treefa685068ed8897d5adc980077de39941d39739be /plugin/kubernetes/kubernetes.go
parentb1d5d7c572e8cfec87d6036ad0249c2ec4ae362a (diff)
downloadcoredns-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.go14
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
}