Intro
오늘은 VPC CNI custom networking을 사용하지 않고, EKS노드그룹에 서브넷을 추가하는 방법에 대해 알아보도록 하겠습니다.
앞전에 EKS 클러스터에 서브넷 IP 추가 하기
라는 제목으로 포스팅을 연재하였었습니다.
https://kim-dragon.tistory.com/157?category=826616
이 포스팅은 "EKS클러스터에 IP가 부족할 경우 어떻게 해야할까?" 로 시작되었습니다.
우선 방법론적으로 말씀드리면 IP가 부족한 경우 2가지 방법으로 서브넷을 추가할 수 있습니다.
case1
: IP가 더 많은 서브넷을 생성하여 모두 이동한다라는 Migration 관점의 IP추가가 있을 것이고case2
: 기존 서브넷은 유지하되 새로운 서브넷을 추가한다라는 관점이 있을 것입니다.
위에 연재한 EKS 클러스터에 서브넷 IP 추가 하기
포스팅은 case1
의 Migration관점으로 VPC CNI custom networking를 사용하여 새로 생성한 subnet대역으로 이동하는 방법입니다.
이 방법은 아래 URL에서 자세한 예시를 확인할 수 있으며 기존 서브넷에 Primary ENI를 유지할 것인지, 유지 하지 않을것인지에 따라 아래 그림의 두가지 구조로 설정할 수 있습니다.
기존 서브넷에 Primary ENI를 유지
새로운 서브넷에 Primary ENI 이동
위 예시는 single AZ 일 경우의 예시 이며 이를 활용해서 multi AZ의 서브넷을 할당하기 위한 방법은 아래의 포스팅을 참고 하시면 됩니다.
EKS 클러스터에 서브넷 IP 추가 하기-3(VPC CNI custom networking 활용 성공 편)
https://kim-dragon.tistory.com/162?category=826616
EKS 클러스터에 서브넷 IP 추가 하기 (VPC CNI custom networking을 사용하지 않고, EKS노드그룹에 서브넷을 추가)
하지만 제가 원래 하고싶었던것은 아래 그림처럼 case2
는 기존 서브넷은 유지하고 새로운 노드그룹으로의 확장하는 것이었습니다.
이럴 경우 어떻게 해야할까요? 답은 생각보다 간단했습니다.
기존 서브넷(10.0.0.0/20)과 새로운 서브넷(100.64.0.0/10)을 포함하는 새로운 노드그룹을 만들면 됩니다.
그리고 기존 노드에 있던 pod들을 안전하게 dranning 시킨뒤 기존 노드그룹은 삭제 하면되겠죠.
필자는 EKS 클러스터를 생성할때 서브넷을 지정하게 되는데 노드그룹을 생성할때도 이 서브넷안에서 선택이 되어야 하는것이 아닌가? 라고 생각했었습니다.
예를들어 EKS 클러스터를 생성할때 A,B,C,D
라는 서브넷을 선택했다면 노드그룹도 그 안에서 생성이 되어야 한다고 생각했습니다.
정답은 아니다
였습니다. EKS 클러스터를 생성할때 지정하는 서브넷은 단순히 EKS관리 영역인 컨트롤 플레인과 통신하기 위한 ENI를 생성하는 위치를 결정하는 요인이며, 노드그룹이 아무 상관이 없었습니다.
즉 향후 E,F
의 서브넷이 추가되면 노드그룹을 생성할때 A,B,C,D,E,F
로 설정할 수 있다는 이야기 입니다.
여기서 주의할점은 위 그림과 같이 VPC 대역 자체에 IP가 부족해서 secondary CIDR을 생성하여 서브넷을 생성 할 경우 EKS 컨트롤 플레인이 인식하기 까지 최대 5시간이 필요 하므로 시간적 여유를 갖고 작업을 해야합니다. (기존 VPC에 새로운 서브넷을 추가하는 경우에는 상관이 없습니다.)
이상 EKS클러스터에 서브넷IP 를 추가하는 방법에 대해 알아 보았는데요. 도움이 되었는지 모르겠습니다.
궁금한 부분이 있으면 언제든지 댓글이나 메일로 소통하면 좋을 것 같습니다. 감사합니다.
'IT > AWS' 카테고리의 다른 글
[AWS] 비용할인 체계, Savings Plans란? (0) | 2021.11.17 |
---|---|
[AWS] GWLB란?(Gateway LoadBalancer) - 패턴별 GWLB 구축 (1) | 2021.10.27 |
[AWS] EKS 클러스터에 서브넷 IP 추가 하기-3(VPC CNI custom networking 활용 성공 편) (1) | 2021.10.17 |
[AWS] Cloudfront Log 파일 S3버킷에 날짜 경로로 저장하기(yyyy/mm/dd/hh) (0) | 2021.10.14 |
[AWS] EKS 클러스터에 서브넷 IP 추가 하기-2(VPC CNI custom networking 활용 실패 편) (0) | 2021.10.13 |