[EKS] EKS: Public-Public EKS 클러스터 - 5. 워커 노드 내부 확인

· 1 분 소요

서종호(가시다)님의 AWS EKS Workshop Study(AEWS) 1주차 학습 내용을 기반으로 합니다.


TL;DR

이전 글에서는 kubectl과 AWS CLI로 바깥에서 클러스터 구성 요소를 확인했다. 이번 글에서는 SSH로 워커 노드에 접속하여 안에서 확인한다.

  • OS: AL2023 (Amazon Linux 2023) 확인
  • CRI: containerd 버전, crictl 컨테이너 목록
  • kubelet: 서비스 상태, 설정 파일, kubeconfig
  • 인증서: CA 인증서 경로, describe-clustercertificateAuthority와 비교
  • 네트워크: VPC CNI가 만든 ENI, iptables 규칙
  • 온프레미스 비교: 경로·설정 방식이 어떻게 다른지


들어가며

온프레미스에서는 배포 후 마스터/워커 노드에 SSH로 접속해서 kubelet, etcd, 인증서, CNI 설정 등을 직접 확인했다. EKS에서 컨트롤 플레인은 AWS 관리 영역이라 접근할 수 없지만, 워커 노드는 일반 EC2 인스턴스이므로 SSH로 접속할 수 있다.


SSH 접속

노드 IP 확인

먼저 워커 노드의 공인 IP를 확인한다. AWS CLI로 조회하거나 EC2 콘솔에서 직접 확인할 수 있다.

aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,PrivateIPAdd:PrivateIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output table
------------------------------------------------------------------
|                        DescribeInstances                       |
+-------------------+---------------+-----------------+----------+
|   InstanceName    | PrivateIPAdd  |   PublicIPAdd   | Status   |
+-------------------+---------------+-----------------+----------+
|  myeks-node-group |  192.168.2.21 |  16.184.33.124  |  running |
|  myeks-node-group |  192.168.3.96 |  13.209.87.139  |  running |
+-------------------+---------------+-----------------+----------+
NODE1=16.184.33.124
NODE2=13.209.87.139

접속 확인

ping으로 네트워크 도달 여부를 먼저 확인한다. 배포 단계에서 확인한 myeks-node-group-sg 보안그룹이 현재 공인 IP에서 오는 모든 트래픽을 허용하고 있으므로 ping이 통과해야 한다.

ping -c 1 $NODE1
PING 16.184.33.124 (16.184.33.124): 56 data bytes
64 bytes from 16.184.33.124: icmp_seq=0 ttl=116 time=7.085 ms

--- 16.184.33.124 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 7.085/7.085/7.085/nan ms

ping이 실패한다면 실습 환경의 공인 IP가 변경된 것일 수 있다. 트러블슈팅: 공인 IP 변경을 참고한다.

SSH 접속

ssh -o StrictHostKeyChecking=no -i ~/.ssh/my-eks-keypair.pem ec2-user@$NODE1 hostname
ip-192-168-2-21.ap-northeast-2.compute.internal

AL2023 기반 EKS 노드의 기본 사용자는 ec2-user다.

참고: StrictHostKeyChecking=no

SSH 클라이언트는 처음 접속하는 서버의 호스트 키를 ~/.ssh/known_hosts에 기록하고, 이후 접속 시 키가 일치하는지 확인한다. StrictHostKeyChecking=no로 설정하면 호스트 키 확인 없이 바로 접속한다. 실습 환경에서는 편리하지만, 프로덕션에서는 MITM(중간자 공격) 위험이 있으므로 사용하지 않는다.


OS 확인


CRI: containerd


kubelet

서비스 상태

설정 파일

kubeconfig


인증서


네트워크


온프레미스 비교


정리





hit count

댓글남기기