Terraform의 AWS EKS 모듈로 시작된 EKS 클러스터(1.24)가 있습니다. 시스템 생성 보안 그룹. 프라이빗 또는 퍼블릭 서브넷.
클러스터에는 노드 1개와 백플레인이 있습니다. 온라인 상태가 되면 노드가 연결되고 준비 상태가 됩니다. coredns는 클러스터 API에서 버전을 가져올 수 없기 때문에 매우 슬프지만.
온라인 상태가 되면 문제의 징후는 없지만 로컬 루프백을 통해 제어 플레인 API에 연결되지 않습니다. 그리고 인터넷에 연결되어 있지 않습니다.
./kubectl run -i --tty --rm debug --image=busybox -- sh
If you don't see a command prompt, try pressing enter.
/ # wget $KUBERNETES_PORT_443_TCP_ADDR:$KUBERNETES_PORT_443_TCP_PORT/version
Connecting to 172.20.0.1:443 (172.20.0.1:443)
wget: can't connect to remote host (172.20.0.1): Connection timed out
/ # nc gooogle.com
nc: bad address 'gooogle.com'
NACL이 작동하는 다른 계정과 비교하여 확인해 보니 괜찮은 것 같습니다. VPC CNI를 사용하거나 사용하지 않고 시도해 보았습니다.
노드 수준에서 노드는 인터넷에 연결하고 이미지를 가져올 수 있습니다. 포드 수준에서 누락된 부분은 무엇이며, API에 연결할 수 없고 인터넷에 연결할 수 없는 이유는 무엇입니까?
답변1
사용자 정의 AMI 이미지를 생각해낸 사람은
sysctl net.ipv4.ip_forward
모든 네트워크 트래픽을 차단하는 0으로 설정하기로 결정했습니다.