


새로 만들 노드 그룹의 이름을 입력하고, IAM 역할은 기존에 생성했던 것을 선택

다음 화면에서 노드 그룹 컴퓨팅 구성의 인스턴스 유형을 'm5a.large'로 선택

나머지 옵션들은 별다른 설정 없이 노드 그룹을 생성

새로운 노드 그룹이 생성되고 있는 화면을 볼 수 있다.

잠시 후 노드 그룹이 활성 상태로 변경되고, 노드 탭에도 새로운 노드 그룹에 있는 노드의 목록이 보여진다.

kubectl get nodes를 입력해서 쿠버네티스 클러스터가 새로운 노드를 잘 인식하고 있는지도 확인할 수 있다.

GKE에서는 '노드 그룹'이라는 말 대신 '노드 풀'이라는 용어를 사용한다.
클러스터 상세 화면에서 '노드 풀 추가'버튼을 클릭

새로 만들 노드 풀의 이름을 입력

노드 풀 내의 노드 수를 설정.

좌측에서 '노드'를 클릭하여 노드 상세 설정 화면에 진입

머신 구성 항목에서 'N1'을 선택하고, 머신 유형에서 '고성능 메모리' -> 'n1-highmem-2'를 선택


보조 부팅 디스크를 20GB로 설정하고 노드 풀 생성을 완료

노드 풀이 추가되는 모습을 확인 할 수 있다.
생성이 완료된 이후에 kubectl get nodes 명령어를 통해 노드가 제대로 인식되고 있는지 확인!



Label을 설정 할 노드 그룹을 클릭해 노드 그룹의 상세 화면에 진입

노드 그룹 상세 화면에서 '편집' 버튼을 클릭해 노드 그룹 설정 화면으로 진입

Kubernetes 레이블 항목에서 새로운 Label을 추가해 원하는 내용을 입력



클러스터 상세 화면에서 '노드' 탭으로 진입하여 설정할 노드 풀을 클릭


노드 풀 상세 화면에서 '수정' 버튼을 클릭하여 설정 화면으로 진입

Kubernetes 라벨 항목에서 라벨 추가 버튼을 클릭 후, 설정할 Label 내용을 입력


그대로 저장

ReplicaSet에 nodeSelector를 적용하는 모습을 보여주지만, ReplicaSet 내에서 Pod의 스펙을 정의하는 것이기 때문에, Pod 오브젝트만을 따로 정의 할 떄에도 nodeSelector 옵션을 동일하게 사용 가능!
apiVersion: v1
kind: Pod
metadata:
name: sample-pod
namespace: default
spec:
containers:
- name: nginx
image: nginx:1.27.0
ports:
- containerPort: 80
nodeSelector:
optimized_type: memory


GCP의 GKE는 별다른 설정 없이도, 노트 풀에서 '클러스터 자동 확장 처리 사용 설정' 기능을 활성화하면 자동으로 노드 오토 스케일링이 작동한다.

AWS에서 클러스터 오토스케일링 기능을 사용하는 방법은 쿠버네티스 개발자들이 친절하게 정리하여 https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/cloudprovider/aws 에 공유되어있다.
쿠버네티스 클러스터에 '액세스' 메뉴로 이동하여 노드 그룹의 액세스 항목 상세 화면에 진입


노드 그룹의 액세스 정책 상세 화면에서 'IAM에서 보기' 버튼을 클릭하여 IAM 서비스로 이동

권한 정책 항목에서 '권한 추가' -> '인라인 정책 생성' 버튼을 클릭하여 정책 추가 화면으로 진입

정책 편집기를 JSON 모드로 변경

https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md
가이드에 따라, 정책 내용을 입력.

다음으로 이동하여, 정책 이름을 입력하고 정책 생성을 완료

https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-autodiscover.yaml 파일의 내용을 복사하여 쿠버네티스에 apply 시킬 yaml 파일을 만든다.

파일 내용 마지막 부분쯤에 있는 < YOUR CLUSTER NAME > 부분을 내 EKS 클러스터 이름으로 수정


해당 yaml 파일을 apply 하면 설정 완료

이제부터 노드 그룹에 설정된대로 오토스케일링 기능이 동작

GCP의 GKE는 별다른 설정 없이도, 노트 풀에서 '클러스터 자동 확장 처리 사용 설정' 기능을 활성화하면 자동으로 노드 오토 스케일링이 작동한다.
현재 노드의 상태는 현재 2개의 노드가 있고 최대 크기가 4인 상태이다.

Request와 Limit을 설정하여 노드 개수가 늘어나는지 확인

처음 실행시 노드는 2개이고 실행된 Pod는 6개 나머지 4개는 Pending 상태이다.

