Wiki
Kubernetes Potholes
Table of Contents
Webhook Blocking Webhook Deployment Itself
If your MutatingWebhookConfiguration
has failurePolicy: Fail
, then make sure to configure the webhook to ignore the webhook deployment itself, such as using a namespace selector.
I hit this issue with vault-agent-injector
. The webhook “vault.hashicorp.com” is backed by vault-agent-injector-svc
, which requires deployment/vault-agent-injector
to be up to serve the webhook. When vault-agent-injector
has 0 replica, the “vault.hashicorp.com” webhook prevents vault-agent-injector
itself from scaling up despite HPA min=2.
Because vault-agent-injector
is down and the webhook is down, GKE netd
daemonset pods cannot run on new nodes to configure CNI on these nodes. New nodes are all NotReady
, because runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
.
This will cause any new nodes created as part of cluster autoscaling to be unhealthy, and will risk cascading failure of the cluster.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
❯ kubectl get deploy -n vault
NAME READY UP-TO-DATE AVAILABLE AGE
vault-agent-injector 0/2 0 0 193d
❯ kubectl describe deploy -n vault
Name: vault-agent-injector
Namespace: vault
...
OldReplicaSets: <none>
NewReplicaSet: vault-agent-injector-69988955f5 (0/2 replicas created)
❯ kubectl describe rs vault-agent-injector-69988955f5 -n vault
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 15m (x41 over 5h49m) replicaset-controller Error creating: Internal error occurred: failed calling webhook "vault.hashicorp.com": Post "https://vault-agent-injector-svc.vault.svc:443/mutate?timeout=10s": no endpoints available for service "vault-agent-injector-svc"
❯ kubectl describe ds netd -n kube-system
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 7m18s (x42 over 4h39m) daemonset-controller Error creating: Internal error occurred: failed calling webhook "vault.hashicorp.com": Post "https://vault-agent-injector-svc.vault.svc:443/mutate?timeout=10s": no endpoints available for service "vault-agent-injector-svc"