노드 관리하기

노드란 컨테이너화된 애플리케이션을 실행하는 머신의 집합입니다. 모든 클러스터는 한 개 이상의 워커 노드를 가져야 애플리케이션 배포가 가능합니다. 노드는 노드풀을 정의해 사용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈, OS 이미지를 가져야 하며, 여러 개의 노드풀 생성을 통해 유연한 배포 전략을 수립할 수 있습니다.

Kubernetes Engine 클러스터를 생성한 후 노드 풀을 추가하고 필요에 따라 수정하거나 삭제하세요.

주의
  • Calico를 사용하는 Kubernetes Engine의 노드에는 OS 방화벽(firewall)을 사용하지 않을 것을 권고합니다.
  • 노드가 Backup 서비스 대상으로 지정되어 있는 경우, 노드 삭제가 불가능하여 아래 기능을 사용할 수 없습니다.
    • 노드 풀 축소 (자동 축소 포함)
    • 노드 풀 업그레이드
    • 노드 풀 자동 복구
    • 노드 풀 삭제

노드 풀 추가하기

노드(node)란 컨테이너화된 애플리케이션을 실행하는 머신을 의미하며, 쿠버네티스 클러스터에서 애플리케이션을 배포하려면 하나 이상의 노드가 반드시 필요합니다. Kubernetes Engine 클러스터의 생성이 완료된 후 상세 페이지에서 노드 풀을 추가하세요.

  • Kubernetes Engine에서 노드의 집합인 노드 풀을 정의해 활용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈 및 OS 이미지를 사용하므로, 사용자는 여러 개의 노드 풀을 이용해 유연한 배포 전략을 수립할 수 있습니다.
참고

Virtual Server 메뉴에서 사용자의 Custom Image를 이용해 노드 풀을 생성할 수 있습니다. Custom Image를 이용한 노드 풀을 생성하려면 다음 절차를 따르세요.

  1. Samsung Cloud Platform의 Kubernetes Engine 이미지가 포함된 Virtual Server를 생성하세요.
  2. 해당 Virtual Server의 Image 생성하기를 이용하여 이미지를 생성을 진행하세요.
  3. 등록한 Custom Image를 선택하여 노드 풀을 생성하세요.

노드 풀을 추가하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 풀을 추가하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 추가 버튼을 클릭하세요. 클러스터 노드 풀 추가 페이지로 이동합니다.
  5. 클러스터 노드 풀 추가 페이지에서 노드 풀 생성에 필요한 정보를 입력하고, 상세 옵션을 선택하세요.
    • 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
      구분
      필수 여부
      상세 설명
      노드 풀명필수노드 풀 이름
      • 영문 소문자로 시작하며 영문 소문자, 숫자, 특수문자(-)를 사용하여 3 - 20자 이내로 입력
        • 이름 마지막에 특수문자(-)를 사용할 수 없음
      노드 풀 > 서버 타입필수워커 노드의 Virtual Server 서버 타입
      • Standard: 일반적으로 사용되는 표준 사양
      • High Capacity: Standard 이상의 대용량 서버 사양
      • GPU: AI/ML 등 특수 요건에 따른 자원 확보시 사용 가능한 GPU 사양
      노드 풀 > 서버 OS필수워커 노드의 Virtual Sever OS 이미지
      • 표준: RHEL 8.8, Ubuntu 22.04
      • Custom: Virtual Server 상품에서 생성한 Kubernetes용 커스텀 이미지 (RHEL, Ubuntu)
      노드 풀 > Block Storage필수워커 노드의 Virtual Sever가 사용하는 Block Storage 설정
      • SSD: 고성능 일반 볼륨
      • HDD: 일반 볼륨
      • SSD/HDD_KMS: Samsung Cloud Platform KMS(Key Management System) 암호화키를 사용하는 추가 암호화 볼륨
        • 암호화 적용은 최초 생성 시에만 적용 가능하고, 서비스 생성 후 변경 불가
        • SSD_KMS 디스크 유형을 사용하는 경우에는 성능 저하 발생
      • 용량은 Units 단위로 입력하며, 13~125 사이의 값을 입력
        • 1 Unit은 8 GB이므로 104 ~ 1,000 GB가 생성됨
      노드 풀 > Server Group선택워커 노드에 Virtual Server 서비스에서 사전에 생성한 Server Group 적용
      • 사용을 클릭해 Server Group 사용 여부 설정
      • 사용 설정 시 Server Group 선택
        • Affinity 또는 Anti-Affinity 정책 지원
        • Partition 정책은 미지원
      • 노드 풀 생성 후 수정 불가
      • GPU 서버 타입은 선택 불가
      노드 풀 자동 확장/축소필수노드 풀의 노드 수를 자동 조절
      노드 수필수하나의 노드 풀 내 생성할 워커 노드의 개수
      • 1 - 100 범위 내의 값을 입력
      노드 자동 복구필수노드 풀 내 비정상 노드 발견 시, 자동 삭제 및 신규 생성
      Keypair필수워커 노드의 Virtual Sever에 연결할 때 사용하는 사용자 증명 방법
      • 신규 생성: 새로운 Keypair가 필요한 경우 신규 생성
      • OS별 기본 접속 계정 리스트
        • Alma Linux: almalinux
        • RHEL: cloud-user
        • Rocky Linux: rocky
        • Ubuntu: ubuntu
        • Windows: sysadmin
      레이블선택워크로드를 노드에 선택적으로 예약
      • 추가 버튼을 클릭해 레이블 키와 값 입력
      테인트선택워크로드가 노드에 예약되는 것을 방지
      • 추가 버튼을 클릭해 테인트 효과, 키와 값 입력
      고급 설정선택워커 노드에 대한 파드, 로그 등 세부 영역에 대한 설정
      • 사용을 클릭해 생성할 노드 풀의 고급 설정 항목 적용 여부 선택
      표. Kubernetes Engine 노드 풀 서비스 정보 입력 항목
  6. 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
    • 생성이 완료되면, 클러스터 상세 > 노드 풀 탭 > 노드 풀 목록 페이지에서 생성한 자원을 확인하세요.
  7. 알림 팝업창이 열리면 확인 버튼을 클릭하세요.

노드 풀 수정하기

필요한 경우 Kubernetes Engine 상세 페이지에서 노드 풀의 노드 수를 수정하세요.

참고
노드 수를 수정하면 노드가 자동으로 추가되거나 삭제되어 컨테이너 운영이 종료됩니다. 이 때, 컨테이너가 다른 노드로 이동하게 되므로 운영중인 서비스가 중단될 수 있습니다.

노드 수를 수정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 수를 수정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
  5. 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
  6. 노드 풀 수정 팝업창에서 노드 풀 정보를 수정한 후 확인 버튼을 클릭하세요.

노드 풀 업그레이드하기

제어 영역의 쿠버네티스 버전과 노드 풀의 버전이 서로 다른 경우 노드 풀을 업그레이드해 버전을 동기화할 수 있습니다.

주의
  • 클러스터를 업그레이드한 후 노드 풀 업그레이드를 진행하세요. 쿠버네티스 클러스터의 제어 영역 및 노드 풀 업그레이드는 별도로 수행됩니다.
  • 노드 풀 업그레이드를 수행하면 노드 풀에 속한 노드들을 대상으로 롤링 업데이트(rolling update)가 진행됩니다. 이 때, 순간적인 서비스 단절이 발생할 수 있으나 이는 롤링 업데이트에 따른 정상적인 현상이며 일정 시간 경과 후 자동으로 정상화됩니다.
  • 노드 풀의 Kubernetes 버전에 따라 서버 OS 버전이 다를 수 있습니다.

노드 풀을 업그레이드 하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 풀 버전 업그레이드를 수행하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 행 오른쪽 끝 더보기 버튼을 클릭하세요. 더보기 버튼 내 노드 풀 업그레이드를 클릭하세요. 노드 풀 버전 업그레이드 팝업창으로 이동합니다.
    • 노드의 상태가 Running인 경우에만 노드 풀을 업그레이드할 수 있습니다.
  5. 노드 풀 버전 업그레이드 팝업창에서 정보를 확인한 후 확인 버튼을 클릭하세요.

노드 풀 자동 확장/축소하기

노드 풀 자동 확장/축소는 워크로드의 요구에 따라 지정된 노드 풀에 신규 노드를 추가하거나 기존 노드를 삭제하여 자동으로 노드 풀의 수를 조절하는 기능입니다. 이 기능은 노드 풀을 기준으로 작동합니다.

  • 노드 풀 자동 확장/축소 시 실제 리소스 사용률이 아닌 노드 풀의 노드에서 실행되는 파드의 리소스 요청에 따라 조절되며, 주기적으로 파드 및 노드의 상태를 확인하고 자동 확장/축소 작업이 실행됩니다.

노드 풀의 자동 확장/축소 기능을 설정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 자동 확장/축소 기능을 사용하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
  5. 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
  6. 노드 풀 수정 팝업창에서 노드 풀 자동 확장/축소사용으로 선택하세요.
  7. 최소 노드 수와 최대 노드 수를 입력한 후, 확인 버튼을 클릭하세요.
    참고

    노드 풀 자동 확장/축소 설정은 클러스터 노드 풀 생성 페이지에서도 설정할 수 있습니다.

    • 노드 풀 확장 조건
      • 자원 부족으로 클러스터에 파드 구동 실패 시 (Pending 파드 발생)
    • 노드 풀 축소 조건 (모두 만족 시)
      • 노드에서 구동 중인 모든 파드의 리소스 요청(CPU/Memory) 합이 노드 할당 가능 자원(Allocatable)의 50% 미만인 경우
      • 노드에서 구동 중인 모든 파드가 다른 노드에서 구동 가능한 경우 (PDB 제한 걸린 파드 등이 없어야 함)
    • 노드 풀 자동 확장/축소 사용 중, 노드 축소에 따른 삭제를 방지하려면, 노드에 다음 어노테이션(annotation)을 추가해주세요.
      • cluster-autoscaler.kubernetes.io/scale-down-disabled: “true”
주의
  • 노드 풀 자동 확장/축소는 클러스터 내 모든 노드 중 NotReady 상태인 노드가 전체의 45% 이하이면서 3개 이하일 때만 동작합니다.
  • Kubernete Engine 서비스에서 생성한 노드 풀이 아닌 직접 연결한 노드가 있는 경우, 해당 기능 사용 시 오동작이 발생할 수 있습니다.

노드 풀 자동 복구하기

노드 자동 복구는 클러스터에 비정상 노드가 발견되면 이를 자동으로 삭제하고 신규 노드를 생성하여 노드 풀의 노드 수를 모두 정상 상태로 복구하는 기능입니다. 이 기능은 노드 풀을 기준으로 작동합니다.

주의

노드 자동 복구는 노드(Virtual Server)의 문제 또는 중지된 상태, 네트워크 이슈 등으로 K8S Control Plane간의 통신이 되지 않을 경우, 노드 자동 복구 조건에 의해서 기존 노드를 삭제하고 신규 노드가 생성되므로 사용에 주의가 필요합니다.

  • 노드 풀 생성 시 최초 설정한 조건대로 복구되며, 노드 생성 이후 custom 설정한 내용은 복구되지 않습니다.

Kubernete Engine 서비스에서 생성한 노드 풀이 아닌 직접 연결한 노드가 있는 경우, 해당 기능 사용 시 오동작이 발생할 수 있습니다.

노드 자동 복구 기능을 설정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 자동 복구 기능을 사용하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
  5. 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
  6. 노드 풀 수정 팝업창에서 노드 자동 복구사용으로 선택한 후, 확인 버튼을 클릭하세요.
참고

노드 자동 복구 설정은 클러스터 노드 풀 생성 페이지에서도 설정할 수 있습니다.

  • 노드 자동 복구 대상인 경우
    • 일정 시간 임계값(약 10분) 동안 노드가 연이은 검사에서 NotReady 상태를 보고하는 경우
    • 일정 시간 임계값(약 10분) 동안 노드가 상태를 전혀 보고하지 않는 경우
  • 노드 자동 복구 대상이 아닌 경우
    • 최초 노드 생성 시 Running 상태가 되지 못하고 Creating 상태에 머물러 있는 노드
    • 같은 노드 풀에서 비정상 노드가 동시에 5대 이상 발생한 경우

노드 풀 레이블 설정하기

노드 풀 레이블은 워크로드를 노드에 선택적으로 예약하기 위한 기능입니다.

주의
  • 노드 풀 레이블 적용 시, 기존 노드에는 적용되지 않고 신규 생성되는 노드부터 레이블이 적용됩니다.
    • 기존 노드에 레이블 적용이 필요하다면 사용자가 직접 kubectl로 설정해야 합니다.

노드 풀 레이블을 설정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 풀 레이블을 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
  5. 노드 풀 상세 페이지에서 레이블의 수정 아이콘을 클릭하면, 레이블 수정 팝업창으로 이동합니다.
  6. 레이블 수정 팝업창에서 추가 버튼을 클릭해 필요한 갯수만큼 레이블을 추가하세요.
  7. 레이블 정보를 입력하고 확인 버튼을 클릭하세요.

노드 풀 테인트 설정하기

노드 풀 테인트는 워크로드가 노드에 예약되는 것을 방지하기 위한 기능입니다.

주의
  • 모든 노드 풀에 테인트를 설정하면, 클러스터 정상 구동에 필요한 파드가 구동되지 않을 수 있습니다.
  • 노드 풀 테인트 적용 시, 기존 노드에는 적용되지 않고 신규 생성되는 노드부터 테인트가 적용됩니다.
    • 기존 노드에 테인트 적용이 필요하다면 사용자가 직접 kubectl로 설정해야 합니다.

노드 풀 테인트를 설정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 풀 레이블을 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
  5. 노드 풀 상세 페이지에서 테인트의 수정 아이콘을 클릭하면, 테인트 수정 팝업창으로 이동합니다.
  6. 테인트 수정 팝업창에서 추가 버튼을 클릭해 필요한 갯수만큼 테인트를 추가하세요.
  7. 테인트 정보를 입력하고 확인 버튼을 클릭하세요.

노드 풀 고급 설정하기

노드 풀 고급 설정은 워커 노드 내 파드 개수, PID, 로그, 이미지 GC 등 세부 설정을 적용하기 위한 기능입니다.

주의
노드 풀 생성 후에는 수정할 수 없습니다. 잘못된 값을 입력할 경우, 노드가 정상 구동되지 않을 수 있습니다.
참고

각 설정은 다음과 같이 kubelet configuration과 대응됩니다.

  • 노드당 최대 파드: maxPods
  • 이미지 GC 상한 퍼센트: imageGCHighThresholdPercent
  • 이미지 GC 하한 퍼센트: imageGCLowThresholdPercent
  • 컨테이너 로그 최대 사이즈 MB: containerLogMaxSize
  • 컨테이너 로그 최대 파일 수: containerLogMaxFiles
  • 파드 PID 제한: podPidsLimit
  • Unsafe Sysctl 허용: allowedUnsafeSysctls

노드 풀에 대한 고급 설정을 하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 풀 고급 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 생성을 클릭하세요. 노드 풀 생성 페이지로 이동합니다.
  5. 노드 풀 생성 페이지에서 고급 설정사용으로 선택하세요.
  6. 사용 선택 후 나타나는 항목들에 대해 필요한 정보들을 입력하세요.
  7. 요약 탭에서 필요 정보들이 정확히 입력되었는지 확인 후, 완료 버튼을 클릭하세요.

노드 풀 삭제하기

필요한 경우 Kubernetes Engine 상세 페이지에서 노드 풀을 삭제하세요.

노드 풀을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 노드 수를 수정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 행 오른쪽 끝 더보기 버튼을 클릭하세요. 더보기 버튼 내 노드 풀 삭제를 클릭하세요.
  5. 노드 풀 삭제 팝업창에서 체크박스 확인 및 삭제할 노드 풀 이름을 입력하고 확인 버튼을 클릭하세요.

노드 풀 상세 정보 확인하기

노드는 쿠버네티스 클러스터에서 사용하는 작업 머신(working machine)으로, 파드(Pod)를 실행하는 데 필요한 필수 서비스를 포함합니다. 각각의 노드는 마스터 컴포넌트에 의해 관리되며, 클러스터 구성에 따라 가상 머신 또는 물리적 머신을 노드로 사용할 수 있습니다.

클러스터 생성후 추가한 노드의 메타데이터, 객체 정보 등의 정보를 확인하고, YAML 편집기로 리소스 파일을 수정할 수 있습니다.

노드 풀의 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 노드 메뉴를 클릭하세요. 노드 목록 페이지로 이동합니다.
  3. 노드 목록 페이지에서 상세 정보를 확인하려는 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인 버튼을 클릭하세요.
  4. 상세 정보를 확인하려는 노드를 선택해 클릭하세요. 노드 상세 페이지로 이동합니다.
    구분
    상세 설명
    상태 표시노드의 현재 상태를 표시
    상세 정보노드의 Account 정보, 메타데이터, 객체 정보를 확인
    YAML노드의 리소스를 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트노드에서 발생한 이벤트를 확인
    파드노드의 파드 정보를 확인
    • Pod(파드)는 Kubernetes Engine에서 생성, 관리, 및 배포할 수 있는 가장 작은 컴퓨팅 단위
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보노드의 메타데이터 정보를 확인
    객체 정보내부 IP 및 머신 ID, 용량, 리소스 등, 생성한 노드의 객체 정보가 표시
    • GPU 자원이 존재하는 경우, 용량 > Nvidia.com/GPU 컬럼에서 GPU 수를 확인
    표. 노드 상세 정보 항목
How-to guides
네임스페이스 관리하기