[EKS] Network

Hyun-Sung Kim·2025년 1월 5일

Kubernetes

목록 보기
9/24

EKS <-> EC2 내부 통신

  • EKS의 pod와 EC2 인스턴스끼리 내부 통신의 구현이 필요한 경우 아래와 같은 절차를 진행한다.
    1) VPC Peering
    - (EKS <-> EC2)

    2) Routing Table
    - (EKS -> EC2) => Peering Connection
    - EKS 전용 private 라우팅 테이블 3개에 적용

     * (EC2 -> EKS) => Peering Connection
       - 해당 EC2 인스턴스가 위치한 라우팅 테이블에 적용

    3) VPC의 'DNS hostnames' 활성화


EKS <-> RDS 내부 통신

<배 경>

  • AWS EC2 -> RDS
    * IP lookup시 private ip를 받아옴
  • AWS EKS의 POD -> RDS
    IP lookup시 pupblic ip를 받아옴
    RDS Endpoint의 public ip로 연결을 시도합니다.
    방화벽에는 Private ip로만 allow 되어있기 때문에 연결이 실패하게 됩니다.
    EC2에서 nslookup RDS로 확인된 Private IP로, POD에서 연결 시도하면 연결에 성공합니다.

<원 인>

  • EKS 클러스터 엔드포인트 액세스 제어
  • 클러스터에 대해 엔드포인트 프라이빗 액세스를 활성화하면 Amazon EKS에서는 사용자 대신 Route 53 프라이빗 호스팅 영역을 생성하고 클러스터의 VPC에 연결합니다.
  • 이 프라이빗 호스팅 영역은 Amazon EKS에서 관리하며, 사용자 계정의 Route 53 리소스에는 표시되지 않습니다.

<필요 작업>

  • 프라이빗 호스팅 영역이 API 서버로 트래픽을 올바로 라우팅하려면 VPC에서 enableDnsHostnames 및 enableDnsSupport가 true로 설정되어야 하고,
  • VPC에 설정된 DHCP 옵션이 도메인 이름 서버 목록에 AmazonProvidedDNS를 포함해야 합니다.

  • VPC Peering - DNS 관련 설정 Enable
  • 작업 결과

EKS <- 0.0.0.0/0

  • K8S에서 서비스 또는 인그레스 생성 시, AWS가 자동으로 열어주기 때문에, 현재 추가 설정 필요 x
  • AWS Security Group에, 관련 보안 규칙 그룹이 자동으로 생성되며, Description 항목에 아래와 같은 주석이 명시됩니다.
    * [k8s] Managed SecurityGroup for LoadBalancer
profile
Cloud Engineer

0개의 댓글