0. VPC CIDR 대역 2개로 설정 및 secondary subnet 세팅
1. 필수 설정 (1) aws-node DaemonSet 필수 옵션 수정
AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG: Custom 네트워크 설정 및 Pod IP 대역 분리
ENABLE_PREFIX_DELEGATION: Pod 할당량이 defult 로 설정되는 것 방지
# aws-node DaemonSet 설정 수정
$ kubectl edit daemonset aws-node -n kube-system
# 수정 내용 (false -> true)
- name: AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG
value: "true"
..
- name: ENABLE_PREFIX_DELEGATION
value: "true"
2. 필수 설정 (2) ENIConfig 설정
ENIConfig yaml 파일 2개 생성 (a/c 존 각각 1개씩)
cat >ap-northeast-1a.yaml <<EOF
apiVersion: crd.k8s.amazonaws.com/v1alpha1
kind: ENIConfig
metadata:
name: ap-northeast-1a
spec:
securityGroups:
- sg-0078bd7076f5c4606
subnet: subnet-0ff040f9019b0c81c
EOF
---
cat >ap-northeast-1c.yaml <<EOF
apiVersion: crd.k8s.amazonaws.com/v1alpha1
kind: ENIConfig
metadata:
name: ap-northeast-1c
spec:
securityGroups:
- sg-0078bd7076f5c4606
subnet: subnet-033f56813c701891e
EOF
$ kubectl get ENIConfigs
3. 필수 설정 (3) aws-node DaemonSet 필수 옵션 적용
ENI_CONFIG_LABEL_DEF=topology.kubernetes.io/zone: 클러스터에 생성된 모든 새로운 Amazon EC2 노드에 가용 영역의 ENIConfig를 자동으로 적용
$ kubectl set env daemonset aws-node -n kube-system ENI_CONFIG_LABEL_DEF=topology.kubernetes.io/zone
(* 필수설정 (1), (2) 이후, 해당 설정을 하지 않을 경우, pod ip 가 secondary ip 로 정상 할당 되지 않음)
4. 노드 롤링 업데이트
ENIConfig 설정 후 새 노드 올려야 secondary ip 할당이 적용된다.
관리형 노드그룹의 경우, Launch Template version 을 새로 생성 후 노드그룹 Launch Template 에서 2버전으로 수정해주면 자동 롤링업데이트가 된다.
기존 노드 2대에서, 새 노드 2대가 생성 및 pod 배포 후 기존 노드 2대는 자동 삭제된다.
5. 노드 업데이트 후
* 참고 docs
1. 사용자 지정 네트워킹
사용자 지정 네트워킹 - Amazon EKS
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
2. Amazon EKS 노드의 보조 네트워크 인터페이스 사용자 지정
Amazon EKS 노드의 보조 네트워크 인터페이스 사용자 지정 - Amazon EKS
프로덕션 클러스터에서 사용할 유효한 보안 그룹을 지정하지 않고 다음을 사용하는 경우, Amazon VPC CNI plugin for Kubernetes의 버전 1.8.0 이상을 사용하는 경우 노드의 기본 Elastic 네트워크 인터페이스
docs.aws.amazon.com