본문으로 건너뛰기

클러스터 생성 및 관리

클러스터 생성

클러스터는 Kubernetes Engine의 기본 리소스로, 컨테이너 애플리케이션을 포함한 모든 Kubernetes 객체가 이 클러스터에서 실행됩니다. 클러스터는 콘솔에서 생성할 수 있으며, API를 호출하여 클러스터를 생성하는 방법은 지원 예정입니다.
Kubernetes Engine 서비스에서 클러스터를 생성하는 방법은 다음과 같습니다.

안내
  • Multi-AZ를 지원하는 kr-central-2 리전에서는 리전 내 여러 가용 영역(Availability Zone)에서 클러스터와 노드를 운영하여 가용성을 높일 수 있습니다.
  • 클러스터를 생성하기 위해서는 사전에 VPC와 서브넷이 설정되어 있어야 합니다. VPC와 서브넷이 설정되지 않은 경우 VPC 생성 및 관리를 참고하시기 바랍니다.

콘솔에서 클러스터 생성

카카오클라우드 콘솔에서 클러스터를 생성할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. [시작하기] 버튼을 클릭하여 Kubernetes Engine을 시작합니다.

    • 서비스 사용을 시작하면 Kubernetes Engine의 리소스에 접근하기 위한 서비스 에이전트가 생성됩니다.
  3. 클러스터 탭에서 [클러스터 생성] 버튼을 클릭합니다.

  4. 클러스터 생성에서 정보를 입력하고, [생성] 버튼을 클릭합니다.

    이미지. 1단계: 클러스터 설정 페이지

    구분설명
    기본 설정• 클러스터의 기본 정보 설정
    - 클러스터 이름: 클러스터의 이름을 입력
    - 클러스터 설명(선택): 60자 이내로 클러스터 설명 작성
    - Kubernetes 버전: 클러스터에서 사용할 Kubernetes 버전 선택
      ㄴ Kubernetes Engine에서 제공하는 지원 버전에 대한 자세한 설명은 지원 정보를 참고
    클러스터 네트워크 설정• 클러스터의 네트워크 설정
    - VPC: 프로젝트에 공유된 VPC 중 클러스터를 배포할 VPC 선택
    - 서브넷: 프로젝트에 공유된 서브넷 중 클러스터를 배포할 서브넷 선택
      ㄴ 노드 풀 생성 시, 클러스터 Network에서 설정한 서브넷 중 노드가 실행될 서브넷을 선택
      ㄴ Multi-AZ를 지원하는 kr-central-2 리전에서는 노드 풀의 네트워크를 서로 다른 가용 영역의 서브넷으로 다중 선택하여 가용성을 높일 수 있음
      ㄴ Multi-AZ 클러스터의 가용성을 높이기 위해, kr-central-2 리전의 각 가용 영역별 최소 1개 이상 서브넷 필수 선택 필요
    클러스터 엔드포인트 액세스 선택 : 퍼블릭 또는 프라이빗 엔드포인트 액세스를 선택
      ㄴ 퍼블릭 : 외부 인터넷에서 연결이 가능한 클러스터 엔드포인트
      ㄴ 프라이빗 : VPC 내부 네트워크에 연결이 제한된 클러스터 엔드포인트입니다.
    CNI• Calico와 Cilium 중, 필요한 상황에 맞게 클러스터에서 사용할 CNI 플러그인을 선택
    - 서비스 IP CIDR 블록(선택): 클러스터의 서비스 객체가 수신할 IP를 지정
    - 파드 IP CIDR 블록(선택): 파드가 수신할 IP를 지정

    ⚠️ 주의
    서비스 IP와 파드 IP는 클러스터 생성 후에는 변경할 수 없습니다.
안내

클러스터의 네트워크가 프라이빗 서브넷일 경우, 프라이빗 서브넷의 노드는 인터넷 통신이 불가합니다.
프라이빗 서브넷의 노드가 인터넷을 통해 외부 CR과 통신하기 위해서는 NAT 통신이 필요합니다.
NAT 통신은 NAT 인스턴스를 사용할 수 있으며, 자세한 내용은 NAT 인스턴스 사용 문서를 참고하시기 바랍니다.

주의

CNI의 서비스 IP와 파드 IP로 허용되는 조건은 아래와 같습니다.

  • CIDR 형식으로 입력해야 하며, IPv4 RFC-1918로 규정된 사설 네트워크 범위 내에 있어야 합니다.
  • 서비스 IP의 최소 허용 크기는 /28이고, 최대 허용 크기는 /12입니다.
  • 파드 IP의 최소 허용 크기는 /24이고, 최대 허용 크기는 /16입니다.
  • 서비스 IP와 파드 IP는 서로 중첩될 수 없습니다.
  • 클러스터 네트워크로 설정한 VPC 범위와 중첩될 수 없습니다.
  • Kubernetes Engine 내부에서 사용 중인 198.18.0.0/16과 중첩될 수 없습니다.
  • 서비스 IP와 파드 IP는 IPv4만 지원합니다.

클러스터 엔드포인트

  • 클러스터 엔드포인트 설정에 따라 API 서버 엔드포인트 URL을 제공합니다.

    클러스터 엔드포인트 옵션동작
    퍼블릭 클러스터 엔드포인트외부 인터넷에서 연결이 가능한 API 서버 엔드포인트를 제공합니다.
    API 서버 엔드포인트는 퍼블릭 IP 주소입니다.
    프라이빗 클러스터 엔드포인트VPC 내부 네트워크로 연결이 제한된 API 서버 엔드포인트 제공합니다.
    외부 인터넷에서 API 서버 엔드포인트로 액세스할 수 없습니다.
    API 서버 엔드포인트는 VPC의 프라이빗 IP 주소입니다.

클러스터 관리

Kubernetes Engine 서비스에서 클러스터를 관리하는 방법은 다음과 같습니다.

클러스터 목록 보기

현재 생성된 클러스터의 목록을 확인할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 현재 생성된 클러스터를 확인합니다.

    구분설명
    이름클러스터 이름
    ID클러스터 고유 ID
    상태클러스터의 상태 정보
    - Provisioned: 클러스터 프로비저닝 완료
    - Pending: 클러스터 프로비저닝 준비 중
    - Provisioning: 클러스터 프로비저닝 중
    - Deleting: 클러스터 삭제 중
    - Failed: 사용자의 개입이 필요한 실패 상태
    Kubernetes 버전클러스터의 Kubernetes 버전 정보
    생성자클러스터 생성자 ID
    생성일클러스터를 생성한 날짜
    [더 보기] 아이콘- kubeconfig 파일: kubectl 제어 설정을 위한 kubeconfig 다운로드
    - 자동 축소 설정: 자동 확장을 설정한 노드 풀의 자동 축소 조건 설정
    - 클러스터 수정: 클러스터의 이름, 생성일 설명 확인
    - 클러스터 삭제: 해당 클러스터를 삭제

클러스터 자동 축소 설정

자동 확장을 설정한 클러스터의 노드 풀에 적용되는 자동 축소 조건을 설정합니다.
특정 노드 풀의 노드 리소스 사용량이 일정 수준 이하로 유지될 때 노드 수를 자동으로 감소하는 조건이며, 자동 축소 조건은 클러스터 단위로 설정 가능하여 클러스터의 모든 노드 풀에 공통으로 적용됩니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 자동 축소를 설정할 클러스터의 [더 보기] 아이콘 > 자동 축소 설정을 선택합니다.

  3. 자동 축소 설정 팝업창에서 정보를 입력하고, [저장] 버튼을 클릭합니다. 이미지. 자동 축소 설�정 팝업창 자동 축소 설정 팝업창

    구분설명
    클러스터 내 노드 풀 자동 축소클러스터의 노드 풀 중 자동 확장 기능을 사용하는 모든 노드 풀의 자동 축소 사용 여부를 설정
    - 기본값: 사용함
    자동 축소 임계치 조건노드 수를 자동으로 축소하는 기준인 노드 리소스(CPU/Memory) 사용량의 임계치
    - 입력 가능 범위 : 1~100
    - 기본값: 50%
    임계치 지속 시간노드의 리소스 사용량이 자동 축소 임계치 조건 이하로 유지되는 일정 시간 기준
    - 입력 가능 범위 : 1~1440
    - 기본값: 10분
    증설 후 자동 축소 모니터링 제외 시간노드를 자동 증설한 후, 자동 축소를 위한 노드 모니터링에 일정 시간 동안 포함하지 않는 시간
    - 입력 가능 범위 : 10~1440
    - 기본값: 10분

클러스터 수정

클러스터의 이름, 생성일, 설명을 확인 및 수정할 수 있습니다.

  1. 카카오클라우드 콘솔에서 Kubernetes Engine 메뉴를 선택합니다.

  2. 클러스터 메뉴에서 설정할 클러스터의 [더 보기] 아이콘 > 클러스터 수정을 선택합니다.

  3. 클러스터 수정 팝업창에서 정보를 확인합니다. 수정 시, 정보를 입력하고 [수정] 버튼을 클릭합니다.

    구분설명
    클러스터 이름현재 클러스터의 이름
    클러스터 생성일클러스터의 생성 날짜
    클러스터 설명(선택)클러스터 생성 시 작성한 설명
    - 60자 이내로 클러스터 설명 수정 또는 작성 가능

클러스터 삭제

더 이상 사용하지 않는 클러스터를 삭제할 수 있습니다.

주의
  • 클러스터 삭제 시, 클러스터를 생성할 때 자동으로 생성된 리소스도 함께 삭제됩니다. 자세한 설명은 클러스터/노드 풀 생성 시 자동 생성 리소스를 참고하시기 바랍니다.
  • 자동 생성된 보안 그룹의 노드가 아닌 별도의 인스턴스를 연결해 두었다면, 해당 보안 그룹은 삭제되지 않습니다.
  1. 카카오클라우드 콘솔에서 Kubernetes Engine 메뉴를 선택합니다.
  2. 클러스터 메뉴에서 삭제할 클러스터의 [더 보기] 아이콘 > 클러스터 삭제를 선택합니다.
  3. 클러스터 삭제 팝업창에서 정보를 입력하고, [삭제] 버튼을 클릭합니다.

클러스터 업데이트

Kubernetes Engine에서 새로운 Kubernetes 버전을 사용할 수 있는 경우, 클러스터의 제어 영역을 최신 버전으로 업데이트할 수 있습니다. 업데이트를 시작하면 최신 버전의 제어 영역을 생성하여 기존 제어 영역을 대체합니다.
Kubernetes Engine 서비스에서 클러스터를 업데이트하는 방법은 다음과 같습니다.

안내

Kubernetes Engine에서 지원하는 쿠버네티스 버전에 대한 자세한 설명은 지원 정보를 참고하시기 바랍니다.

업데이트 전 고려사항

업데이트를 시작하기 전 다음의 조건을 모두 충족하지 않는 경우, 업데이트가 진행되지 않습니다. 이때 오픈 소스 커뮤니티에서 제공하는 변경 로그를 확인하여 업데이트할 Kubernetes 버전의 변경 사항이 사용자의 애플리케이션에 미치는 영향을 점검합니다.

업데이트 조건

조건설명
클러스터 상태Provisioned 상태
- 그 외 상태인 경우, 업데이트 버튼이 노출되지 않음
모든 노드 풀 상태Running 상태
- 그 외 상태인 경우, 업데이트 버튼이 노출되지 않음
모든 노드 풀 버전클러스터와 동일 버전
- 클러스터와 노드 풀 버전이 한 단계 이상 차이 나는 경우, 업데이트 버튼이 노출되지 않음

업데이트 절차

클러스터가 최신 버전을 사용할 수 있고 업데이트 조건을 모두 만족한 경우, 클러스터를 업데이트할 수 있습니다.

안내

Kubernetes 버전은 계단식 업데이트를 제공하며 한 번에 한 버전만 업데이트할 수 있습니다.
두 개 이상의 버전을 업데이트할 경우, 순차적으로 한 버전씩 업데이트를 진행해야 합니다.

주의

업데이트 시작 시 취소할 수 없으며, 업데이트 전 버전으로 되돌릴 수 없습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 업데이트할 클러스터의 Kubernetes 버전 열에 표시되는 [업데이트] 버튼을 클릭합니다.

    • 또는 클러스터 상세 페이지에서 Kubernetes 버전 > [업데이트] 버튼을 선택합니다.
  3. 클러스터 버전 업데이트 팝업창에서 업데이트 버전을 확인하고, [업데이트] 버튼을 클릭합니다.

  4. 클러스터가 업데이트를 시작하면 클러스터의 상태는 Updating으로 전환됩니다. 클러스터 업데이트가 완료되면 Provisioned 상태로 전환됩니다. 업데이트 중에는 신규 노드 풀의 추가와 기존 노드 풀 설정이 불가합니다.

업데이트 후 고려사항

클러스터 업데이트 후 노드 풀을 생성할 경우, 클러스터의 버전에 맞는 최신 노드 버전이 적용됩니다. 기존 노드 풀은 설정할 수 없으며, 업데이트해야 합니다. 노드 풀 업데이트에 대한 자세한 설명은 노드 업데이트를 참고하시기 바랍니다.

업데이트 실패 시 확인사항

업데이트 실패 시 클러스터 상태가 Failed로 전환됩니다. 업데이트를 실패한 경우에는 헬프데스크 > 기술 문의로 문의하시기 바랍니다.

  1. 카카오클라우드 콘솔에서 우측 상단의 헬프데스크를 선택합니다.
  2. 질문과 답변 탭에서 우측 상단에 위치한 [질문하기] 버튼을 클릭합니다.
  3. [기술 문의] 버튼을 클릭합니다.
  4. 질문하기에서 정보를 입력하고, [등록] 버튼을 클릭합니다.

클러스터 상세 보기

클러스터의 세부 정보, 노드 풀, 노드 정보를 확인할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 상세 정보를 확인할 클러스터를 선택합니다.

  3. 클러스터의 상세 페이지에서 정보를 확인합니다.

    구분설명
    클러스터 상태해당 클러스터의 상태
    Kubernetes 버전현재 사용 중인 Kubernetes 버전
    생성자클러스터 생성자 ID
    생성일클러스터를 생성한 날짜

클러스터 세부 정보 확인

클러스터 ID, 전체 vCPU 개수, 네트워크 정보 등 클러스터의 세부 정보를 확인할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 세부 정보를 확인할 클러스터를 선택합니다.

  3. 세부 정보 탭에서 정보를 확인합니다.

    구분설명
    ID클러스터의 고유 ID 값
    API 서버 엔드포인트클러스터 API를 호출할 엔드포인트
    전체 vCPU클러스터 내 워커 노드들의 vCPU 총합
    전체 메모리클러스터 내 워커 노드들의 메모리 총합
    VPC클러스터가 배포된 VPC
    서브넷클러스터가 배포된 서브넷
    - kr-central-2 리전의 클러스터는 가용성을 높이기 위해 여러 가용 영역의 서브넷이 다중 설정된 경우 해당하는 모든 서브넷이 보여짐.
    보안 그룹클러스터 내 워커 노드들에게 적용된 보안 그룹

노드 풀 정보 확인

클러스터 내 노드 풀과 노드 풀에 속한 노드의 정보를 확인할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 탭에서 노드 풀 정보를 확인할 클러스터를 선택합니다.

  3. 노드 풀 탭을 클릭한 후, 정보를 확인합니다.

    구분설명
    노드 풀노드 풀의 이름 및 설명
    - 노드 풀 이름 클릭 시, 노드 풀 상세 페이지로 이동
    노드 풀 상태노드 풀의 상태
    - Running: 노드 풀 정상 실행 중(노드 상태와는 무관)
    - Running (Scheduling Disable): 노드 풀의 모든 노드가 스케줄링 차단된 상태
    - ScalingUp: 노드 개수 확장 중
    - ScalingDown: 노드 개수 축소 중
    - Deleting: 노드 풀 삭제 중
    - Failed: 사용자의 개입이 필요한 실패 상태
    Kubernetes 버전노드 풀의 노드가 현재 사용 중인 Kubernetes 버전
    인스턴스 유형노드 풀의 노드에서 사용하는 인스턴스 유형
    노드 풀 유형노드가 동작하는 인스턴스 종류
    볼륨 크기노드 풀의 노드에서 사용하는 인스턴스의 볼륨 크기
    노드 수현재 노드 풀에 속한 노드 수
    가용 영역노드 풀에서 사용하는 서브넷의 가용 영역 정보

노드 정보 확인

클러스터에 속한 모든 노드의 정보를 확인할 수 있습니다.

  1. 카카오클라우드 콘솔 > Container Pack > Kubernetes Engine 메뉴로 이동합니다.

  2. 클러스터 메뉴에서 노드 정보를 확인할 클러스터를 선택합니다.

  3. 노드 탭을 클릭한 후, 정보를 확인합니다.

    구분설명
    노드노드 이름 및 설명
    - 노드 이름 클릭 시 노드 상세 페이지로 이동
    노드 상태노드 상태 정보
    - Running: 노드가 준비되어 실행 중
    - Running (Scheduling Disable): 해당 노드로 신규 스케줄링 차단된 상태 (이미 할당되어 실행 중인 파드와는 무관)
    - Provisioned: 노드 프로비저닝 완료
    - Deleted: 노드 삭제 완료
    - Pending: 노드 프로비저닝 준비 중
    - Provisioning: 노드 프로비저닝 중
    - Deleting: 노드 삭제 중
    - Failed: 사용자의 개입이 필요한 실패 상태
    노드 풀노드가 속한 노드 풀의 정보
    - 노드 풀 클릭 시, 노드 풀 상세 페이지로 이동
    프라이빗 IP노드의 프라이빗 IP 정보
    가용 영역노드가 실행되는 서브넷의 가용 영역 정보
    파드 스케줄링허용 : 노드에 새 파드를 할당할 수 있음
    차단 : 노드에 새 파드가 할당되지 않도록 차단
    가동 시간노드의 생성이 요청된 후 경과된 시간으로, 노드의 생성일을 의미하지 않음