VPC CNI 플러그인이 Amazon EKS의 API 서버에 도달하지 못하는 이유는 무엇인가요?

2분 분량
0

Amazon Virtual Private Cloud(VPC) 컨테이너 네트워크 인터페이스(CNI) 플러그인이 Amazon Elastic Kubernetes Service(Amazon EKS)의 API 서버에 도달하지 못합니다.

간략한 설명


ipamD 데몬은 kube-proxy가 쿠버네티스 서비스 포트를 추가하기 전에 API 서버에 연결을 시도할 수 있습니다. 이 경우 ipamD와 API 서버 간의 연결 시간이 초과됩니다. 이 문제를 해결하려면 ipamDkube-proxy 로그를 확인한 다음, 각각의 타임스탬프를 비교합니다.

init 컨테이너를 추가할 수도 있습니다. init 컨테이너는 kube-proxy가 쿠버네티스 서비스 포트를 생성할 때까지 기다린다. 그런 다음 aws-node 포드는 시간 초과를 방지하기 위해 초기화를 완료합니다.

해결 방법

ipamD 및 kube-proxy 로그 확인

ipamD 로그

ipamD와 API 서버 간의 연결 시간이 초과되면 다음 오류가 발생합니다.

"Failed to create client: error communicating with apiserver:"

kube-proxy 로그

kube-proxy는 워커 노드에서 쿠버네티스 API 서버 엔드포인트에 대한 iptables 경로를 생성합니다. kube-proxy가 경로를 생성하면 다음 메시지가 표시됩니다.

"Adding new service port \"default/kubernetes:https\"

로그 간의 타임스탬프 비교

ipamD 로그

{"level":"error","ts":"2021-09-22T10:40:49.735Z","caller":"aws-k8s-agent/main.go:28","msg":"Failed to create client: error communicating with apiserver: Get https://10.77.0.1:443/version?timeout=32s: dial tcp 10.77.0.1:443: i/o timeout"}

kube-proxy 로그

{"log":"I0922 10:41:15.267648       1 service.go:379] Adding new service port \"default/kubernetes:https\" at 10.77.0.1:443/TCP\n","stream":"stderr","time":"2021-09-22T10:40:49.26766844Z"}

ipamD 로그에서 ipamD 데몬이 2021-09-22T10:40:49.735Z에 API 서버에 연결을 시도했음을 확인할 수 있습니다. 연결 시간이 초과되어 실패했습니다. kube-proxy 로그에서 kube-proxy2021-09-22T10:41:15.26766844Z에 Kubernetes 서비스 포트를 추가한 것을 확인할 수 있습니다.

init 컨테이너 추가

init 컨테이너를 추가하려면 다음 단계를 완료하세요.

  1. DNS가 Kubernetes 서비스 이름에 대해 확인되도록 aws-node 사양을 수정합니다.

    $ kubectl -n kube-system edit daemonset/aws-node

    다음과 같은 출력이 표시됩니다.

       initContainers:
       - name: init-kubernetes-api
         image: busybox:1.28
         command: ['sh', '-c', "until nc -zv ${KUBERNETES_PORT_443_TCP_ADDR} 443; do echo waiting for kubernetes Service endpoint; sleep 2; done"]
  2. aws-node 포드가 init 컨테이너를 생성했는지 확인합니다.

    $ kubectl get pods -n kube-system  -w

    다음과 같은 출력이 표시됩니다.

        ...
        kube-proxy-smvfl                          0/1     Pending             0          0s
        aws-node-v68bh                            0/1     Pending             0          0s
        kube-proxy-smvfl                          0/1     Pending             0          0s
        aws-node-v68bh                            0/1     Pending             0          0s
        aws-node-v68bh                            0/1     Init:0/1            0          0s
        kube-proxy-smvfl                          0/1     ContainerCreating   0          0s
        kube-proxy-smvfl                          1/1     Running             0          6s
        aws-node-v68bh                            0/1     PodInitializing     0          9s
        aws-node-v68bh                            0/1     Running             0          16s
        aws-node-v68bh                            1/1     Running             0          53s

관련 정보

Kubernetes kube-proxy 자체 관리형 애드온 업데이트

Kubernetes 웹 사이트의 버전 스큐 정책

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음