노드 관리하기
노드란 컨테이너 애플리케이션이 실행되는 서버로, Kubernetes Engine에서는 동일한 인스턴스 유형을 가지는 노드 그룹인 노드 풀 단위로 노드를 관리합니다.
노드 풀 생성 및 관리
Kubernetes Engine 서비스에서 노드 풀을 관리하는 방법은 다음과 같습니다.
노드 풀 생성
클러스터를 먼저 생성한 후, 노드 풀을 생성할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
-
Cluster 메뉴에서 노드 풀을 생성할 클러스터를 선택합니다.
-
클러스터의 상세 페이지에서 노드 풀 탭을 클릭한 후, [노드 풀 만들기] 버튼을 클릭합니다.
-
노드 풀 만들기에서 정보를 입력하고, [만들기] 버튼을 클릭합니다.
구분 설명 노드 풀 타입 생성할 노드 풀 타입을 선택
-Bare Metal Server
타입은kr-central-2
리전만 지원기본 설정 노드 풀의 기본 정보 설정
- 노드 풀 이름: 노드 풀 이름을 입력
- 노드 풀 설명(선택): 60자 이내로 노드 풀 설명 작성Image 노 드에 사용할 이미지를 1개 선택
- 노드 풀 타입에 따라 선택 가능한 이미지가 다름Instance 타입 노드 풀의 인스턴스 유형 선택
⚠️ 정상적인 Kubernetes Engine 서비스 이용을 위해 최소 1 GiB 이상의 인스턴스 사용 필요Volume 인스턴스의 볼륨 타입과 크기를 설정
- 현재 볼륨 타입은 SSD 타입으로 고정되어 있고, 볼륨 크기는 30 ~ 5,120GB 내에서 지정 가능
⚠️Bare Metal Server
타입 노드 풀은 설정 불가노드 수 노드 풀의 노드 개수 설정 노드 풀 Network 설정 노드가 실행되는 VPC와 Subnet을 선택
- VPC: 클러스터의 VPC와 동일하며, 별도 설정 불가
- Subnet: 클러스터 생성 시 선택한 Subnet 중, 해당 노드 풀의 노드가 실행될 Subnet을 선택
ㄴ Multi-AZ를 지원하는 kr-central-2 리전의 경우, 노드 풀의 network를 서로 다른 AZ의 Subnet으로 다중 선택하여 가용성을 높일 수 있음리소스 기반 오토 스케일 (선택) 노드 풀의 가용 리소스가 부족해 파드를 스케줄링 할 수 없을 때 노드의 수를 자동으로 확장하고, 노드의 리소스 사용률이 일정 수준 이하로 유지될 때에는
노드의 수를 자동으로 축소하는 기능
⚠️Bare Metal Server
타입 노드 풀은 설정 불가
- 최소 노드 수: 자동 확장을 사용하여 자동으로 노드 수를 축소할 때 가능한 최소 노드 수
- 최대 노드 수: 자동 확장을 사용하여 자동으로 노드 수를 확장할 때 가능한 최대 노드 수Key Pair 노드 풀에 속한 노드 인스턴스에 SSH 접근이 필요한 경우 Key Pair 사용을 설정함
ㄴ 기존 Key Pair를 선택 또는 신규 Key Pair 생성 가능
ㄴ 신규 Key Pair 생성 방법: 신규 Key Pair 생성을 클릭한 후, Key Pair 이름 입력 후 [생성 및 다운로드]를 클릭하여 pem 파일을 다운로드
- 노드 풀에 지정한 Key Pair는 인스턴스 세부 정보에 표시되지 않음
- 클러스터 생성 후에는 Key Pair 변경이 불가하며, 변경 필요시 노드 풀을 새로 생성하여 설정 필요Network 본딩 Bare Metal Server
타입 노드 풀을 생성하는 경우, Network 본딩 기능이 자동 적용됨
- Network 본딩은 노드 풀 Network 설정에서 선택한 Subnet으로 생성되는 각 노드의 IP와 동일하게 2개의 인터페이스가 설정됨
- 단일 Availability Zone만 가능고급 설정(선택) 노드 풀의 고급 정보 설정
- 노드 레이블(선택): 노드 풀에 있는 모든 노드에 적용될 Kubernetes 레이블 지정, 설정한 레이블은 nodeSelector와 함께 사용 가능
- 노드 테인트(선택): 노드 풀에 있는 모든 노드에 적용될 Kubernetes 테인트 지정, 설정한 테인트는 toleration과 함께 사용 가능
- CPU 멀티스레딩: CPU 코어당 단일 스레드를 지정하여 성능을 최적화하는 옵션 (일부 인스턴스 타입은 CPU 멀티스레딩 옵션이 필수)
ㄴ 고성능 컴퓨팅(HPC)과 같은 특정 워크로드일 경우에는 비활성화 추천합니다.
ㄴ ⚠️Bare Metal Server
타입 노드 풀은 설정 불가
- 사용자 스크립트(선택): 노드 풀에 있는 모든 노드의 생성 시점에 실행할 쉘 스크립트 입력
ㄴ 노드에 별도 구성이 필요할 때 사용하며 최대 16KB까지 입력 가능, 한 번 설정한 사용자 스크립트는 변경 불가
노드 풀 설정
클러스터에 속한 노드 풀의 정보 및 노드 수를 확인하거나 수정할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
-
Cluster 메뉴에서 노드 풀 설정을 확인할 클러스터를 선택합니다.
-
클러스터 상세 페이지의 노드 풀 탭에서 설정할 노드 풀의 [더 보기] 아이콘 > 노드 풀 설정을 선택합니다.
-
노드 풀 설정 팝업창에서 정보를 확인합니다. 설정 수정 시, 정보를 입력하고 [저장] 버튼을 클릭합니다.
구분 설명 노드 풀 정보 노드 풀의 정보
- 노드 풀 이름: 변경 불가
- 노드 풀 설명(선택): 현재 노드 풀 설명을 확인하거나 60자 이내로 수정 가능노드 수 현재 노드 풀의 노드 수
- 노드 수 변경 가능
노드 풀 상세 보기
노드 풀의 세부 정보와 해당 노드 풀에 속한 노드의 정보를 확인할 수 있습니다.
-
카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
-
Cluster 메뉴에서 상세 정보를 확인할 노드 풀이 속한 클러스터를 선택합니다.
-
클러스터 상세 페이지에서 노드 풀 탭을 클릭한 후, 세부 정보를 확인할 노드 풀을 선택합니다.
-
노드 풀의 상세 페이지에서 정보를 확인합니다.
탭 구분 설명 세부 정보 Kubernetes 버전 노드 풀의 노드가 현재 사용 중인 Kubernetes 버전 정보 Key Pair 노드 풀의 노드에 설정된 Key Pair 정보 생성일 노드 풀의 생성일 정보 Volume 타입 노드 풀에 설정된 볼륨 타입 정보 Image 노드 풀의 노드에 설치되어 있는 이미지의 상세 정보 VPC 클러스터의 VPC 정보 Subnet 해당 노드 풀의 노드가 실행되는 Subnet 정보 파드 스케줄링 설정 노드 풀의 파드 스케줄링 설정 정보 노드 레이블 노드 풀에 설정된 노드 레이블 정보 노드 테인트 노드 풀에 설정된 노드 테인트 정보 사용자 스크립트 노드 풀에 설정된 사용자 스크립트 정보 스케일링 리소스 기반 오토 스케일 리소스 기반 오토 스케일 관리
- 정책 생성 및 조회예약 기반 오토 스케일 예약 기반 오토 스케일 관리
- 규칙 생성 및 조회
- 예약 기반 오토스케일 이벤트 조회노드 노드 노드의 정보
- 노 드 이름 클릭 시, 노드 상세 페이지에서 노드 정보 확인 가능노드 상태 노드 상태의 정보
-Running
: 노드가 준비되어 실행 중
-Running (Scheduling Disable)
: 해당 노드로 신규 스케줄링 차단된 상태 (이미 할당되어 실행 중인 파드와는 무관)
-Provisioned
: 노드 프로비저닝 완료
-Deleted
: 노드 삭제 완료
-Pending
: 노드 프로비저닝 준비 중
-Provisioning
: 노드 프로비저닝 중
-Deleting
: 노드 삭제 중
-Failed
: 사용자의 개입이 필요한 실패 상태노드 풀 노드가 속한 노드 풀 정보 Private IP 노드의 사설 IP 정보 AZ 노드가 실행되는 Subnet의 AZ 정보 생성 요청 시간 노드가 생성 요청된 시점부터 현재까지의 시간의 합으로, 노드의 생성일을 의미하지 않음
노드 레이블 설정
-
카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
-
Cluster 메뉴에서 상세 정보를 확인할 노드 풀이 속한 클러스터를 선택합니다.
-
클러스터 상세 페이지에서 노드 풀 탭을 클릭한 후, 세부 정보에서 노드 레이블 설정 버튼을 클릭 합니다.
-
노드 레이블 설정 화면에서 키, 값을 입력후 저장 버튼을 클릭합니다. 노드 레이블을 설정하면 노드풀의 모든 노드에 레이블이 반영됩니다.
구분 설명 키 레이블을 구분하기 위한 키, 최대 50개 값 레이블에 대한 값 [휴지통] 아이콘 클릭 시 해당 레이블 삭제
- 카카오클라우드 및 Kubernetes에서 이미 예약된 키워드는 레이블 키로 저장할 수 없습니다.
사용자 스크립트 설정
- 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
- Cluster 메뉴에서 상세 정보를 확인할 노드 풀이 속한 클러스터를 선택합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 클릭한 후, 세부 정보에서 사용 자 스크립트 설정 버튼을 클릭 합니다.
- 사용자 스크립트 설정 화면에서 스크립트를 불러오거나 또는 입력한 후 저장 버튼을 클릭합니다.
- 사용자 스크립트는 설정 시점 이후에 신규로 생성되는 노드부터 적용됩니다.
노드 풀 삭제
더 이상 사용하지 않는 노드 풀을 삭제할 수 있습니다.
노드 풀 삭제 시, 노드 풀에 포함된 모든 노드가 삭제되며 복구할 수 없습니다.
- 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.
- Cluster 탭에서 삭제할 노드 풀이 속한 클러스터를 선택합니다.
- 노드 풀 탭을 클릭한 후, 삭제할 노드 풀의 [더 보기] 아이콘 > 노드 풀 삭제를 선택합니다.
- 노드 풀 삭제 팝업창에서 정보를 입력하고, [삭제] 버튼을 클릭합니다.
노드 풀 스케일링 관리
- 기존 노드 풀 자동 확장 설정의 서비스 이름은 리소스 기반 오토 스케일로 변경 되었습니다.
- 현재 스케줄링 기능은 리소스 기반 오토 스케일 과 예약 기반 오토 스케일기능을 제공하고 있습니다. 두 기능을 동시에 설정할 수 없으며, 한 번에 하나의 기능만 사용할 수 있습니다.
ㄴ 향후 리소스 기반 오토스케일과 예약 기반 오토스케일 기능을 혼합하여 동시에 사용 할 수 있는 기능이 개선될 예정입니다.