unmanaged Pod 재시작하기
unmanaged Pod 재시작하기
node.cilium.io/agent-not-ready taint로 노드를 만든 클러스터가 아니라면, 호스트 네트워킹이 아닌 실행 중인 Pod를 재시작해 Cilium이 관리하게 해야 해요.
본문
노드를 node.cilium.io/agent-not-ready taint로 만들지 않은 클러스터라면 unmanaged pod를 수동으로 재시작해야 해요. Cilium이 관리하기 시작하도록 호스트 네트워킹 모드로 실행 중이 아닌 이미 실행 중인 모든 Pod를 재시작해요. 이는 Cilium 배포 전에 실행 중이던 모든 Pod가 Cilium이 제공하는 네트워크 연결을 갖고 NetworkPolicy가 적용되도록 하는 데 필요해요.
$ kubectl get pods --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,HOSTNETWORK:.spec.hostNetwork --no-headers=true | grep '<none>' | awk '{print "-n "$1" "$2}' | xargs -L 1 -r kubectl delete pod
pod "event-exporter-v0.2.3-f9c896d75-cbvcz" deleted
pod "fluentd-gcp-scaler-69d79984cb-nfwwk" deleted
pod "heapster-v1.6.0-beta.1-56d5d5d87f-qw8pv" deleted
pod "kube-dns-5f8689dbc9-2nzft" deleted
pod "kube-dns-5f8689dbc9-j7x5f" deleted
pod "kube-dns-autoscaler-76fcd5f658-22r72" deleted
pod "kube-state-metrics-7d9774bbd5-n6m5k" deleted
pod "l7-default-backend-6f8697844f-d2rq2" deleted
pod "metrics-server-v0.3.1-54699c9cc8-7l5w2" deleted
참고
macOS에서는
xargs가-r을 지원하지 않아 이 명령이 오류를 낼 수 있어요. 이 경우-r없이 명령을 실행해도 안전하며, 재시작할 Pod가 없으면 명령이 멈추는 증상이 생겨요.ctrl-c로 중단할 수 있어요.