kubernetes: log server start delay and api connection failures (#5044)
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
This commit is contained in:
parent
b1d5d7c572
commit
74d4e9bb1b
1 changed files with 14 additions and 0 deletions
|
@ -272,6 +272,7 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o
|
||||||
}()
|
}()
|
||||||
|
|
||||||
timeout := time.After(5 * time.Second)
|
timeout := time.After(5 * time.Second)
|
||||||
|
logWaiting := time.After(500 * time.Millisecond)
|
||||||
ticker := time.NewTicker(100 * time.Millisecond)
|
ticker := time.NewTicker(100 * time.Millisecond)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
for {
|
for {
|
||||||
|
@ -280,6 +281,8 @@ func (k *Kubernetes) InitKubeCache(ctx context.Context) (onStart func() error, o
|
||||||
if k.APIConn.HasSynced() {
|
if k.APIConn.HasSynced() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
case <-logWaiting:
|
||||||
|
log.Info("waiting for Kubernetes API before starting server")
|
||||||
case <-timeout:
|
case <-timeout:
|
||||||
log.Warning("starting server with unsynced Kubernetes API")
|
log.Warning("starting server with unsynced Kubernetes API")
|
||||||
return nil
|
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) {
|
func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (bool, string) {
|
||||||
ticker := time.NewTicker(100 * time.Millisecond)
|
ticker := time.NewTicker(100 * time.Millisecond)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
|
logTicker := time.NewTicker(10 * time.Second)
|
||||||
|
defer logTicker.Stop()
|
||||||
|
var connErr error
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
|
case <-logTicker.C:
|
||||||
|
if connErr == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Warningf("Kubernetes API connection failure: %v", connErr)
|
||||||
case <-ticker.C:
|
case <-ticker.C:
|
||||||
sv, err := kubeClient.ServerVersion()
|
sv, err := kubeClient.ServerVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
connErr = err
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,6 +340,7 @@ func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (b
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return true, discovery.SchemeGroupVersion.String()
|
return true, discovery.SchemeGroupVersion.String()
|
||||||
} else if !kerrors.IsNotFound(err) {
|
} else if !kerrors.IsNotFound(err) {
|
||||||
|
connErr = err
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,6 +348,7 @@ func (k *Kubernetes) endpointSliceSupported(kubeClient *kubernetes.Clientset) (b
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return true, discoveryV1beta1.SchemeGroupVersion.String()
|
return true, discoveryV1beta1.SchemeGroupVersion.String()
|
||||||
} else if !kerrors.IsNotFound(err) {
|
} else if !kerrors.IsNotFound(err) {
|
||||||
|
connErr = err
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue