Ssoon
[2주차] EKS Networking - Prefix Mode 본문
CloudNet@ 팀의 AWS EKS Workshop Study 2주차 정리입니다.
✅ Prefix Mode
- 네트워크 인터페이스의 개별 IP 주소를 할당하는 대신 /28(16개의 IP 주소) IP 주소 prefix를 할당합니다.
- ENABLE_PREFIX_DELEGATION이 "true"로 설정된 경우 VPC CNI는 ENI에 할당된 prefix에서 포드에 IP 주소를 할당합니다.
- Nitro 기반 Node 에서 동작하며 Nitro 기반이 아닌 Node 는 secondary IP 주소를 할당합니다.
- Amazon VPC CNI 추가 기능 버전 1.9.0 이상
[ Node Group 배포 ]
- Nitro 인스턴스 유형의 인스턴스로 maxPods을 100으로 노드그룹을 생성합니다.
vCPU가 30개 미만인 인스턴스의 경우 최대 수는 110이고 다른 모든 인스턴스의 경우 최대 수는 250입니다.
이 최대 수는 PREFIX_DELEGATION 의 활성화 여부에 관계없이 적용됩니다.
[ VPC CNI 구성 ]
- VPC CNI가 설치되어 실행 중인지 확인
kubectl get pods --selector=k8s-app=aws-node -n kube-system
- CNI 버전을 확인
kubectl describe daemonset aws-node --namespace kube-system | Select-String "Image" | %{ $_.ToString().Split('/')[1] }
- VPC CNI가 prefix mode에서 실행되도록 구성되었는지 확인합니다.
- ENABLE_PREFIX_DELEGATION값이 "false"로 설정되어 있습니다.
- ENABLE_PREFIX_DELEGATION값이 "true"로 설정합니다.
- 파라미터를 활성화하여 Amazon VPC CNI DaemonSet의 네트워크 인터페이스에 prefixes를 할당합니다.
kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
- prefix delegation 이 활성화되었으므로 worker nodes 의 네트워크 인터페이스에 할당된 prefix 를 볼 수 있습니다.
aws ec2 describe-instances --query 'Reservations[*].Instances[].{InstanceId: InstanceId, Prefixes: NetworkInterfaces[].Ipv4Prefixes[]}'
[ Pod 배포 ]
- Pod를 배포하기 위해 "other" 네임스페이스를 생성합니다.
- 150개의 Pod를 배포합니다
@"
apiVersion: apps/v1
kind: Deployment
metadata:
name: pause-pods-prefix
namespace: other
spec:
replicas: 150
selector:
matchLabels:
run: pause-pods-prefix
template:
metadata:
labels:
run: pause-pods-prefix
spec:
containers:
- name: reserve-resources
image: registry.k8s.io/pause
"@ | Set-Content -Path deployment-pause.yaml
- worker nodes 의 네트워크 인터페이스에 할당된 prefix 가 확장된 것을 확인할 수 있습니다.
[ 각 Amazon EC2 인스턴스 유형의 Amazon EKS 권장 최대 pods 수 ]
각 pod에 고유한 IP 주소가 할당되므로 인스턴스 유형에서 지원하는 IP 주소 수는 인스턴스에서 실행할 수 있는 pods 수를 결정하는 요소
- 각 인스턴스 유형에 대한 최대 pods 수를 계산하는 데 사용할 수 있는 스크립트를 다운로드합니다.
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
chmod +x max-pods-calculator.sh
- 스크립트를 실행합니다.
./max-pods-calculator.sh --instance-type t3.medium --cni-version 1.12.6-eksbuild.1
[ Node 에 배포할 수 있는 최대 Pod 수 ]
'AWS EKS Workshop Study' 카테고리의 다른 글
[3주차] EKS 스토리지 - EBS CSI driver (0) | 2023.05.12 |
---|---|
[2주차] EKS Networking - Custom configuration mode (0) | 2023.05.04 |
[2주차] EKS Networking - Secondary IP mode (0) | 2023.05.02 |
[1주차] Amazon EKS 시작하기 - Nodes - Fargate (0) | 2023.04.25 |
[1주차] Amazon EKS 시작하기 - Nodes - 자체 관리형 노드 (0) | 2023.04.25 |
Comments