EKS Auto Mode의 VPC 네트워킹과 로드 밸런싱 알아보기
EKS Auto Mode의 VPC 네트워킹과 로드 밸런싱 알아보기
EKS Auto Mode에서 Virtual Private Cloud(VPC) 네트워킹과 로드 밸런싱 기능을 구성하는 방법을 설명해요. 대부분의 네트워킹 컴포넌트는 자동 관리되지만, NodeClass 리소스와 로드 밸런서 어노테이션으로 일부 측면을 사용자 지정할 수 있어요.
출처: 문서
본문
EKS Auto Mode를 사용하면 AWS가 클러스터의 VPC Container Network Interface(CNI) 구성과 로드 밸런서 프로비저닝을 관리해요. NodeClass 객체를 정의하고 Service와 Ingress 리소스에 특정 어노테이션을 적용해 네트워킹 동작에 영향을 줄 수 있으며, EKS Auto Mode가 제공하는 자동화된 운영 모델은 유지돼요.
네트워킹 기능 (Networking capability)
EKS Auto Mode에는 노드와 파드 네트워킹을 처리하는 새로운 네트워킹 기능이 있어요. NodeClass Kubernetes 객체를 만들어 구성할 수 있어요.
이전 AWS VPC CNI에 대한 구성 옵션은 EKS Auto Mode에 적용되지 않아요.
NodeClass로 네트워킹 구성하기 (Configure networking with a NodeClass)
EKS Auto Mode의 NodeClass 리소스는 네트워킹 기능의 특정 측면을 사용자 지정할 수 있게 해줘요. NodeClass를 통해 보안 그룹 선택 지정, VPC 서브넷 간 노드 배치 제어, SNAT 정책 설정, 네트워크 정책 구성, 네트워크 이벤트 로깅 활성화가 가능해요. 이 접근 방식은 EKS Auto Mode의 자동화된 운영 모델을 유지하면서 네트워크 사용자 지정의 유연성을 제공해요.
NodeClass를 사용하면 다음을 할 수 있어요:
- 노드용 보안 그룹 선택
- VPC 서브넷에 노드가 배치되는 방식 제어
- 노드 SNAT 정책을
random또는disabled로 설정 - 다음을 포함한 Kubernetes 네트워크 정책 활성화:
- 네트워크 정책을 Default Deny 또는 Default Allow로 설정
- 파일로 네트워크 이벤트 로깅 활성화
- 파드를 다른 서브넷에 연결해 파드 트래픽을 노드 트래픽과 격리
Create an Amazon EKS NodeClass 방법을 알아보세요.
고려 사항 (Considerations)
EKS Auto Mode가 지원하는 것:
- EKS 네트워크 정책.
- Kubernetes 파드의
HostPort와HostNetwork옵션. - 공용 또는 프라이빗 서브넷의 노드와 파드.
- 노드에서 DNS 쿼리 캐싱.
- EFA 워크로드를 위한 정적 네트워크 인터페이스 구성. 자세한 내용은 Static Network Interface Configuration을 참고해 주세요.
EKS Auto Mode가 지원하지 않는 것:
- 파드당 보안 그룹 (Security Groups per Pod, SGPP). Auto Mode에서 파드 트래픽에 별도 보안 그룹을 적용하려면
NodeClass의podSecurityGroupSelectorTerms를 사용해 주세요. 자세한 내용은 Separate subnets and security groups for Pods를 참고해 주세요. ENIConfig의 Custom Networking. Separate subnets and security groups for Pods로 파드를 여러 서브넷에 넣거나 노드 트래픽에서 완전히 격리할 수 있어요.- Warm IP, warm prefix, warm ENI 구성.
- Minimum IP targets 구성.
- 오픈 소스 AWS VPC CNI가 지원하는 기타 구성.
- conntrack 타이머 사용자 지정(기본 300s) 같은 네트워크 정책 구성.
- 네트워크 이벤트 로그를 CloudWatch로 내보내기.
- 대체 CNI 플러그인(예: Cilium, Calico)과 대체 네트워크 정책 플러그인. Amazon EKS Auto Mode는 앞서 설명한 내장 네트워킹 기능을 사용해요. 자세한 내용은 Considerations for Amazon EKS Auto Mode를 참고해 주세요.
네트워크 리소스 관리 (Network Resource Management)
EKS Auto Mode는 NodeClass 리소스의 네트워킹 구성을 모니터링해 prefix, IP 주소 지정, 네트워크 인터페이스 관리를 처리해요. 서비스는 몇 가지 주요 작업을 자동으로 수행해요:
- Prefix 위임 (Prefix Delegation) — EKS Auto Mode는 기본적으로 파드 네트워킹에 prefix 위임(/28 prefix)을 사용하고, 스케줄링된 파드 수에 따라 확장되는 미리 정의된 IP 리소스 워밍 풀을 유지해요. 파드 서브넷 단편화가 감지되면 Auto Mode는 보조 IP 주소(/32)를 프로비저닝해요. 이 기본 파드 네트워킹 알고리즘 때문에 Auto Mode는 인스턴스 유형별 지원 ENI와 IP 수를 기준으로(최악의 단편화를 가정) 노드당 최대 파드를 계산해요. 인스턴스 유형별 Max ENI와 IP에 대한 자세한 내용은 EC2 사용자 안내서의 Maximum IP addresses per network interface를 참고해 주세요. 최신 세대(Nitro v6 이상) 인스턴스 패밀리는 일반적으로 인스턴스 유형별 ENI와 IP가 많으며, Auto Mode는 그에 맞춰 최대 파드 계산을 조정해요.
- IPv6 클러스터에서는 prefix 위임만 사용돼요. Auto Mode는 IPv4 기반과 동일한 계산을 적용하고 계산된 값이 110보다 낮으면 그 값을, 그렇지 않으면 노드당 최대 파드를 110으로 상한을 둬요.
- 쿨다운 관리 (Cooldown Management) — 서비스는 더 이상 사용되지 않는 prefix나 보조 IPv4 주소를 위한 쿨다운 풀을 구현해요. 쿨다운 기간이 만료되면 이 리소스는 VPC로 반환돼요. 하지만 쿨다운 기간 중에 파드가 이 리소스를 재사용하면 쿨다운 풀에서 복원돼요.
- IPv6 지원 (IPv6 Support) — IPv6 클러스터의 경우 EKS Auto Mode는 기본 네트워크 인터페이스의 노드당
/80IPv6 prefix를 프로비저닝해요.podSubnetSelectorTerms를 사용하면 prefix가 대신 파드 서브넷의 보조 네트워크 인터페이스에 할당돼요.
서비스는 또한 모든 네트워크 인터페이스의 적절한 관리와 가비지 컬렉션을 보장해요.
로드 밸런싱 (Load balancing)
EKS Auto Mode가 프로비저닝한 AWS Elastic Load Balancers는 Service와 Ingress 리소스의 어노테이션으로 구성해요.
자세한 내용은 Create an IngressClass to configure an Application Load Balancer 또는 Use Service Annotations to configure Network Load Balancers를 참고해 주세요.
EKS Auto Mode와 로드 밸런싱의 고려 사항
- 기본 타게팅 모드는 Instance Mode가 아닌 IP Mode예요.
- EKS Auto Mode는 Network Load Balancer에 대해 Security Group Mode만 지원해요.
- AWS는 자체 관리 AWS load balancer controller에서 EKS Auto Mode 관리로 로드 밸런서를 마이그레이션하는 것을 지원하지 않아요.
TargetGroupBinding스펙의networking.ingress.ipBlock필드는 지원되지 않아요.- 워커 노드가 사용자 지정 보안 그룹(
eks-cluster-sg-<...>명명 패턴이 아닌)을 사용한다면 클러스터 역할에 추가 IAM 권한이 필요해요. 기본 EKS 관리형 정책은 EKS가eks-cluster-sg-로 명명된 보안 그룹만 수정하도록 허용해요. 사용자 지정 보안 그룹을 수정할 권한이 없으면 EKS가 ALB/NLB 트래픽이 파드에 도달하도록 하는 필수 인그레스 규칙을 추가할 수 없어요.
CoreDNS 고려 사항 (CoreDNS considerations)
EKS Auto Mode는 클러스터 내 DNS 해석을 제공하기 위해 기존의 CoreDNS 배포를 사용하지 않아요. 대신 Auto Mode 노드는 각 노드에서 직접 시스템 서비스로 실행되는 CoreDNS를 활용해요. 기존 클러스터를 Auto Mode로 전환하는 경우, 워크로드를 Auto Mode 노드로 모두 옮긴 후 클러스터에서 CoreDNS 배포를 제거할 수 있어요.
중요: Auto Mode와 비-Auto Mode 노드를 모두 가진 클러스터를 유지할 계획이라면 CoreDNS 배포를 유지해야 해요. 비-Auto Mode 노드는 노드 수준의 DNS 서비스에 접근할 수 없으므로 DNS 해석을 위해 기존 CoreDNS 파드에 의존해요.