1 - Overview

서비스 개요

Kubernetes Engine은 경량화된 가상 컴퓨팅과 컨테이너와 이를 관리하기 위한 쿠버네티스 클러스터를 제공하는 서비스 입니다. 사용자는 Kubernetes Control Plane을 설치하고 운영하며 유지 관리를 수행함으로써 복잡한 준비 없이 쿠버네티스 환경을 활용할 수 있습니다.

특장점

  • 표준 쿠버네티스 환경 구성: 기본 제공하는 Kubernetes Control Plane을 통해 별도의 구성없이 표준 쿠버네티스 환경 사용이 가능합니다. 다른 표준 쿠버네티스 환경 내의 애플리케이션과 호환 가능하여 코드 수정 없이 표준 쿠버네티스 애플리케이션을 사용할 수 있습니다.

  • 손쉬운 쿠버네티스 배포: 워커노드(Worker Node)와 관리형 제어 영역 간에 안전한 통신을 제공하고, 워커노드를 빠르게 프로비저닝하여 사용자는 제공된 컨테이너 환경 위에서 애플리케이션 구축에 집중할 수 있습니다.

  • 편리한 쿠버네티스 관리: 엔터프라이즈 환경을 위해 대시보드를 통한 클러스터 정보 조회 및 클러스터 관리, 네임스페이스 관리, 워크로드 관리 기능 등 생성된 쿠버네티스 클러스터를 편리하게 사용하기 위한 다양한 관리 기능을 제공합니다.

서비스 구성도

구성도
그림. K8s Engine 구성도

제공 기능

Kubernetes Engine은 다음과 같은 기능을 제공합니다.

  • 클러스터 관리: Kubernetes Engine 서비스 이용을 위해 클러스터를 생성하고 관리할 수 있습니다. 클러스터 생성 후 노드, 네임스페이스, 워크로드 등 운영에 필요한 서비스를 추가할 수 있습니다.
  • 노드 관리: 노드란 컨테이너화된 애플리케이션을 실행하는 머신의 집합입니다. 모든 클러스터는 한 개 이상의 워커 노드를 가져야 애플리케이션 배포가 가능합니다. 노드는 노드풀을 정의해 사용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈, OS이미지를 가져야 하며, 여러 개의 노드풀 생성을 통해 유연한 배포 전략을 수립할 수 있습니다.
  • 네임스페이스 관리: 네임스페이스는 쿠버네티스 클러스터 내의 논리적인 분리 단위이며, 네임스페이스별 접근 권한 또는 리소스 사용 한도를 지정하기 위해 사용됩니다.
  • 워크로드 관리: 워크로드는 Kubernetes Engine에서 구동되는 애플리케이션입니다. 네임스페이스를 생성한 다음 워크로드를 추가하거나 삭제할 수 있습니다. 워크로드는 디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 항목별로 생성한 후 관리합니다.
  • 서비스 및 인그레스 관리: 서비스는 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이며, 인그레스는 클러스터 외부에서 클러스터 내부로 HTTP와 HTTPS 경로를 노출하기 위해 사용합니다. 네임스페이스 생성 후 서비스, 엔드포인트, 인그레스 및 인그레스클래스를 생성하거나 삭제할 수 있습니다.
  • 스토리지 관리: Kubernetes Engine 이용 시 사용할 스토리지를 생성하고 관리할 수 있습니다. 스토리지는 PVC, PV, 스토리지클래스 항목별로 생성한 후 관리합니다.
  • 구성 관리: Dev/Prod 등 여러 환경에 따라 컨테이너 안쪽에서 변화하는 값들을 관리할 필요가 있을 때 환경 변수로 인해 별도의 이미지를 생성해 관리하는 것은 불편하고 비용적 낭비가 큽니다. 쿠버네티스에서는 외부에서 값들을 바꿀 수 있도록 환경 변수나 설정 값들을 변수로 관리해서 Pod가 생성될 때 넣어줄 수 있는대, 이때 컨피그맵과 시크릿을 이용할 수 있습니다.
  • 권한 관리: 쿠버네티스 클러스터를 여러 사용자가 접속하는 경우 특정 API 또는 네임스페이스별로 권한을 부여해 접근 범위를 지정할 수 있습니다. 쿠버네티스의 역할 기반 권한 관리(RBAC, Role-based access control) 기능을 적용해 클러스터나 네임스페이스별로 권한을 설정할 수 있습니다. 클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩을 생성하고 관리할 수 있습니다.

구성 요소

컨트롤 플레인

컨트롤 플레인(Control Plane)은 Kubernetes Engine 서비스에서 마스터 노드 역할을 하는 곳입니다. 마스터 노드는 클러스터의 관리 노드로, 클러스터의 다른 노드를 관리하는 역할을 합니다. 클러스터는 Kubernetes Engine 서비스의 기본 생성 단위이며, 내부에 속한 노드 풀, 오브젝트, 컨트롤러 등에 대한 관리 용도로 사용됩니다. 사용자는 클러스터의 이름(클러스터명), 제어 영역, 네트워크, File Storage 등을 설정한 후 노드 풀을 클러스터 내 생성하여 사용합니다. 마스터 노드는 클러스터에 작업을 할당하고, 노드의 상태를 모니터링 하며, 노드 간 데이터 통신 역할을 합니다.

클러스터명 생성 규칙은 다음과 같습니다.

  • 영문으로 시작하며 영문, 숫자와 특수문자(-)를 사용하여 3~30자 이내로 설정 가능합니다.
  • 기 생성된 클러스터명과 중복되면 안됩니다.

워커노드

워커노드(Worker Node)는 클러스터의 작업 노드로, 클러스터의 작업을 수행하는 역할을 합니다. 워커노드는 클러스터의 마스터 노드로부터 작업을 할당 받아 수행하고, 클러스터의 마스터 노드에게 작업 결과를 보고하는 역할을 합니다. 노드 풀 및 네임스페이스 내 생성되는 모든 노드들이 워크노드의 역할을 합니다.

워커노드의 집합체인 노드 풀 생성 규칙은 다음과 같습니다.

  • 노드 풀은 최소 1개 이상 생성되어야 애플리케이션 배포가 가능합니다.
  • 노드 풀 내 노드는 최대 100개 생성 가능합니다.
  • 최대 노드 수가 100대이므로 노드 풀 100개 면 노드 풀 당 노드 1개, 노드 풀 50개면 노드 풀 당 노드 2개 형태로 총 노드 수가 100대 내에서 자유롭게 생성 가능합니다.
  • 노드 풀에 연결되는 Block Storage 설정이 가능합니다.
  • 노드 풀에 속한 노드에 대한 서버 타입, 사이즈, OS이미지 설정이 가능하며 모두 동일해야 합니다.
  • Auto-Scaling서비스를 통해 배포된 애플리케이션 요건에 따라 노드 풀 자동 확장/축소 설정이 가능합니다.

선행 서비스

해당 서비스를 생성하기 전에 미리 구성되어 있어야 하는 서비스 목록입니다. 자세한 내용은 각 서비스 별로 제공되는 가이드를 참고하여 사전에 준비해주세요.

서비스 카테고리서비스상세 설명
NetworkingVPC클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스
NetworkingSecurity Group서버의 트래픽을 제어하는 가상 방화벽
StorageFile Storage네트워크를 통해 다수의 클라이언트가 파일을 공유하는 스토리지
  • Persistant Volume으로 활용
표. Kubernetes Engine 선행 서비스

1.1 - 모니터링 지표

Kubernetes Engine 모니터링 지표

아래 표는 Cloud Monitoring을 통해 확인할 수 있는 Kubernetes Engine의 모니터링 지표를 나타냅니다. 자세한 Cloud Monitoring 사용 방법은 Cloud Monitoring 가이드를 참고하세요.

성능 항목상세 설명단위
Cluster Namespaces [Active]active 상태인 namespace 수cnt
Cluster Namespaces [Total]클러스터에 속한 전체 namespace 수cnt
Cluster Nodes [Ready]READY 상태인 노드 수cnt
Cluster Nodes [Total]클러스터에 속한 전체 노드 수cnt
Cluster Pods [Failed]cluster 내 failed 상태 pod 수cnt
Cluster Pods [Pending]cluster 내 pending 상태 pod 수cnt
Cluster Pods [Running]cluster 내 running 상태 pod 수cnt
Cluster Pods [Succeeded]cluster 내 succeeded 상태 pod 수cnt
Cluster Pods [Unknown]cluster 내 unknown 상태 pod 수cnt
Instance Statuscluster 상태status
Namespace Pods [Failed]namespace 내 failed 상태 pod 수cnt
Namespace Pods [Pending]namespace 내 pending 상태 pod 수cnt
Namespace Pods [Running]namespace 내 running 상태 pod 수cnt
Namespace Pods [Succeeded]namespace 내 succeeded 상태 pod 수cnt
Namespace Pods [Unknown]namespace 내 unknown 상태 pod 수cnt
Namespace GPU Clock FrequencyNamespace 내 SM clock frequencyMHz
Namespace GPU Memory UsageNamespace 내 Memory utilization%
Namespace GPU UsageNamespace 내 GPU utilization%
Node CPU Size [Allocatable]노드 내 CPU allocatablecnt
Node CPU Size [Capacity]노드 내 CPU capacitycnt
Node CPU Usage노드 내 CPU 사용량%
Node CPU Usage [Request]노드 내 CPU request_ratio%
Node CPU Used노드 내 CPU utilizationstatus
Node Filesystem Usage노드 내 FS 사용율%
Node Memory Size [Allocatable]노드 내 memory allocatablebytes
Node Memory Size [Capacity]노드 내 memory utilizationbytes
Node Memory Usage노드 내 memory utilization%
Node Memory Usage [Request]노드 내 memory request_ratio%
Node Memory Workingset노드 내 memory workingsetbytes
Node Network In Bytes노드 네트워크 rx bytesbytes
Node Network Out Bytes노드 네트워크 tx bytesbytes
Node Network Total Bytes노드 네트워크 total bytesbytes
Node Pods [Failed]노드 내 failed 상태 pod 수cnt
Node Pods [Pending]노드 내 pending 상태 pod 수cnt
Node Pods [Running]노드 내 running 상태 pod 수cnt
Node Pods [Succeeded]노드 내 succeeded 상태 pod 수cnt
Node Pods [Unknown]노드 내 unknown 상태 pod 수cnt
Pod CPU Usage [Limit]pod 내 CPU usage_limit_ratio%
Pod CPU Usage [Request]pod 내 CPU request_ratio%
Pod CPU Usagepod 내 CPU 사용량%
Pod GPU Clock FrequencyPod 내 SM clock frequencyMHz
Pod GPU Memory UsagePod 내 Memory utilization%
Pod GPU UsagePod 내 GPU utilization%
Pod Memory Usage [Limit]pod 내 memory usage_limit_ratio%
Pod Memory Usage [Request]pod 내 memory request_ratio%
Pod Memory Usagepod 내 memory 사용량bytes
Pod Network In Bytespod 내 network rx bytesbytes
Pod Network Out Bytespod 내 network tx bytesbytes
Pod Network Total Bytespod 내 network total bytesbytes
Pod Restart Containerspod 내 container restart countcnt
Workload Pods [Running]-cnt
표. Kubernetes Engine 모니터링 지표

1.2 - ServiceWatch 지표

Kubernetes Engine는 ServiceWatch로 지표를 전송합니다. 기본 모니터링으로 제공되는 지표는 1분 주기로 수집된 데이터입니다.

참고
ServiceWatch에서 지표를 확인하는 방법은 ServiceWatch 가이드를 참고하세요.

기본 지표

다음은 네임스페이스 Kubernetes Engine에 대한 기본 지표입니다.

지표명상세 설명단위의미있는 통계
cluster_up클러스터 업Count
  • 합계
cluster_node_count클러스터 노드 수Count
  • 합계
cluster_failed_node_count클러스터 실패 노드 수Count
  • 합계
cluster_namespace_phase_count클러스터 네임스페이스 페이즈 수Count
  • 합계
cluster_pod_phase_count클러스터 파드 페이즈 수Count
  • 합계
node_cpu_allocatable노드 CPU 할당가능량-
  • 합계
node_cpu_capacity노드 CPU 용량-
  • 합계
node_cpu_usage노드 CPU 사용량-
  • 합계
node_cpu_utilization노드 CPU 사용률-
  • 합계
node_memory_allocatable노드 메모리 할당가능량Bytes
  • 합계
node_memory_capacity노드 메모리 용량Bytes
  • 합계
node_memory_usage노드 메모리 사용량Bytes
  • 합계
node_memory_utilization노드 메모리 사용률-
  • 합계
node_network_rx_bytes노드 네트워크 수신 바이트Bytes/Second
  • 합계
node_network_tx_bytes노드 네트워크 송신 바이트Bytes/Second
  • 합계
node_network_total_bytes노드 네트워크 전체 바이트Bytes/Second
  • 합계
node_number_of_running_pods노드 구동 파드 개수Count
  • 합계
namespace_number_of_running_pods네임스페이스 구동 파드 개수Count
  • 합계
namespace_deployment_pod_count네임스페이스 디플로이먼트 파드 수Count
  • 합계
namespace_statefulset_pod_count네임스페이스 스테이트풀셋 파드 수Count
  • 합계
namespace_daemonset_pod_count네임스페이스 데몬셋 파드 수Count
  • 합계
namespace_job_active_count네임스페이스 잡 활성 수Count
  • 합계
namespace_cronjob_active_count네임스페이스 크론잡 활성 수Count
  • 합계
pod_cpu_usage파드 CPU 사용량-
  • 합계
pod_memory_usage파드 메모리 사용량Bytes
  • 합계
pod_network_rx_bytes파드 네트워크 수신 바이트Bytes/Second
  • 합계
pod_network_tx_bytes파드 네트워크 송신 바이트Bytes/Second
  • 합계
pod_network_total_bytes파드 네트워크 전체 바이트Count
  • 합계
container_cpu_usage컨테이너 CPU 사용량-
  • 합계
container_cpu_limit컨테이너 CPU 리미트-
  • 합계
container_cpu_utilization컨테이너 CPU 사용률-
  • 합계
container_memory_usage컨테이너 메모리 사용량Bytes
  • 합계
container_memory_limit컨테이너 메모리 리미트Bytes
  • 합계
container_memory_utilization컨테이너 메모리 사용률-
  • 합계
node_gpu_count노드 GPU 수Count
  • 합계
gpu_tempGPU 온도-
  • 합계
gpu_power_usageGPU 전력 사용량-
  • 합계
gpu_utilGPU 사용률Percent
  • 합계
gpu_sm_clockGPU SM 클럭-
  • 합계
gpu_fb_usedGPU FB 사용량Megabytes
  • 합계
gpu_tensor_activeGPU 텐서 활성률-
  • 합계
pod_gpu_util파드 GPU 사용률Percent
  • 합계
pod_gpu_tensor_active파드 GPU 텐서 활성률-
  • 합계
표. Kubernetes Engine 기본 지표

2 - How-to guides

사용자는 Samsung Cloud Platform Console을 통해 Kubernetes Engine의 필수 정보를 입력하고, 상세 옵션을 선택하여 서비스를 생성할 수 있습니다.

Kubernetes Engine 생성하기

Samsung Cloud Platform Console에서 Kubernetes Engine 서비스를 생성하여 사용할 수 있습니다.

Kubernetes Engine 서비스 이용을 위해 클러스터를 생성하고 관리할 수 있습니다. 클러스터 생성 후 노드, 네임스페이스, 워크로드 등 운영에 필요한 서비스를 추가할 수 있습니다.

주의
  • Kubernetes Engine의 네트워크 설정에서 Security Group을 최대 4개까지 선택할 수 있습니다.

    • Kubernetes Engine 에서 생성된 노드를 Virtual Server 서비스 페이지에서 Security Group을 직접 추가하는 경우, Kubernetes Engine에서 관리되지 않으므로 자동 해제될 수 있습니다.
    • 노드를 위한 Security Group은 반드시 Kubernetes Engine 서비스의 네트워크 설정에서 Security Group을 추가/관리하세요.
  • Managed Security Group는 Kubernetes Engine에서 자동 관리됩니다.

    • Managed Security Group을 삭제하거나 규칙을 추가/삭제하면 자동으로 원복되기 때문에 사용자 임의의 용도로 사용하지 마세요.

클러스터 생성하기

Samsung Cloud Platform Console에서 Kubernetes Engine 클러스터 서비스를 생성하여 사용할 수 있습니다.

Kubernetes Engine 클러스터를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 생성 버튼을 클릭하세요. 클러스터 생성 페이지로 이동합니다.
  3. 클러스터 생성 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
    • 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
      구분
      필수 여부
      상세 설명
      클러스터명필수클러스터 이름
      • 영문으로 시작하며 영문, 숫자, 특수문자(-) 사용하여 3-30자 이내로 입력
      제어 영역 설정 > Kubernetes 버전필수쿠버네티스 버전 선택
      제어 영역 설정 > 프라이빗 엔드포인트 접근 제어선택프라이빗 엔드포인트 접근 제어 사용 여부 선택
      • 사용을 선택한 후 추가를 클릭해 프라이빗 엔드포인트에 접근 허용할 리소스 선택
      • 동일 Account, 동일 리전의 리소스만 등록 가능
      • 사용 설정 여부와 상관없이 해당 클러스터의 노드는 프라이빗 엔드포인트에 접근 가능
      제어 영역 설정 > 퍼블릭 엔드포인트 접근/접근 제어선택퍼블릭 엔드포인트 접근/접근 제어 사용 여부 선택
      • 사용을 선택한 후 접근 허용 IP 범위를 192.168.99.0/24 형태로 입력
        • 외부에서 쿠버네티스 API 서버 엔드포인트에 접근할 수 있도록 접근 제어 IP 범위를 설정
        • 외부 접근이 필요하지 않으면 사용을 해제해 보안 위협을 줄일 수 있음
      ServiceWatch 로그 수집선택클러스터에 대한 로그를 ServiceWatch에서 확인할 수 있도록 로그 수집 사용 여부 설정. Account 내 전체 서비스 대상으로 5 GB의 로그 저장은 무료로 제공되며, 5 GB가 넘을 경우 저장 용량에 따라 요금이 부과됨.
      • 클러스터 로그 확인이 필요한 경우 ServiceWatch 로그 수집 기능 설정 권장
      Cloud Monitoring 로그 수집선택클러스터에 대한 로그를 Cloud Monitoring에서 확인할 수 있도록 로그 수집 사용 여부 설정. Account 내 전체 서비스 대상으로 1 GB의 로그 저장은 무료로 제공되며, 1 GB가 넘을 경우 순차적으로 삭제됨.
      네트워크 설정필수노드 풀의 네트워크 연결 설정
      • VPC: 미리 생성한 VPC를 선택
      • Subnet: 선택한 VPC의 서브넷 중 사용할 일반 Subnet을 선택
      • Security Group: 선택 버튼을 클릭한 후 Security Group 선택 팝업창에서 Security Group을 선택
        • 최대 4개의 Security Group 선택 가능
      File Storage 설정필수클러스터에서 사용할 파일 스토리지 볼륨을 선택
      • 기본 볼륨(NFS): 검색 버튼을 클릭한 후 File Storage 선택 팝업창에서 파일 스토리지를 선택. 기본 Volume 파일 스토리지는 NFS 형식만 사용 가능
      표. Kubernetes Engine 서비스 정보 입력 항목
    • 추가 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
      구분
      필수 여부
      상세 설명
      태그선택태그 추가
      • 자원 당 최대 50개까지 추가 가능
      • 태그 추가 버튼을 클릭한 후 Key, Value 값을 입력 또는 선택
      표. Kubernetes Engine 추가 정보 입력 항목
  4. 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
    • 생성이 완료되면, 클러스터 목록 페이지에서 생성한 자원을 확인하세요.

클러스터 상세 정보 확인하기

Kubernetes Engine 서비스는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. 클러스터 상세 페이지에서는 상세 정보, 노드 풀, 태그, 작업 이력 탭으로 구성되어 있습니다.

클러스터 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 상세 정보를 확인할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
    • 클러스터 상세 페이지에는 클러스터의 상태 정보 및 상세 정보가 표시되며, 상세 정보, 노드 풀, 태그, 작업 이력 탭으로 구성됩니다.
      구분상세 설명
      클러스터 상태Kubernetes Engine 클러스터의 상태
      • Creating: 생성 중
      • Running: 생성 완료/작동 중
      • Error: 에러 발생
      서비스 해지Kubernetes Engine 클러스터를 해지하는 버튼
      • Kubernetes Engine 서비스를 해지하려면 클러스터에 추가된 노드 풀을 모두 삭제해야 함
      • 서비스를 해지하면 운영 중인 서비스가 즉시 중단될 수 있으므로, 서비스 중단에 따른 영향을 고려하여 해지 필요
      표. 상태 정보 및 부가 기능

상세 정보

클러스터 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.

구분
상세 설명
서비스서비스명
자원 유형자원 유형
SRNSamsung Cloud Platform에서의 고유 자원 ID
자원명자원 이름
  • Kubernetes Engine 서비스에서는 클러스터명을 의미
자원 ID서비스에서의 고유 자원 ID
생성자서비스를 생성한 사용자
생성 일시서비스를 생성한 일시
수정자서비스 정보를 수정한 사용자
수정 일시서비스 정보를 수정한 일시
클러스터명클러스터 이름
LLM EndpointLLM Endpoint 정보
제어 영역 설정할당된 쿠버네티스 제어 영역(Control Plane) 버전과 접근 허용 범위 확인
  • 업그레이드할 수 있는 제어 영역의 쿠버네티스 버전이 있는 경우 수정 아이콘을 클릭하여 클러스터 버전 업그레이드 수행 가능. 자세한 내용은 클러스터 버전 업그레이드를 참고
  • 프라이빗 엔드 포인트 주소의 관리자 Kubeconfig 다운로드/사용자 Kubeconfig 다운로드 버튼을 클릭하면 각 권한의 kubeconfig 설정값을 yaml 문서로 다운로드
  • 프라이빗 엔드포인트 접근 제어의 수정 아이콘을 클릭하여 사용 여부 및 접근 허용 리소스 수정
  • 퍼블릭 엔드 포인트 주소의 관리자 Kubeconfig 다운로드/사용자 Kubeconfig 다운로드 버튼을 클릭하면 각 권한의 kubeconfig 설정값을 yaml 문서로 다운로드
  • 퍼블릭 엔드포인트 접근/접근 제어의 수정 아이콘을 클릭하여 사용 여부 및 접근 허용 IP 범위 수정
  • ServiceWatch 로그 수집의 수정 아이콘을 클릭하여 사용 여부 변경 가능. 로그 수집 기능 사용 시, 클러스터 제어 영역의 Audit/Event 로그를 ServiceWatch > 로그 그룹에서 확인
  • Cloud Monitoring 로그 수집의 수정 아이콘을 클릭하여 사용 여부 변경 가능. 로그 수집 기능 사용 시, 클러스터 제어 영역의 Audit/Event 로그를 Cloud Monitoring > 로그 분석에서 확인
네트워크 설정Kubernetes Engine 클러스터 생성 시 설정한 VPC, Subnet 및 Security Group 정보 확인
  • 각 설정값을 클릭하면 상세 정보 페이지에서 상세 정보를 확인 가능
  • Security Group 변경이 필요한 경우에는 수정 아이콘을 클릭하여 설정
File Storage 설정볼륨명을 클릭하면 스토리지 상세 정보 페이지에서 상세 정보를 확인 가능
표. 클러스터 상세 정보 항목
참고
  • Kubernetes Engine의 버전은 [메이저].[마이너].[패치] 순으로 표기하며, 한 번에 하나의 마이너 버전만 업그레이드할 수 있습니다.
    • 예시: 버전 1.11.x > 1.13.x (불가) / 버전 1.11.x > 1.12.x (가능)
  • 지원 종료된 쿠버네티스 버전이나 지원 종료 예정인 버전을 사용중인 경우, 버전 오른쪽에 빨간색 느낌표가 표시됩니다. 해당 아이콘이 표시되면 쿠버네티스 버전 업그레이드를 권장합니다.

노드 풀

클러스터 노드 풀 정보를 확인하고 추가하거나 변경, 삭제할 수 있습니다. 노드 풀 사용에 대한 자세한 내용은 노드 관리하기를 참고하세요.

구분상세 설명
노드 풀 추가현재 클러스터에 노드 풀 추가
노드 풀 정보노드 풀 목록 확인 및 관리 기능 제공
  • 노드 정보: 노드명, 버전, 상태 정보를 표시
  • 노드 풀 업그레이드: 노드 풀 버전 업그레이드
  • 노드 풀 삭제: 노드 삭제
표. 노드 풀 항목
참고

노드 풀 정보의 버전에 빨간 느낌표 아이콘이 표시되는 경우, 해당 노드 풀의 서버 OS는 쿠버네티스 상위 버전에서 지원되지 않습니다. 안정적인 서비스를 위해 노드 풀 서버 OS를 업그레이드해야 합니다.

  • 노드 풀 버전 업그레이드를 하려면 해당 노드 풀을 삭제한 후, 서버 OS 상위 버전으로 노드 풀을 신규 생성해야 합니다.

태그

클러스터 목록 페이지에서 선택한 자원의 태그 정보를 확인하고, 추가하거나 변경 또는 삭제할 수 있습니다.

구분상세 설명
태그 목록태그 목록
  • 태그의 Key, Value 정보 확인 가능
  • 태그는 자원 당 최대 50개까지 추가 가능
  • 태그 입력 시 기존에 생성된 Key와 Value 목록을 검색하여 선택
표. 클러스터 태그 탭 항목

작업 이력

클러스터 목록 페이지에서 선택한 자원의 작업 이력을 확인할 수 있습니다.

구분상세 설명
작업 이력 목록자원 변경 이력
  • 작업 내역, 작업 일시, 자원 유형, 자원명, 작업 결과, 작업자 정보 확인이 가능
  • 작업 이력 목록 리스트에서 해당하는 자원을 클릭하면 작업 이력 상세 팝업창이 열림
표. 클러스터 작업 이력 탭 상세 정보 항목

클러스터 자원 관리하기

클러스터 자원 관리를 위해서 클러스터 버전 업그레이드, kubeconfig 다운로드, 제어 영역 로깅 수정 기능을 제공하고 있습니다.

주의
Kubernetes Engine을 사용하려면 VPC, VPC Subnet, Security Group, FileStorage, Virtual Server에 대한 최소 조회 권한이 필요합니다.
Security Group 및 Virtual Server는 생성/삭제 권한이 없어도 Kubernetes Engine에서 Life-cycle 관리 목적으로 생성/삭제되며, 생성자/수정자는 System으로 명시됩니다.

클러스터 버전 업그레이드

클러스터의 쿠버네티스 버전에서 업그레이드할 수 있는 버전이 있는 경우, 클러스터 상세 페이지에서 업그레이드를 수행할 수 있습니다.

참고
  • 클러스터 업그레이드 전 다음 사항을 확인하세요.
    • 클러스터의 상태가 Running인지 확인
    • 클러스터의 모든 노드 풀 상태가 Running 또는 Deleting 상태인지 확인
    • 클러스터의 모든 노드 풀 버전이 클러스터와 동일한 버전인지 확인
    • 클러스터의 모든 노드 풀의 자동 확장/축소, 노드 자동복구 기능이 미사용 상태인지 확인
  • 클러스터를 업그레이드한 후 노드 풀 업그레이드를 진행하세요. 쿠버네티스 클러스터의 제어 영역 및 노드 풀 업그레이드는 별도로 수행됩니다.
  • 한 번에 하나의 마이너 버전만 업그레이드할 수 있습니다.
    • 예시: 버전 1.12.x > 1.13.x (가능) / 버전 1.11.x > 1.13.x (불가)
  • 업그레이드 후에는 다운그레이드나 롤백을 수행할 수 없으므로, 다시 이전 버전을 사용하려면 새 클러스터를 생성해야 합니다.

주의
  • 지원 종료된 쿠버네티스 버전을 이용 중인 사용자 시스템은 보안 취약성이 발생할 수 있으므로, Samsung Cloud Platform Console에서 직접 컨트롤 플레인 및 노드 풀의 버전을 업그레이드하세요.
    • 업그레이드에 따른 별도의 비용은 발생하지 않습니다.
  • 사용자의 안정적인 시스템 운영을 위해 업그레이드 버전에 대한 호환성 테스트를 사전에 수행해주세요.

클러스터 버전 업그레이드 사전 준비

클러스터 버전 업그레이드 시 API 객체를 삭제하고 다시 만들 필요는 없습니다. 전환된 API에 대해 모든 기존 API 객체는 새로운 API버전을 사용하여 읽고 업데이트할 수 있습니다. 하지만 구 버전 쿠버네티스의 Deprecated API로 인해 기존 객체를 읽고 수정하지 못하거나 새 객체를 만들지 못할 수 있습니다. 따라서, 시스템 안정성을 위해 업그레이드 전에 클라이언트와 매니페스트를 마이그레이션하는 것을 권장합니다.

다음 방법으로 클라이언트와 매니페스트를 마이그레이션 하세요.

  • 새 버전의 클라이언트(kubectl 등)를 다운로드하여 클러스터에 설치하고, 새로운 API를 참고하도록 Yaml을 수정합니다.
  • 또는 별도의 플러그인(kubectl convert)을 사용해 자동으로 변환해주세요. 자세한 설명은 쿠버네티스 공식 문서 > 리눅스에 kubectl 설치 및 설정을 참고하세요.
참고
클러스터 버전마다 deprecated API가 다르므로, 적용 범위와 시스템 영향도 차이가 있을 수 있습니다. 자세한 설명은 쿠버네티스 공식 문서 > Deprecation Guide를 참고하세요.

클러스터 및 노드 풀 버전 업그레이드하기

클러스터 및 노드 풀을 업데이트 하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 버전 업그레이드할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 Kubernetes 버전수정 아이콘을 클릭하세요. 클러스터 버전 업그레이드 팝업창으로 이동합니다.
  5. 업그레이드할 Kubernetes 버전을 선택하고, 확인 버튼을 클릭하세요.
    • 클러스터 업그레이드가 완료될 때까지 몇 분 정도 소요될 수 있습니다
    • 업그레이드가 진행되는 동안 클러스터의 상태는 Updating으로 표시되며, 업그레이드가 완료되면 Running으로 표시됩니다.
  6. 업그레이드가 완료되면 노드 풀 탭을 선택하세요. 노드 풀 페이지로 이동합니다.
  7. 노드 풀 항목의 더보기 버튼을 클릭하여 노드 풀 업그레이드를 클릭하세요. 노드 풀 버전 업그레이드 팝업창으로 이동합니다.
  8. 노드 풀 버전 업그레이드 팝업창에서 메시지를 확인한 후 확인 버튼을 클릭하세요.
    • 노드 풀 업그레이드가 완료될 때까지 몇 분 정도 소요될 수 있습니다.
    • 업그레이드가 진행되는 동안 노드 풀의 상태는 Updating으로 표시되며, 업그레이드가 완료되면 Running으로 표시됩니다.

kubeconfig 다운로드

클러스터의 퍼블릭 엔드포인트와 프라이빗 엔드포인트의 관리자/사용자 kubeconfig 설정값을 yaml 문서로 다운로드할 수 있습니다.

클러스터의 kubeconfig 설정값을 다운로드하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 kubeconfig 다운로드할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 원하는 엔드포인트의 관리자 kubeconfig 다운로드/사용자 kubeconfig 다운로드 버튼을 클릭하세요.
    • 각 권한별로 kubeconfig 파일을 yaml 형식으로 다운로드할 수 있습니다.

프라이빗 엔드포인트 접근 제어 수정하기

클러스터의 프라이빗 엔드포인트 접근 제어 설정을 변경할 수 있습니다.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 프라이빗 엔드포인트 접근 제어를 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 프라이빗 엔드포인트 접근 제어수정 아이콘을 클릭하세요. 프라이빗 엔드포인트 접근 제어 수정 팝업창으로 이동합니다.
  5. 프라이빗 엔드포인트 접근 제어 수정 팝업창에서 프라이빗 엔드포인트 접근 제어사용 여부를 체크하고 접근 허용 리소스를 추가한 후, 확인 버튼을 클릭하세요.

퍼블릭 엔드포인트 접근/접근 제어 수정하기

클러스터의 퍼블릭 엔드포인트 접근 제어 설정을 변경할 수 있습니다.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 퍼블릭 엔드포인트 접근 제어를 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 퍼블릭 엔드포인트 접근/접근 제어수정 아이콘을 클릭하세요. 퍼블릭 엔드포인트 접근/접근 제어 수정 팝업창으로 이동합니다.
  5. 퍼블릭 엔드포인트 접근/접근 제어 수정 팝업창에서 퍼블릭 엔드포인트 접근 제어사용 여부를 체크하고 접근 허용 IP 범위를 추가한 후, 확인 버튼을 클릭하세요.

제어 영역 로그 수집 설정 수정하기

클러스터의 제어 영역(Control Plane)의 로그 수집 설정을 변경할 수 있습니다. 클러스터의 상세 로그는 ServiceWatch 서비스나 Cloud Monitoring 서비스에서 확인할 수 있습니다.

참고

Cloud Monitoring 로그 수집을 설정해도 클러스터 로그를 확인할 수 있습니다.

  • 단, Cloud Moniotring 로그 수집 기능은 서비스 종료 예정이므로 ServiceWatch 로그 수집 사용을 권장합니다.

클러스터의 제어 영역 로그 수집 설정을 변경하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 제어 영역 로깅을 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 ServiceWatch 로그 수집수정 아이콘을 클릭하세요. ServiceWatch 로그 수집 팝업창으로 이동합니다.
    • Cloud Monitoring 로그 수집 기능도 동일하게 설정할 수 있습니다.
  5. ServiceWatch 로그 수집 팝업창에서 ServiceWatch 로그 수정사용 여부를 체크한 후, 확인 버튼을 클릭하세요.
참고

로그 수집 사용 시, 클러스터 제어 영역의 Audit/Event 로그를 각각의 서비스에서 확인할 수 있습니다. 상세 로그는 다음 페이지에서 확인할 수 있습니다.

Security Group 수정하기

클러스터의 Security Group을 수정할 수 있습니다.

주의
  • Kubernetes Engine의 네트워크 설정에서 Security Group을 다중 선택할 수 있습니다. (최대 4개)

    • Kubernetes Engine 에서 생성된 노드를 Virtual Server 서비스 페이지에서 Security Group을 직접 추가하는 경우, Kubernetes Engine에서 관리되지 않으므로 자동 해제될 수 있습니다.
    • 노드를 위한 Security Group은 반드시 Kubernetes Engine 서비스의 네트워크 설정에서 Security Group을 추가/관리하세요.
  • Managed Security Group는 Kubernetes Engine에서 자동 관리됩니다.

    • Managed Security Group을 삭제하거나 규칙을 추가/삭제하면 자동으로 원복되기 때문에 사용자 임의의 용도로 사용하지 마세요.

클러스터의 Security Group을 수정하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 Security Group 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 Security Group수정 아이콘을 클릭하세요. Security Group 수정 팝업창으로 이동합니다.
  5. 수정할 Security Group을 선택 또는 선택 해제한 후, 확인 버튼을 클릭하세요.

클러스터 해지하기

주의
클러스터를 해지하면 모든 노드 풀이 삭제되며, 클러스터 내의 모든 파드에서 모든 데이터가 영구적으로 삭제됩니다.

클러스터를 해지하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
  3. 클러스터 목록 페이지에서 상세 정보를 확인할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
  4. 클러스터 상세 페이지에서 서비스 해지를 클릭하세요.
  5. 서비스 해지 팝업창에서 내용을 확인한 후, 확인 버튼을 클릭하세요.

2.1 - 노드 관리하기

노드란 컨테이너화된 애플리케이션을 실행하는 머신의 집합입니다. 모든 클러스터는 한 개 이상의 워커 노드를 가져야 애플리케이션 배포가 가능합니다. 노드는 노드풀을 정의해 사용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈, 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 수를 확인
    표. 노드 상세 정보 항목

2.2 - 네임스페이스 관리하기

네임스페이스는 쿠버네티스 클러스터 내의 논리적인 분리 단위이며, 네임스페이스별 접근 권한 또는 리소스 사용 한도를 지정하기 위해 사용됩니다.

네임스페이스 생성하기

네임스페이스를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
  3. 네임스페이스 목록 페이지에서 네임스페이스를 생성하려는 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 쿠버네티스 오브젝트를 참고하세요.

네임스페이스 상세 정보 확인하기

네임스페이스 상세 페이지에서 네임스페이스 상태 및 상세 정보를 확인할 수 있습니다.

네임스페이스 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
  3. 네임스페이스 목록 페이지에서 상세 정보 확인이 필요한 네임스페이스가 속한 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인을 클릭하세요.
  4. 네임스페이스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택해 클릭하세요. 네임스페이스 상세 페이지로 이동합니다.
    구분상세 설명
    상태 표시네임스페이스의 현재 상태를 표시
    네임스페이스 삭제네임스페이스를 삭제
    • 워크로드가 포함된 네임스페이스는 삭제할 수 없음. 네임스페이스를 삭제하려면 연결될 워크로드를 모두 삭제해야 함
    상세 정보네임스페이스의 Account 정보와 메타데이터 정보를 확인
    YAML네임스페이스를 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 네임스페이스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트네임스페이스 내에서 발생한 이벤트를 확인
    파드네임스페이스의 파드 정보를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보네임스페이스의 메타데이터 정보를 확인
    표. 네임스페이스 상세 정보 항목

네임스페이스 삭제하기

네임스페이스를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
  3. 네임스페이스 목록 페이지에서 삭제 하려는 네임스페이스가 속한 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인 버튼을 클릭하세요.
  4. 네임스페이스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택해 클릭하세요. 네임스페이스 상세 페이지로 이동합니다.
  5. 네임스페이스 상세 페이지에서 네임스페이스 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
  • 네임스페이스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 네임스페이스를 삭제할 수 있습니다.
  • 워크로드가 포함된 네임스페이스는 삭제할 수 없습니다. 네임스페이스를 삭제하려면 연결된 워크로드를 모두 삭제하세요.

2.3 - 워크로드 관리하기

워크로드는 Kubernetes Engine에서 구동되는 애플리케이션입니다. 네임스페이스를 생성한 다음 워크로드를 추가하거나 삭제할 수 있습니다. 워크로드는 디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 항목별로 생성한 후 관리합니다.

참고

디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.

  • 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.

디플로이먼트 관리하기

디플로이먼트는 파드와 레플리카셋(ReplicaSet)에 대한 업데이트를 제공하는 리소스를 말합니다. 워크로드에서 디플로이먼트를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

디플로이먼트 생성하기

디플로이먼트를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
  3. 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
    • 다음은 디플로이먼트 생성을 위한 필수 필드와 오브젝트 Spec을 보여주는 .yaml 파일 예시입니다. (application/deployment.yaml)
      배경색 변경
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: nginx-deployment
       spec:
         selector:
            matchLabels:
               app: nginx
         replicas: 2 # tells deployment to run 2 pods matching the template
         template:
           metadata:
              labels:
                 app: nginx
           spec:
              containers:
              - name: nginx
                image: nginx:1.14.2
                ports:
                - containerPort: 80
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: nginx-deployment
       spec:
         selector:
            matchLabels:
               app: nginx
         replicas: 2 # tells deployment to run 2 pods matching the template
         template:
           metadata:
              labels:
                 app: nginx
           spec:
              containers:
              - name: nginx
                image: nginx:1.14.2
                ports:
                - containerPort: 80
      코드블록. 디플로이먼트 생성을 위한 필수 필드와 오브젝트 Spec
참고
디플로이먼트의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 디플로이먼트를 참고하세요.

디플로이먼트 상세 정보 확인하기

디플로이먼트 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
  3. 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 디플로이먼트 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 디플로이먼트 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    디플로이먼트 삭제디플로이먼트를 삭제
    상세 정보디플로이먼트의 상세 정보 확인 가능
    YAML디플로이먼트의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭해 번경 사항을 적용
    이벤트디플로이먼트 내에서 발생한 이벤트를 확인
    파드디플로이먼트의 파드 정보를 확인
    • Pod(파드)는 Kubernetes Engine에서 생성, 관리, 및 배포할 수 있는 가장 작은 컴퓨팅 단위
    Account 정보Account 이름, 위치, 생성 일시 등 Account에 대한 기본적인 정보를 확인
    메타데이터 정보디플로이먼트의 메타데이터 정보를 확인
    객체 정보디플로이먼트의 객체 정보를 확인
    표. 디플로이먼트 상세 정보 항목

디플로이먼트 삭제하기

디플로이먼트를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
  3. 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 디플로이먼트 목록 페이지에서 삭제하려는 항목을 선택하세요. 디플로이먼트 상세 페이지로 이동합니다.
  5. 디플로이먼트 상세 페이지에서 디플로이먼트 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
디플로이먼트 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 디플로이먼트를 삭제할 수 있습니다.

파드 관리하기

파드(Pod)는 쿠버네티스에서 생성, 관리하고 배포할 수 있는 가장 작은 컴퓨팅 단위로, 하나 이상의 컨테이너 그룹을 말합니다. 워크로드에서 파드를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

파드 생성하기

파드를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
  3. 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
파드의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 파드를 참고하세요.

파드 상세 정보 확인하기

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

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
  3. 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 파드 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 파드 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    상태 표시파드의 현재 상태를 표시
    파드 삭제파드를 삭제
    상세 정보파드의 상세 정보 확인 가능
    YAML파드의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트파드 내에서 발생한 이벤트를 확인
    로그컨테이너를 선택하면 파드가 가지고 있는 컨테이너 정보를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보파드의 메타데이터 정보를 확인
    객체 정보파드의 객체 정보를 확인
    초기화 컨테이너 정보파드의 초기화 컨테이너 정보를 확인
    컨테이너 정보파드의 컨테이너 정보를 확인
    표. 파드 상세 정보 항목

파드 삭제하기

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

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
  3. 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 파드 목록 페이지에서 삭제하려는 항목을 선택하세요. 파드 상세 페이지로 이동합니다.
  5. 파드 상세 페이지에서 파드 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
파드 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 파드를 삭제할 수 있습니다.

스테이트풀셋 관리하기

스테이트풀셋은 애플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API 오브젝트를 말합니다. 워크로드에서 스테이트풀셋을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

스테이트풀셋 생성하기

스테이트풀셋을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
  3. 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
스테이트풀셋 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 스테이트풀셋를 참고하세요.

스테이트풀셋 상세 정보 확인하기

스테이트풀셋의 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
  3. 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 스테이트풀셋 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 스테이트풀셋 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    스테이트풀셋 삭제스테이트풀셋을 삭제
    상세 정보스테이트풀셋의 상세 정보 확인 가능
    YAML스테이트풀셋의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트스테이트풀셋 내에서 발생한 이벤트를 확인
    파드스테이트풀셋의 파드 정보를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보스테이트풀셋의 메타데이터 정보를 확인
    객체 정보스테이트풀셋의 객체 정보를 확인
    표. 스테이트풀셋 상세 정보 항목

스테이트풀셋 삭제하기

스테이트풀셋을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
  3. 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 스테이트풀셋 목록 페이지에서 삭제하려는 항목을 선택하세요. 스테이트풀셋 상세 페이지로 이동합니다.
  5. 스테이트풀셋 상세 페이지에서 스테이트풀셋 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
스테이트풀셋 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 스테이트풀셋을 삭제할 수 있습니다.

데몬셋 관리하기

데몬셋은 모든 노드 또는 일부 노드가 파드의 사본을 실행하도록 하는 리소스를 말합니다. 워크로드에서 데몬셋을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

데몬셋 생성하기

데몬셋을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
  3. 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
데몬셋의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 데몬셋를 참고하세요.

데몬셋 상세 정보 확인하기

데몬셋의 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
  3. 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 데몬셋 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 데몬셋 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    데몬셋 삭제데몬셋을 삭제
    상세 정보데몬셋의 상세 정보 확인 가능
    YAML데몬셋의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트데몬셋 내에서 발생한 이벤트를 확인
    파드데몬셋의 파드 정보를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보데몬셋의 메타데이터 정보를 확인
    객체 정보데몬셋의 객체 정보를 확인
    표. 데몬셋 상세 정보 항목

데몬셋 삭제하기

데몬셋을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
  3. 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 데몬셋 목록 페이지에서 삭제하려는 항목을 선택하세요. 데몬셋 상세 페이지로 이동합니다.
  5. 데몬셋 상세 페이지에서 데몬셋 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
데몬셋 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 데몬셋을 삭제할 수 있습니다.

잡 관리하기

잡은 하나 이상의 파드를 생성하고 지정된 수의 파드가 성곡적으로 종료될 때까지 계속해서 파드를 실행시키는 리소스를 말합니다. 워크로드에서 잡을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

잡 생성하기

잡을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 을 클릭하세요. 잡 목록 페이지로 이동합니다.
  3. 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
잡의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 잡를 참고하세요.

잡 상세 정보 확인하기

잡 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 을 클릭하세요. 잡 목록 페이지로 이동합니다.
  3. 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 잡 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 잡 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    잡 삭제잡을 삭제
    상세 정보잡의 상세 정보 확인 가능
    YAML잡의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트잡 내에서 발생한 이벤트를 확인
    파드잡의 파드 정보를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보잡의 메타데이터 정보를 확인
    객체 정보잡의 객체 정보를 확인
    표. 잡 상세 정보 항목

잡 삭제하기

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

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 을 클릭하세요. 잡 목록 페이지로 이동합니다.
  3. 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 잡 목록 페이지에서 삭제하려는 항목을 선택하세요. 잡 상세 페이지로 이동합니다.
  5. 잡 상세 페이지에서 잡 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
잡 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 잡을 삭제할 수 있습니다.

크론잡 관리하기

크론잡은 크론 형식으로 작성된 일정에 따라 잡(Job)을 주기적으로 동작시키는 리소스를 말합니다. 백업, 리포트 생성 등 일정한 주기의 반복 작업을 실행할 때 사용할 수 있습니다. 워크로드에서 크론잡을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

크론잡 생성하기

크론잡을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
  3. 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
크론잡의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 크론잡를 참고하세요.

크론잡 상세 정보 확인하기

크론잡의 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
  3. 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 크론잡 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 크론잡 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    크론잡 삭제크론잡을 삭제
    상세 정보크론잡의 상세 정보 확인 가능
    YAML크론잡의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트크론잡 내에서 발생한 이벤트를 확인
    크론잡의 잡 정보를 확인. 잡 항목을 선택하면 잡 상세 페이지로 이동
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보크론잡의 메타데이터 정보를 확인
    객체 정보크론잡의 객체 정보를 확인
    표. 크론잡 상세 정보 항목

크론잡 삭제하기

크론잡을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
  3. 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 크론잡 목록 페이지에서 삭제하려는 항목을 선택하세요. 크론잡 상세 페이지로 이동합니다.
  5. 크론잡 상세 페이지에서 크론잡 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
크론잡 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 크론잡을 삭제할 수 있습니다.

2.4 - 서비스 및 인그레스 관리하기

서비스는 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이며, 인그레스는 클러스터 외부에서 클러스터 내부로 HTTP와 HTTPS 경로를 노출하기 위해 사용합니다. 네임스페이스 생성 후 서비스, 엔드포인트, 인그레스 및 인그레스클래스를 생성하거나 삭제할 수 있습니다.

참고

서비스, 엔드포인트, 인그레스, 인그레스클래스 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.

  • 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.

서비스 관리하기

서비스를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

서비스 생성하기

서비스를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
  3. 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
서비스의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 서비스를 참고하세요.

서비스 상세 정보 확인하기

서비스 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
  3. 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 서비스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 서비스 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    서비스 삭제서비스를 삭제
    상세 정보서비스의 상세 정보 확인 가능
    YAML서비스의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트서비스 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보서비스의 메타데이터 정보를 확인
    객체 정보서비스의 객체 정보를 확인
    표. 서비스 상세 정보 항목

서비스 삭제하기

서비스를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
  3. 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 서비스 목록 페이지에서 삭제하려는 항목을 선택하세요. 서비스 상세 페이지로 이동합니다.
  5. 서비스 상세 페이지에서 서비스 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
서비스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 서비스를 삭제할 수 있습니다.

엔드포인트 관리하기

엔드포인트를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.

엔드포인트 생성하기

엔드포인트를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
  3. 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.

엔드포인트 상세 정보 확인하기

엔드포인트 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
  3. 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 엔드포인트 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 엔드포인트 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    엔드포인트 삭제엔드포인트를 삭제
    상세 정보엔드포인트의 상세 정보 확인 가능
    YAML엔드포인트의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트엔드포인트 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보엔드포인트의 메타데이터 정보를 확인
    객체 정보엔드포인트의 객체 정보를 확인
    표. 엔드포인트 상세 정보 항목

엔드포인트 삭제하기

엔드포인트를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
  3. 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 엔드포인트 목록 페이지에서 삭제하려는 항목을 선택하세요. 엔드포인트 상세 페이지로 이동합니다.
  5. 엔드포인트 상세 페이지에서 엔드포인트 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
참고
엔드포인트 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 엔드포인트를 삭제할 수 있습니다.

인그레스 관리하기

인그레스는 Kubernetes Engine 내의 서비스에 대한 외부 접근(HTTP, HTTPS)을 관리하는 API 오브젝트로, 워크로드를 외부로 노출하기 위해 사용되며, L7 로드 밸런싱 기능을 제공합니다.

인그레스 생성하기

인그레스를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
  3. 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
인그레스의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 인그레스(Ingress)를 참고하세요.

인그레스 상세 정보 확인하기

인그레스 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
  3. 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 인그레스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 인그레스 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    인그레스 삭제인그레스를 삭제
    상세 정보인그레스의 상세 정보 확인 가능
    YAML인그레스의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트인그레스 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보인그레스의 메타데이터 정보를 확인
    객체 정보인그레스의 객체 정보를 확인
    표. 인그레스 상세 정보 항목

인그레스 삭제하기

인그레스를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
  3. 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 인그레스 목록 페이지에서 삭제하려는 항목을 선택하세요. 인그레스 상세 페이지로 이동합니다.
  5. 인그레스 상세 페이지에서 인그레스 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
인그레스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 인그레스를 삭제할 수 있습니다.

인그레스클래스 관리하기

인그레스클래스는 하나의 클러스터에 여러 인그레스 컨트롤러를 사용할 수 있게 하는 API 리소스를 말합니다. 각 인그레스에서는 클래스를 구현해야 하는 컨트롤러를 포함하여 구성이 포함된 인그레스클래스 리소스에 대한 참고 클래스를 지정해야 합니다.

인그레스클래스 생성하기

인그레스클래스를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
  3. 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
인그레스클래스의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 인그레스(Ingress)를 참고하세요.

인그레스클래스 상세 정보 확인하기

인그레스클래스 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
  3. 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 인그레스클래스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 인그레스클래스 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    인그레스클래스 삭제인그레스클래스를 삭제
    상세 정보인그레스클래스의 상세 정보 확인 가능
    YAML인그레스클래스의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트인그레스클래스 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보인그레스클래스의 메타데이터 정보를 확인
    객체 정보인그레스클래스의 객체 정보를 확인
    표. 인그레스클래스 상세 정보 항목

인그레스클래스 삭제하기

인그레스클래스를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
  3. 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 인그레스클래스 목록 페이지에서 삭제하려는 항목을 선택하세요. 인그레스클래스 상세 페이지로 이동합니다.
  5. 인그레스클래스 상세 페이지에서 인그레스클래스 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
인그레스클래스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 인그레스클래스를 삭제할 수 있습니다.

2.5 - 스토리지 관리하기

Kubernetes Engine 이용 시 사용할 스토리지를 생성하고 관리할 수 있습니다. 스토리지는 PVC, PV, 스토리지클래스 항목별로 생성한 후 관리합니다.

참고

PVC, PV, 스토리지클래스 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.

  • 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
안내

스토리지 유형별로 연계되는 항목은 다음과 같습니다.

유형상세 설명
블록 스토리지Virtual Server 내 Block storage 상품과 연계하여 해당 상품의 Volume을 사용하는 스토리지 클래스를 지원
오브젝트 스토리지Samsung Cloud Platform 상품 또는 외부의 Object Storage와 연계 가능
  • Kubernetes Engine에는 별도 설정이 필요하지 않으며, 해당 Object Storage 가이드에 따라 워크로드(애플리케이션)에 직접 설정하여 연계 가능
파일 스토리지File Storage 상품과 연계하여 NFS 및 CIFS 프로토콜 Volume의 스토리지 클래스를 지원
  • NFS 프로토콜 Volume의 경우, Kubernetes Engine 생성 시 선택 필수 (HDD, SSD 디스크 유형 지원)
  • CIFS 프로토콜 Volume의 경우, Kubernetes Engine 생성 시 또는 생성 이후 선택 가능
표. 유형별 스토리지 연계 항목

PVC 관리하기

Persistent Volume Claim(PVC)은 필요한 스토리지 용량을 할당받기 위해 정의한 객체입니다. PVC는 추상화를 통해 높은 사용성을 제공하며, 컨테이너 라이프사이클(Container Lifecycle) 만료 시 데이터가 함께 소멸되는 문제를 방지할 수 있습니다(Data Persistence 유지).

PVC 생성하기

PVC를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
  3. PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
PVC의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 퍼시스턴트 볼륨을 참고하세요.

PVC 상세 정보 확인하기

PVC 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
  3. PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. PVC 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. PVC 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    상태 표시PVC의 현재 상태를 표시합니다.
    • Bound: 정상 연결
    PVC 삭제PVC를 삭제
    상세 정보PVC의 상세 정보 확인 가능
    YAMLPVC의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트PVC 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보PVC의 메타데이터 정보를 확인
    객체 정보PVC의 객체 정보를 확인
    표. PVC 상세 정보 항목

PVC 삭제하기

PVC를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
  3. PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. PVC 목록 페이지에서 삭제하려는 항목을 선택하세요. PVC 상세 페이지로 이동합니다.
  5. PVC 상세 페이지에서 PVC 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의

PVC 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 PVC를 삭제할 수 있습니다.

  • PVC를 삭제하기 전, 삭제될 PV 및 볼륨의 백업 여부 등을 확인하세요.

PV 관리하기

Persistent Volume(PV)은 시스템 관리자가 Kubernetes Engine에 생성한 물리 디스크를 의미합니다.

PV 생성하기

PV를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
  3. PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
PV의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 퍼시스턴트 볼륨을 참고하세요.

PV 상세 정보 확인하기

PV 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
  3. PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. PV 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. PV 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분상세 설명
    상태 표시PV의 현재 상태를 표시합니다.
    • Bound: 정상 연결
    PV 삭제PV를 삭제
    상세 정보PV의 상세 정보 확인 가능
    YAMLPV의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트PV 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보PV의 메타데이터 정보를 확인
    객체 정보PV의 객체 정보를 확인
    표. PV 상세 정보 항목

PV 삭제하기

PV를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
  3. PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. PV 목록 페이지에서 삭제하려는 항목을 선택하세요. PV 상세 페이지로 이동합니다.
  5. PV 상세 페이지에서 PV 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
PV 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 PV를 삭제할 수 있습니다.

스토리지클래스 관리하기

스토리지 클래스(Storage Class)는 스토리지의 유형이나 성능 등의 수준을 정의하는 Kubernetes 리소스입니다.

참고

Kubernetes Engine에서는 nfs-subdir-external-sc, bs-sc 스토리지 클래스를 기본 제공하며, 다음과 같은 특징이 있습니다.

  • nfs-subdir-external-sc 스토리지 클래스는 클러스터에 연결된 파일 스토리지를 공유해 사용합니다.
    • 액세스 모드: RWX - ReadWriteMany
    • 리클레임 정책: Delete(PVC 삭제 시 PV와 저장된 데이터를 함께 삭제), Retain(PVC 삭제 시 PV와 저장된 데이터 유지)
    • 용량 확장: 개별 PVC 확장 불가/파일 스토리지 전체 확장 허용
  • bs-sc 스토리지 클래스는 블록 스토리지 상품과 연계하여 SSD 타입의 Volume을 사용할 수 있도록 지원합니다.
    • 액세스 모드: RWO - ReadWriteOnce
    • 리클레임 정책: Delete(PVC 삭제 시 PV와 저장된 데이터를 함께 삭제), Retain(PVC 삭제 시 PV와 저장된 데이터 유지)
    • 용량 확장 지원: 개별 PVC 확장 지원 (8 Gi 단위 볼륨 자동 확장)

사전 정의된 스토리지 클래스

스토리지 클래스리클레임 정책*볼륨 확장 허용**마운트 옵션비고
nfs-subdir-external-sc (default)Delete미지원nfsvers=3, noresvport기본 Volume (NFS) 설정과 연계
nfs-subdir-external-sc-retainRetain미지원nfsvers=3, noresvport기본 Volume (NFS) 설정과 연계
bs-scDelete지원-VirtualServer > BlockStorage 상품과 연계
bs-sc-retainRetain지원-VirtualServer > BlockStorage 상품과 연계
  • (*) default가 아닌 스토리지 클래스를 사용하려면 PVC의 spec.storageClassName에 스토리지 클래스명 지정 필요
  • (**) 사용자가 직접 default 스토리지 클래스 변경 가능 (storageclass.kubernetes.io/is-default-class: “true” annotation 조정)
표. 사전 정의된 스토리지 클래스 목록
주의

리클레임 정책의 특징은 다음과 같습니다.

  • Delete: PVC를 삭제하면 해당 PV와 물리 데이터도 삭제됩니다.
  • Retain: PVC를 삭제해도 해당 PV와 물리 데이터는 삭제되지 않고 유지됩니다. 워크로드에서 사용하지 않는 물리 데이터가 Storage에 남아있을 수 있으므로 용량관리에 주의가 필요합니다.
주의

볼륨 확장 사용 시 다음 사항을 고려하세요.

  1. nfs-subdir-external-sc 스토리지 클래스
    • PVC의 용량을 조정할 수 없습니다. (볼륨 확장 미지원)
    • 모든 PV들은 File Storage 볼륨의 전체 용량을 공유하므로, 각 PVC의 볼륨 확장이 필요하지 않습니다.
  2. bs-sc 스토리지 클래스
    • PVC 용량을 확장할 수 있습니다. (축소 기능 미지원)
    • PVC에 요청된 용량만큼 해당 PV의 용량이 보장되는 것은 아닙니다. (8 Gi 단위 확장 지원)

스토리지클래스 생성하기

스토리지클래스를 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
  3. 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
    참고
    스토리지클래스의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 스토리지 클래스를 참고하세요.

스토리지클래스 상세 정보 확인하기

스토리지클래스 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
  3. 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 스토리지클래스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 스토리지클래스 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    스토리지클래스 삭제스토리지클래스를 삭제
    상세 정보스토리지클래스의 상세 정보 확인 가능
    YAML스토리지클래스의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트스토리지클래스 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보스토리지클래스의 메타데이터 정보를 확인
    객체 정보스토리지클래스의 객체 정보를 확인
    표. 스토리지클래스 상세 정보 항목

스토리지클래스 삭제하기

스토리지클래스를 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
  3. 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 스토리지클래스 목록 페이지에서 삭제하려는 항목을 선택하세요. 스토리지클래스 상세 페이지로 이동합니다.
  5. 스토리지클래스 상세 페이지에서 스토리지클래스 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
    주의
    스토리지클래스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 스토리지클래스를 삭제할 수 있습니다.

2.6 - 구성(Configuration) 관리하기

개발 및 운영 등 여러 환경에 따라 컨테이너 안쪽에서 변화하는 값들을 관리할 필요가 있을 때 환경 변수로 인해 별도의 이미지를 생성해 관리하는 것은 불편하고 비용적 낭비가 큽니다. 쿠버네티스에서는 외부에서 값들을 바꿀 수 있도록 환경 변수나 설정 값들을 변수로 관리해서 Pod가 생성될 때 넣어줄 수 있는대, 이때 컨피그맵(ConfigMap)과 시크릿(Secret)을 이용할 수 있습니다.

참고

컨피그맵과 시크릿 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.

  • 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 컨피크맵과 시크릿 서비스를 확인할 수 있습니다.

컨피그맵 관리하기

네임스페이스에서 사용하는 Config 정보들을 컨피그맵으로 작성해 관리할 수 있습니다.

컨피그맵 생성하기

컨피그맵을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
  3. 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
컨피그맵의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 컨피그맵을 참고하세요.

컨피그맵 상세 정보 확인하기

컨피그맵 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
  3. 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 컨피그맵 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 컨피그맵 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    컨피그맵 삭제컨피그맵을 삭제
    상세 정보컨피그맵의 상세 정보 확인 가능
    YAML컨피그맵의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트컨피그맵 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보컨피그맵의 메타데이터 정보를 확인
    객체 정보컨피그맵의 객체 정보를 확인
    • 데이터에서는 - - -로 행을 구분하며, value는 textarea 형식으로 표시함
    • 이진 데이터의 value는 length 값을 출력함
    표. 컨피그맵 상세 정보 항목

컨피그맵 삭제하기

컨피그맵을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
  3. 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 컨피그맵 목록 페이지에서 삭제하려는 항목을 선택하세요. 컨피그맵 상세 페이지로 이동합니다.
  5. 컨피그맵 상세 페이지에서 컨피그맵 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
컨피그맵 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 컨피그맵을 삭제할 수 있습니다.

시크릿 관리하기

시크릿을 사용하면 비밀번호, OAuth 토큰, SSH 키와 같은 민감한 정보를 안전하게 저장하고 관리할 수 있습니다.

시크릿 생성하기

시크릿을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
  3. 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
시크릿의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 시크릿을 참고하세요.

시크릿 상세 정보 확인하기

시크릿 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
  3. 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 시크릿 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 시크릿 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    시크릿 삭제시크릿을 삭제
    상세 정보시크릿의 상세 정보 확인 가능
    YAML시크릿의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트시크릿 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보시크릿의 메타데이터 정보를 확인
    객체 정보시크릿의 객체 정보를 확인
    표. 시크릿 상세 정보 항목

시크릿 삭제하기

시크릿을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
  3. 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 시크릿 목록 페이지에서 삭제하려는 항목을 선택하세요. 시크릿 상세 페이지로 이동합니다.
  5. 시크릿 상세 페이지에서 시크릿 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
시크릿 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 시크릿을 삭제할 수 있습니다.

2.7 - 권한 관리하기

쿠버네티스 클러스터를 여러 사용자가 접소하는 경우 특정 API 또는 네임스페이스별로 권한을 부여해 접근 범위를 지정할 수 있습니다. 쿠버네티스의 역할 기반 권한 관리(RBAC, Role-based access control) 기능을 적용해 클러스터나 네임스페이스별로 권한을 설정할 수 있습니다. 클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩을 생성하고 관리할 수 있습니다.

참고

클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.

  • 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
참고

클러스터롤 관리하기

클러스터 단위로 접근 권한을 설정하고 관리할 수 있습니다. 또한 네임스페이스에 한정되지 않는 API 또는 리소스에 대한 권한도 설정할 수 있습니다.

클러스터롤 생성하기

클러스터롤을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
  3. 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
클러스터롤에 대한 자세한 내용은 쿠버네티스 공식 문서 > Using RBAC Authorization을 참고하세요.

클러스터롤 상세 정보 확인하기

클러스터롤 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
  3. 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 클러스터롤 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 클러스터롤 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    클러스터롤 삭제클러스터롤을 삭제
    상세 정보클러스터롤의 상세 정보 확인 가능
    YAML클러스터롤의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트클러스터롤 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보클러스터롤의 메타데이터 정보를 확인
    정책 규칙 정보클러스터롤의 정책 규칙 정보를 확인
    • 리소스: 규칙을 적용할 리소스 목록
    • 비-리소스 URLs: 비-리소스(NonResource)URLs는 사용자가 액세스해야 하는 부분 URL 집합
      • *는 허용되지만 경로의 전체 최종 단계로만 허용됨
      • 리소스가 아닌 URL은 네임스페이스화되지 않으므로 이 필드는 ClusterRoleBinding에서 참고되는 CluterRole에만 적용 가능합
      • 규칙은 API 리소스(예: “pods” 또는 “secrets”) 또는 비-리소스 URL 경로(예: “/api”)에 적용될 수 있지만 둘 다에는 적용할 수 없음
    • 리소스명: 리소스명은 규칙이 적용되는 이름의 선택적 화이트 리스트임. 빈 집합은 모든 것이 허용된다는 의미
    • 동사: 동사(verb)는 get, list, create, update, path, watch, delete, deletecollection과 같은 리소스 요청에 사용하는 API 동사를 의미
    표. 클러스터롤 상세 정보 항목

클러스터롤 삭제하기

클러스터롤을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
  3. 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 클러스터롤 목록 페이지에서 삭제하려는 항목을 선택하세요. 클러스터롤 상세 페이지로 이동합니다.
  5. 클러스터롤 상세 페이지에서 클러스터롤 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
클러스터롤 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 클러스터롤을 삭제할 수 있습니다.

클러스터롤바인딩 관리하기

클러스터롤과 특정 대상을 연결해 클러스터롤바인딩을 생성하고 관리할 수 있습니다.

클러스터롤바인딩 생성하기

클러스터롤바인딩을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
  3. 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
클러스터롤바인딩에 대한 자세한 내용은 쿠버네티스 공식 문서 > Using RBAC Authorization을 참고하세요.

클러스터롤바인딩 상세 정보 확인하기

클러스터롤바인딩 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
  3. 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 클러스터롤바인딩 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 클러스터롤바인딩 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    클러스터롤바인딩 삭제클러스터롤바인딩을 삭제
    상세 정보클러스터롤바인딩의 상세 정보를 확인
    YAML클러스터롤바인딩의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트클러스터롤바인딩 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보클러스터롤바인딩의 메타데이터 정보를 확인
    롤/대상 정보클러스터롤의 역할 및 대상 정보를 확인
    표. 클러스터롤바인딩 상세 정보 항목

클러스터롤바인딩 삭제하기

클러스터롤바인딩을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
  3. 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 클러스터롤바인딩 목록 페이지에서 삭제하려는 항목을 선택하세요. 클러스터롤바인딩 상세 페이지로 이동합니다.
  5. 클러스터롤바인딩 상세 페이지에서 클러스터롤바인딩 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
클러스터롤바인딩 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 클러스터롤바인딩을 삭제할 수 있습니다.

롤 관리하기

롤은 특정 API 또는 리소스에 대한 권한을 명시한 규칙을 말합니다. 해당 롤이 속한 네임스페이스에만 접근할 수 있는 권한을 생성하고 관리할 수 있습니다.

롤 생성하기

롤을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 을 클릭하세요. 롤 목록 페이지로 이동합니다.
  3. 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
롤에 대한 자세한 내용은 쿠버네티스 공식 문서 > Using RBAC Authorization을 참고하세요.

롤 상세 정보 확인하기

롤 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 을 클릭하세요. 롤 목록 페이지로 이동합니다.
  3. 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 롤 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 롤 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    롤 삭제롤을 삭제할
    상세 정보롤의 상세 정보를 확인
    YAML롤의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트롤 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보롤의 메타데이터 정보를 확인
    정책 규칙 정보롤의 정책 규칙 정보를 확인
    • 리소스: 규칙을 적용할 리소스 목록
    • 비-리소스 URLs: 비-리소스(NonResource)URLs는 사용자가 액세스해야 하는 부분 URL 집합
      • *는 허용되지만 경로의 전체 최종 단계로만 허용됨
      • 리소스가 아닌 URL은 네임스페이스화되지 않으므로 이 필드는 ClusterRoleBinding에서 참고되는 CluterRole에만 적용 가능함
      • 규칙은 API 리소스(예: “pods” 또는 “secrets”) 또는 비-리소스 URL 경로(예: “/api”)에 적용될 수 있지만 둘 다에는 적용할 수 없음
    • 리소스명: 리소스명은 규칙이 적용되는 이름의 선택적 화이트 리스트임, 빈 집합은 모든 것이 허용된다는 의미
    • 동사: 동사(verb)는 get, list, create, update, path, watch, delete, deletecollection과 같은 리소스 요청에 사용하는 API 동사를 의미
    표. 롤 상세 정보 항목

롤 삭제하기

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

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 을 클릭하세요. 롤 목록 페이지로 이동합니다.
  3. 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 롤 목록 페이지에서 삭제하려는 항목을 선택하세요. 롤 상세 페이지로 이동합니다.
  5. 롤 상세 페이지에서 롤 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
롤 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 롤을 삭제할 수 있습니다.

롤바인딩 관리하기

롤과 특정 대상을 연결해 롤바인딩을 생성하고 관리할 수 있습니다.

롤바인딩 생성하기

롤바인딩을 생성하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
  3. 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
  4. 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
참고
롤바인딩에 대한 자세한 내용은 쿠버네티스 공식 문서 > Using RBAC Authorization을 참고하세요.

롤바인딩 상세 정보 확인하기

롤바인딩 상세 정보를 확인하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
  3. 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 롤바인딩 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 롤바인딩 상세 페이지로 이동합니다.
    • 목록 상단의 시스템 객체 표시를 선택하면 Kubernetes 객체 항목을 제외한 나머지 항목이 표시됩니다.
  5. 각 탭을 클릭하여 서비스 정보를 확인하세요.
    구분
    상세 설명
    롤바인딩 삭제롤바인딩을 삭제
    상세 정보롤바인딩의 상세 정보를 확인
    YAML롤바인딩의 리소스 파일을 YAML 편집기에서 수정 가능
    • 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
    이벤트롤바인딩 내에서 발생한 이벤트를 확인
    Account 정보Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인
    메타데이터 정보롤바인딩의 메타데이터 정보를 확인
    롤/대상 정보롤의 역할 및 대상 정보를 확인
    표. 롤바인딩 상세 정보 항목

롤바인딩 삭제하기

롤바인딩을 삭제하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
  3. 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
  4. 롤바인딩 목록 페이지에서 삭제하려는 항목을 선택하세요. 롤바인딩 상세 페이지로 이동합니다.
  5. 롤바인딩 상세 페이지에서 롤바인딩 삭제를 클릭하세요.
  6. 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
주의
롤바인딩 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 롤바인딩을 삭제할 수 있습니다.

3 - Kubernetes Engine 활용

Kubernetes Engine 활용을 위한 가이드를 제공합니다.

Kubernetes Engine 활용 제공 가이드

Kubernetes Engine 활용에서는 아래의 기능을 설명하고 있습니다. 자세한 내용은 해당 가이드를 참고하세요.

제공 가이드설명
클러스터 접근하기kubectl 설치 및 사용 방법, kubeconfig 다운로드, kubectl 플러그인을 이용한 로그인 방법 안내
인증 및 인가인증 및 인가 기능과 Kubernetes Engine과 IAM의 연계 방법에 대해 설명
type LoadBalancer 서비스 구성하기Service 매니페스트 파일을 통해 LoadBalancer 형식(type)의 Service를 구성 방법 안내
사용 시 고려사항SKE 사용 시 제약사항 설명
버전 정보Kubernetes 버전 및 지원 기간 설명
표. Kubernetes Engine 활용 가이드 설명

3.1 - 클러스터 접근하기

kubectl 설치 및 사용 방법

Kubernetes Engine 서비스를 생성한 후 쿠버네티스 커맨드 라인 도구인 kubectl을 사용하면 쿠버네티스 클러스터에 대해 명령을 실행할 수 있습니다. kubectl을 사용하여 애플리케이션을 배포하고, 클러스터 리소스를 검사 및 관리하고 로그를 볼 수 있습니다. 다음과 같은 쿠버네티스 공식 문서에서 kubectl을 설치하여 사용하는 방법을 확인할 수 있습니다.

참고

클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 합니다. 예를 들어, 클러스터의 버전이 1.30이라면 kubectl 버전 1.29, 1.30, 1.31을 사용할 수 있습니다.

kubectl로 쿠버네티스 클러스터에 접근하려면, 쿠버네티스 서버 주소와 인증 정보를 담은 kubeconfig 파일이 필요합니다.

참고
쿠버네티스 인증 및 인가에 대한 상세한 내용은 인증 및 인가를 참고하세요.

Kubernetes Engine은 관리자 인증서 kubeconfig사용자 인증키 kubeconfig를 통한 인증 기능을 지원합니다.

관리자 인증서 kubeconfig

이 kubeconfig는 Kubernetes API에 접근할 때, 관리자 인증서를 인증 수단으로 사용합니다.

관리자 kubeconfig 다운로드

Kubernetes Engine > 클러스터 목록 > 클러스터 상세 > 관리자 kubeconfig 다운로드 버튼을 클릭하여 kubeconfig 파일을 다운로드합니다.

주의
  • 관리자 kubeconfig 다운로드는 Admin만 가능합니다.
  • 프라이빗 엔드포인트용과 퍼플릭 엔드포인트용이 따로 있으며 각각 최초 1회만 다운로드할 수 있습니다.

관리자 kubeconfig 사용

참고
  • 기본적으로 kubectl은 $HOME/.kube 디렉터리에서 config라는 이름의 파일을 찾습니다. 또는 KUBECONFIG 환경 변수를 설정하거나 kubeconfig 플래그를 지정하여 다른 kubeconfig 파일을 사용할 수 있습니다.
  • 프라이빗 엔드포인트는 기본적으로 해당 클러스터의 노드에서만 접근이 허용됩니다. 동일 Account, 동일 리전에 있는 리소스의 경우, 프라이빗 엔드포인트 접근 제어 설정에 추가하여 접근을 허용할 수 있습니다.
  • 외부 인터넷에서 클러스터에 접근이 필요한 경우, 퍼블릭 엔드포인트 액세스를 사용으로 설정하면 퍼블릭 엔드포인트 kubeconfig를 사용하여 접근할 수 있습니다.

사용자 인증키 kubeconfig

이 kubeconfig는 Kubernetes API에 접근할 때, 사용자의 Open API 인증키를 인증 수단으로 사용합니다.

사용자 kubeconfig 다운로드

Kubernetes Engine > 클러스터 목록 > 클러스터 상세 > 사용자 kubeconfig 다운로드 버튼을 클릭하여 kubeconfig 파일을 다운로드합니다.

주의
  • 사용자 kubeconfig 다운로드는 클러스터 조회 권한이 있는 사용자만 가능합니다.
  • 프라이빗 엔드포인트용과 퍼플릭 엔드포인트용이 따로 있습니다.
  • 다운로드한 kubeconfig 파일에는 인증키 토큰이 포함되어 있지 않으므로, 사용하기 전에 인증키 토큰 정보를 추가해야 합니다. (다음 문단 참고)

사용자 kubeconfig 파일에 인증키 토큰 추가

아래는 사용자 kubeconfig 파일의 예시입니다. kubeconfig 파일을 사용하기 위해서는 파일 내부의 token 란에 인증키 토큰(AUTHKEY_TOKEN) 정보를 추가해야 합니다.

배경색 변경
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t...
    server: https://my-cluster-a1c3e.ske.xxx.samsungsdscloud.com:6443
  name: my-cluster-a1c3e
contexts:
- context:
    cluster: my-cluster-a1c3e
    user: jane.doe
  name: jane.doe@my-cluster-a1c3e
current-context: jane.doe@my-cluster-a1c3e
kind: Config
preferences: {}
users:
- name: jane.doe
  user:
    token: <AUTHKEY_TOKEN> #### 작성 필요
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t...
    server: https://my-cluster-a1c3e.ske.xxx.samsungsdscloud.com:6443
  name: my-cluster-a1c3e
contexts:
- context:
    cluster: my-cluster-a1c3e
    user: jane.doe
  name: jane.doe@my-cluster-a1c3e
current-context: jane.doe@my-cluster-a1c3e
kind: Config
preferences: {}
users:
- name: jane.doe
  user:
    token: <AUTHKEY_TOKEN> #### 작성 필요
코드 블럭. 사용자 kubeconfig 파일 예시

AUTHKEY_TOKEN은 인증키의 ACCESS_KEY와 SECRET_KEY를 콜론(:)으로 연결한 후, Base64 인코딩하여 생성할 수 있습니다. 다음은 리눅스 환경에서 AUTHKEY_TOKEN을 만드는 예시입니다.

배경색 변경
$ ACCESS_KEY=5df418813aed051548a72f4a814cf09e
$ SECRET_KEY=6ba7b810-9dad-11d1-80b4-00c04fd430c8
$ AUTHKEY_TOKEN=$(echo -n "$ACCESS_KEY:$SECRET_KEY" | base64 -w0)
$ echo $AUTHKEY_TOKEN
NWRmNDE4ODEzYWVkMDUxNTQ4YTcyZjRhODE0Y2YwOWU6NmJhN2I4MTAtOWRhZC0xMWQxLTgwYjQtMDBjMDRmZDQzMGM4r
$ ACCESS_KEY=5df418813aed051548a72f4a814cf09e
$ SECRET_KEY=6ba7b810-9dad-11d1-80b4-00c04fd430c8
$ AUTHKEY_TOKEN=$(echo -n "$ACCESS_KEY:$SECRET_KEY" | base64 -w0)
$ echo $AUTHKEY_TOKEN
NWRmNDE4ODEzYWVkMDUxNTQ4YTcyZjRhODE0Y2YwOWU6NmJhN2I4MTAtOWRhZC0xMWQxLTgwYjQtMDBjMDRmZDQzMGM4r
코드 블럭. AUTHKEY_TOKEN 값 생성 예시
참고
  • 인증키 생성에 관한 자세한 내용은 API Reference > Common > 삼성 클라우드 플랫폼 Open API 호출 절차를 참고하세요.

사용자 kubeconfig 실행 예시

사용자 kubeconfig의 실행 예시를 확인할 수 있습니다.

접근 제어나 방화벽에 의해 접근이 차단된 경우

배경색 변경
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
Unable to connect to the server: dial tcp 123.123.123.123:6443: i/o timeout
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
Unable to connect to the server: dial tcp 123.123.123.123:6443: i/o timeout
코드 블럭. 접근 제어나 방화벽에 의해 접근이 차단된 경우 실행 예시

AUTHKEY_TOKEN이 맞지 않아 인증에 실패한 경우

배경색 변경
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
error: You must be logged in to the server (Unauthorized)
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
error: You must be logged in to the server (Unauthorized)
코드 블럭. AUTHKEY_TOKEN이 맞지 않아 인증에 실패한 경우 실행 예시

AUTHKEY_TOKEN 인증에 성공한 경우

배경색 변경
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
...
kube-node-lease    Active 10d
kube-public        Active 10d
kube-system        Active 10d
$ kubectl --kubeconfig=user-kubeconfig.yaml get namespaces
...
kube-node-lease    Active 10d
kube-public        Active 10d
kube-system        Active 10d
코드 블럭. AUTHKEY_TOKEN 인증에 성공한 경우 실행 예시

AUTHKEY_TOKEN 인증에 성공했으나 권한이 없는 경우

배경색 변경
$ kubectl --kubeconfig=user-kubeconfig.yaml get nodes
Error from server (Forbidden): nodes is forbidden: User "jane.doe" cannot list resource "nodes" in API group "" at the cluster scope
$ kubectl --kubeconfig=user-kubeconfig.yaml get nodes
Error from server (Forbidden): nodes is forbidden: User "jane.doe" cannot list resource "nodes" in API group "" at the cluster scope
코드 블럭. AUTHKEY_TOKEN 인증에 성공했으나 권한이 없는 경우 실행 예시
참고
AUTHKEY_TOKEN 인증에 성공했으나 권한이 없는 경우, 인증 과정은 올바르게 완료되었지만 요청한 작업을 수행할 수 있는 권한이 부여(인가)되지 않았음을 의미합니다. 인가에 대한 상세한 내용은 인증 및 인가를 참고하세요.

3.2 - 인증 및 인가

Kubernetes Engine에는 쿠버네티스의 인증 및 RBAC 인가 기능이 적용되어 있습니다. 쿠버네티스의 인증 및 인가 기능과 Kubernetes Engine과 IAM의 연계 방법에 대해 설명합니다.

쿠버네티스 인증 및 인가

쿠버네티스의 인증 및 RBAC 인가 기능을 설명합니다.

인증

쿠버네티스 API 서버는 인증서나 인증 토큰으로부터 사용자(User)나 서비스어카운트(ServiceAccount)의 인증에 필요한 정보를 취득하여 인증 절차를 진행합니다.

참고
쿠버네티스 인증에 관한 자세한 설명은 다음 문서를 참고하세요. https://kubernetes.io/docs/reference/access-authn-authz/authentication/
참고
kubectl과 kubeconfig 사용에 관한 자세한 설명은 클러스터 접근하기를 참고하세요.

인가

쿠버네티스 API 서버는 인증 과정을 통해 얻은 사용자 정보를 이용하여 RBAC 관련 오브젝트로부터 해당 사용자가 요청한 작업에 대한 권한이 있는지를 확인합니다. RBAC 관련 오브젝트는 다음과 같이 4가지 종류가 있습니다.

오브젝트범위설명
클러스터롤(ClusteRole)클러스터 범위(cluster-wide)클러스터의 모든 네임스페이스에 걸친 권한 정의
클러스터롤바인딩(ClusteRoleBinding)클러스터 범위(cluster-wide)클러스터롤과 사용자와의 연결 정의
롤(Role)네임스페이스(namespace)특정 네임스페이스에 대한 권한 정의
롤바인딩(RoleBinding)네임스페이스(namespace)클러스터롤 또는 롤과 사용자와의 연결 정의
표. RBAC 관련 오브젝트
참고
쿠버네티스 RBAC 인가에 관한 자세한 설명은 다음 문서를 참고하세요. https://kubernetes.io/docs/reference/access-authn-authz/rbac/

쿠버네티스에는 여러 클러스터롤이 기본 정의되어 있습니다. 그중 일부 클러스터롤에는 접두어(system:)가 포함되어 있지 않습니다. 이는 사용자용으로 사용할 것을 염두에 둔 클러스터롤입니다. 여기에는 클러스터롤바인딩을 사용하여 클러스터 전체에 적용할 슈퍼유저 롤(cluster-admin)과 롤바인딩을 사용하여 특정 네임스페이스에 적용할 롤(admin, edit, view)이 포함됩니다.

기본 클러스터롤기본 클러스터롤바인딩설명
cluster-adminsystem:masters 그룹모든 리소스에 대한 모든 작업을 수행할 수 있는 슈퍼유저 액세스를 허용합니다.
  • 클러스터롤바인딩에서 사용하면 클러스터와 모든 네임스페이스의 모든 리소스에 대한 전체 제어 권한이 적용됩니다.
  • 롤바인딩에서 사용하면 네임스페이스와 롤바인딩된 네임스페이스 내 모든 리소스를 완전히 제어할 수 있습니다.
admin없음롤바인딩을 사용하여 네임스페이스 내부에 적용되는 관리자 액세스를 허용합니다. 롤바인딩에서 사용하는 경우 네임스페이스 내에 롤 및 롤바인딩을 생성하는 기능을 포함하여 네임스페이스 내 대부분의 리소스에 대한 읽기/쓰기 액세스를 허용합니다. 이 롤은 리소스 할당량 또는 네임스페이스 자체에 대한 쓰기 액세스는 허용하지 않습니다.
edit없음네임스페이스 내 대부분의 오브젝트에 대한 읽기/쓰기 액세스를 허용합니다.
  • 이 롤은 롤과 롤바인딩의 조회 및 변경을 허용하지 않습니다. 하지만 이 롤은 시크릿에 접근하여 네임스페이스 내 모든 Account로 파드를 실행할 수 있기 때문에, 네임스페이스 내 모든 Account의 API 액세스 수준을 취득할 수 있습니다.
view없음네임스페이스 내 대부분의 오브젝트를 조회하기 위한 읽기 전용 액세스를 허용합니다. 롤 또는 롤바인딩은 조회할 수 없습니다.
  • 이 롤은 시크릿 조회가 허용되지 않습니다. 시크릿의 내용을 읽으면 네임스페이스 내 Account의 크리덴셜에 접근할 수 있고, 이를 통해 네임스페이스 내 임의의 Account로서 API 접근을 허용하는 결과가 되기 때문입니다(권한 상승의 일종).
표. 기본 클러스터롤과 클러스터롤바인딩 설명
참고
사용자용 롤에 관한 자세한 설명은 다음 문서를 참고하세요. https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles

필요에 따라 기본 정의된 클러스터롤 이외에, 다음과 같이 별도의 롤(또는 클러스터롤)을 정의할 수도 있습니다.

배경색 변경
# "default" 네임스페이스 내 파드를 조회할 권한을 부여하는 롤
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
# "default" 네임스페이스 내 파드를 조회할 권한을 부여하는 롤
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
코드 블럭. 네임스페이스 내 파드를 조회할 권한을 부여하는 롤
배경색 변경
# 노드를 조회할 권한을 부여하는 클러스터롤
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: node-reader
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch"]
# 노드를 조회할 권한을 부여하는 클러스터롤
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: node-reader
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch"]
코드 블럭. 노드를 조회할 권한을 부여하는 클러스터롤
참고
롤 및 클러스터롤에 관한 자세한 설명은 다음 문서를 참고하세요. https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole

롤바인딩

Samsung Cloud Platform IAM을 사용하여 Kubernetes Engine에 대한 액세스를 관리하려면, 쿠버네티스의 롤바인딩과 IAM의 관계를 이해해야 합니다. 롤바인딩(또는 클러스터롤바인딩)의 대상(subjects)에는 개별 사용자(User) 또는 그룹(Group)이 포함될 수 있습니다.

  • User는 Samsung Cloud Platform 사용자명으로, Group은 IAM 사용자 그룹명으로 각각 매칭됩니다.

롤바인딩/클러스터롤바인딩의 subjects.kind로는 다음 중 하나를 지정할 수 있습니다.

  • User: Samsung Cloud Platform 개별 사용자와 연결됩니다.
  • Group: Samsung Cloud Platform IAM 사용자 그룹과 연결됩니다.
참고
이 외에 서비스 어카운트도 지정할 수 있으나, 서비스 어카운트는 일반적으로 사용자용이 아니며 Samsung Cloud Platform 사용자와 연결할 수 없습니다.

롤바인딩/클러스터롤바인딩의 subjects.name은 다음과 같이 지정할 수 있습니다.

  • User인 경우: Samsung Cloud Platform 개별 사용자명 (예: jane.doe)
  • Group인 경우: Samsung Cloud Platform IAM 사용자 그룹명 (예: ReadPodsGroup)
참고
subjects.name은 영문 대소문자를 구별합니다.

이러한 방식으로 IAM 사용자 그룹은 Kubernetes Engine 클러스터의 롤바인딩(또는 클러스터롤바인딩)에 작성된 그룹과 연결됩니다. 또한 그룹과 연결된 (또는 클러스터롤)에 포함된 API 작업을 수행할 수 있는 권한이 부여됩니다.

예시) 롤바인딩 read-pods #1

롤바인딩에 User(Samsung Cloud Platform 개별 사용자)를 작성한 예시는 다음과 같습니다.

배경색 변경
# 이 롤바인딩은 "jane.doe" 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
roleRef:
  # "roleRef"에는 롤 또는 클러스터롤과의 연결을 지정합니다.
  kind: Role       # Role 또는 ClusterRole이어야 합니다.
  name: pod-reader # 연결하고자 하는 롤 또는 클러스터롤의 이름과 일치해야 합니다.
  apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: User
  name: jane.doe
  apiGroup: rbac.authorization.k8s.io
# 이 롤바인딩은 "jane.doe" 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
roleRef:
  # "roleRef"에는 롤 또는 클러스터롤과의 연결을 지정합니다.
  kind: Role       # Role 또는 ClusterRole이어야 합니다.
  name: pod-reader # 연결하고자 하는 롤 또는 클러스터롤의 이름과 일치해야 합니다.
  apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: User
  name: jane.doe
  apiGroup: rbac.authorization.k8s.io
코드 블럭. 롤바인딩에 User(Samsung Cloud Platform 개별 사용자) 작성 예시

클러스터에 위와 같은 롤바인딩이 생성되면, 사용자명이 jane.doe인 사용자에게 롤 pod-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.

예시) 롤바인딩 read-pods #2

롤바인딩에 그룹(IAM 사용자 그룹)을 작성한 예시는 다음과 같습니다.

배경색 변경
# 이 롤바인딩은 "ReadPodsGroup" 그룹에 속한 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: Group
  name: ReadPodsGroup
  apiGroup: rbac.authorization.k8s.io
# 이 롤바인딩은 "ReadPodsGroup" 그룹에 속한 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: default
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: Group
  name: ReadPodsGroup
  apiGroup: rbac.authorization.k8s.io
코드 블럭. ReadPodsGroup 그룹에 파드 조회를 허용하는 롤바인딩 예시

클러스터에 위와 같은 롤바인딩이 생성되면, IAM 사용자 그룹 ReadPodsGroup에 속한 사용자들에게 롤 pod-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.

예시) 클러스터롤바인딩 read-nodes

배경색 변경
# 이 클러스터롤바인딩은"ReadNodesGroup" 그룹에 속한 사용자가 노드를 조회하도록 허용합니다.
# "node-reader"라는 클러스터롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-nodes
roleRef:
  kind: ClusterRole
  name: node-reader
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  name: ReadNodesGroup
  apiGroup: rbac.authorization.k8s.io
# 이 클러스터롤바인딩은"ReadNodesGroup" 그룹에 속한 사용자가 노드를 조회하도록 허용합니다.
# "node-reader"라는 클러스터롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-nodes
roleRef:
  kind: ClusterRole
  name: node-reader
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  name: ReadNodesGroup
  apiGroup: rbac.authorization.k8s.io
코드 블럭. ReadNodesGroup 그룹에 노드 조회를 허용하는 클러스터롤바인딩 예시

클러스터에 위와 같은 클러스터롤바인딩이 생성되면, IAM 사용자 그룹 ReadNodesGroup에 속한 사용자들에게 클러스터롤 node-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.

참고
롤바인딩 작성에 관한 자세한 설명은 다음 문서를 참고하세요. https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-binding-examples

Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩

Samsung Cloud Platform의 Kubernetes Engine에는 다음과 같이 클러스터롤바인딩 scp-cluster-admin, scp-view, scp-namespace-view와 클러스터롤 scp-namespace-view가 사전정의되어 있습니다. 아래 표는 Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩, Samsung Cloud Platform 사용자의 연결 관계를 나타낸 것입니다. 여기서, 클러스터롤 cluster-adminview는 쿠버네티스 클러스터 내부에 사전 정의되어 있습니다. 자세한 설명은 을 참고하세요.

클러스터롤바인딩클러스터롤subjects (사용자)
scp-cluster-admincluster-admin클러스터 생성자 사용자명 (예: jane.doe)
scp-viewview-
scp-namespace-viewscp-namespace-view해당 클러스터에 인증된 모든 사용자
표. Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩, 사용자의 연결 관계
  • 클러스터롤바인딩 scp-cluster-admin에 따라 Kubernetes Engine 서비스 생성자에게는 클러스터 관리자 권한이 부여됩니다.
  • 클러스터롤바인딩 scp-view에 등록된 사용자 또는 그룹에는 클러스터 조회자 권한이 부여됩니다. 쿠버네티스에 사전 정의된 클러스터롤 view와 바인딩되며, 클러스터 범위 리소스(예: 네임스페이스, 노드, 인그레스클래스 등)와 네임스페이스 내 시크릿에 대한 접근 권한은 없습니다. 자세한 사항은 을 참고하세요.
  • 클러스터롤바인딩 scp-namespace-view에 따라 해당 클러스터에 인증된 모든 사용자에게 네임스페이스 조회 권한이 부여됩니다.
참고
  • Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩은 클러스터 서비스 생성 시에 최초 한번 생성합니다.
  • 사용자는 필요에 따라 Samsung Cloud Platform용 사전 정의된 클러스터 롤바인딩 및 클러스터롤을 수정하거나 삭제할 수 있습니다.

Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩의 세부 내용은 다음과 같습니다.

클러스터롤바인딩 scp-cluster-admin

클러스터롤바인딩 scp-cluster-admin은 클러스터롤 cluster-admin과 연결되며, 대상(subjects) 항목에 따라 Samsung Cloud Platform 사용자(Kubernetes Engine 클러스터 생성자)와 바인딩됩니다.

배경색 변경
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
  name: scp-cluster-admin
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User               
  name: jane.doe # 클러스터 생성자 사용자명
  apiGroup: rbac.authorization.k8s.io
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
  name: scp-cluster-admin
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User               
  name: jane.doe # 클러스터 생성자 사용자명
  apiGroup: rbac.authorization.k8s.io
코드 블럭. 클러스터롤바인딩 scp-cluster-admin 예시

클러스터롤바인딩 scp-view

클러스터롤바인딩 scp-view는 클러스터롤 view와 바인딩되며, 대상(subjects) 항목에 Samsung Cloud Platform 사용자 또는 IAM 사용자 그룹을 추가할 수 있습니다.

배경색 변경
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: scp-view
roleRef:
  kind: ClusterRole
  name: view
  apiGroup: rbac.authorization.k8s.io
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: scp-view
roleRef:
  kind: ClusterRole
  name: view
  apiGroup: rbac.authorization.k8s.io
코드 블럭. 클러스터롤바인딩 scp-view 예시

클러스터롤 및 클러스터롤바인딩 scp-namespace-view

클러스터롤 scp-namespace-view는 네임스페이스에 대한 조회 권한을 정의한 롤입니다. 클러스터롤바인딩 scp-namespace-view는 클러스터롤 scp-namespace-view과 바인딩되며, 해당 클러스터에 인증된 모든 사용자에게 네임스페이스 조회 권한을 부여합니다.

배경색 변경
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: scp-namespace-view
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: scp-namespace-view
roleRef:
  kind: ClusterRole
  name: scp-namespace-view
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  name: system:authenticated
  apiGroup: rbac.authorization.k8s.io
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: scp-namespace-view
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: scp-namespace-view
roleRef:
  kind: ClusterRole
  name: scp-namespace-view
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  name: system:authenticated
  apiGroup: rbac.authorization.k8s.io
코드 블럭. 클러스터롤 및 클러스터롤바인딩 scp-namespace-view 예시

IAM 사용자 그룹 RBAC 유스케이스

이 챕터에서는 주요 사용자 시나리오별로 권한을 부여하는 예시를 설명합니다. 여기에 제시된 IAM 사용자 그룹, 클러스터롤바인딩/롤바인딩, 클러스터롤의 이름은 이해를 돕기 위한 하나의 예시입니다. 관리자는 필요에 맞게 적절한 이름과 권한을 정의하여 적용하세요.

범위유스케이스IAM 사용자 그룹클러스터롤바인딩/롤바인딩클러스터롤비고
클러스터클러스터 관리자ClusterAdminGroup클러스터롤바인딩 cluster-admin-groupcluster-admin특정 클러스터에 대한 관리자
클러스터클러스터 편집자ClusterEditGroup클러스터롤바인딩 cluster-edit-groupedit특정 클러스터에 대한 편집자
클러스터클러스터 조회자ClusterViewGroup클러스터롤바인딩 cluster-view-groupview특정 클러스터에 대한 조회자
네임스페이스네임스페이스 관리자NamespaceAdminGroup롤바인딩 namespace-admin-groupadmin특정 네임스페이스에 대한 관리자
네임스페이스네임스페이스 편집자NamespaceEditGroup롤바인딩 namespace-edit-groupedit특정 네임스페이스에 대한 편집자
네임스페이스네임스페이스 조회자NamespaceViewGroup롤바인딩 namespace-view-groupview특정 네임스페이스에 대한 조회자
표. 유스케이스에 따른 IAM 사용자 그룹, 클러스터롤 사용자의 바인딩 예시
참고
위 표에 있는 클러스터롤(cluster-admin, admin, edit, view)은 쿠버네티스 클러스터 내부에 사전 정의되어 있습니다. 자세한 설명은 항목을 참고하세요.

클러스터 관리자

클러스터 관리자를 생성하려면 다음 절차를 따르세요.

  1. ClusterAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-admin-group
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterAdminGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-admin-group
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterAdminGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 클러스터 관리자 생성
  • 기본 클러스터롤 cluster-admin과 연계되어, 해당 클러스터에 대한 관리자 권한이 부여됩니다.

클러스터 편집자

클러스터 편집자를 생성하려면 다음 절차를 따르세요.

  1. ClusterEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-edit-group
    roleRef:
      kind: ClusterRole
      name: edit
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterEditGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-edit-group
    roleRef:
      kind: ClusterRole
      name: edit
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterEditGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 클러스터 편집자 생성
  • 기본 클러스터롤 edit와 연계되어, 해당 클러스터에 대한 편집자 권한이 부여됩니다.

클러스터 조회자

클러스터 조회자를 생성하려면 다음 절차를 따르세요.

  1. ClusterViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-view-group
    roleRef:
      kind: ClusterRole
      name: view
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterViewGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-view-group
    roleRef:
      kind: ClusterRole
      name: view
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: ClusterViewGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 클러스터 조회자 생성
  • 기본 클러스터롤 view와 연계되어, 해당 클러스터에 대한 조회자 권한이 부여됩니다.

네임스페이스 관리자

네임스페이스 관리자를 생성하려면 다음 절차를 따르세요.

  1. NamespaceAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-admin-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceAdminGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-admin-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceAdminGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 네임스페이스 관리자 생성
  • 기본 클러스터롤 admin과 연계되어, 해당 네임스페이스에 대한 관리자 권한이 부여됩니다.

네임스페이스 편집자

네임스페이스 편집자를 생성하려면 다음 절차를 따르세요.

  1. NamespaceEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-edit-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: edit
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceEditGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-edit-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: edit
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceEditGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 네임스페이스 편집자 생성
  • 기본 클러스터롤 edit와 연계되어, 해당 네임스페이스에 대한 편집자 권한이 부여됩니다.

네임스페이스 조회자

네임스페이스 조회자를 생성하려면 다음 절차를 따르세요.

  1. NamespaceViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
  2. 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.
    배경색 변경
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-view-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: view
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceViewGroup
      apiGroup: rbac.authorization.k8s.io
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: namespace-view-group
      namespace: <네임스페이스_이름>
    roleRef:
      kind: ClusterRole
      name: view
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: Group
      name: NamespaceViewGroup
      apiGroup: rbac.authorization.k8s.io
    코드 블럭. 네임스페이스 조회자 생성
  • 기본 클러스터롤 view와 연계되어, 해당 네임스페이스에 대한 조회자 권한이 부여됩니다.

3.3 - type LoadBalancer 서비스 사용하기

서비스 구성 방법

Service 매니페스트 파일(예시: my-lb-svc.yaml )을 작성하여 적용하면 LoadBalancer 형식(type)의 Service를 구성할 수 있습니다.

주의
  • LoadBalancer는 기본적으로 클러스터 Subnet에 생성됩니다.
  • 다른 Subnet에 LoadBalancer를 생성하려면 어노테이션 service.beta.kubernetes.io/scp-load-balancer-subnet-id를 사용하세요. 자세한 내용은 어노테이션 상세 설정 참고

type LoadBalancer Service를 작성해 적용하려면 다음 절차를 따르세요.

  1. Service 매니페스트 파일 my-lb-svc.yaml 을 작성합니다.

    배경색 변경
    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app.kubernetes.io/name: MyApp
      ports:
        - protocol: TCP
          port: 80
          targetPort: 9376
          appProtocol: tcp # LB 서비스 프로토콜 유형 설정 문단 참고
      type: LoadBalancer
    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app.kubernetes.io/name: MyApp
      ports:
        - protocol: TCP
          port: 80
          targetPort: 9376
          appProtocol: tcp # LB 서비스 프로토콜 유형 설정 문단 참고
      type: LoadBalancer
    코드 블럭. Service 매니페스트 파일 my-lb-svc.yaml 작성 예시

  2. kubectl apply 명령어를 사용해 Service 매니페스트를 배포합니다.

    배경색 변경
    kubectl apply -f my-lb-svc.yaml
    kubectl apply -f my-lb-svc.yaml
    코드 블럭. kubectl apply 명령어로 Service 매니페스트 배포

주의
  • type LoadBalancer Service가 생성되면, 그에 대응되는 Load Balancer 서비스가 자동으로 생성됩니다. 구성이 완료될 때까지 몇 분 가량 소요될 수 있습니다.
  • 자동으로 생성된 Load Balancer 서비스 및 LB 서버그룹을 임의로 변경하지 마세요. 변경 사항이 원복되거나 예기치 않은 동작이 발생할 수 있습니다.
  • 설정 가능한 상세 기능에 대해서는 어노테이션 상세 설정을 참고하세요.
  1. kubectl get service 명령어를 사용하여 Load Balancer 구성을 확인합니다.
    배경색 변경
    # kubectl get service my-lb-svc
    NAMESPACE     NAME         TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)         AGE
    default       my-lb-svc    LoadBalancer   172.20.49.206    123.123.123.123   80:32068/TCP    3m
    # kubectl get service my-lb-svc
    NAMESPACE     NAME         TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)         AGE
    default       my-lb-svc    LoadBalancer   172.20.49.206    123.123.123.123   80:32068/TCP    3m
    코드 블럭. kubectl get service 명령어로 Load Balancer 구성 확인

프로토콜 유형

Service 매니페스트를 작성하여 사용할 수 있습니다. 다음은 간단한 예시입니다.

배경색 변경
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    ...
  ports:
    - port: 80
      targetPort: 9376
      protocol: TCP    # 필수 (TCP, UDP 중 택일)
      appProtocol: tcp # 선택 (입력하지 않거나 tcp, http, https 중 택일)
  type: LoadBalancer   # 타입 로드밸런서
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    ...
  ports:
    - port: 80
      targetPort: 9376
      protocol: TCP    # 필수 (TCP, UDP 중 택일)
      appProtocol: tcp # 선택 (입력하지 않거나 tcp, http, https 중 택일)
  type: LoadBalancer   # 타입 로드밸런서
코드 블럭. Service 매니페스트 작성 예시

Kubernetes Engine의 type Load Balancer Service에서 지원하는 프로토콜(protocol과 appProtocol) 목록과 그에 따라 Load Balancer 서비스에 적용되는 설정은 다음과 같습니다.

구분(k8s)
protocol
(k8s)
appProtocol
(LB)
서비스 구분
(LB)
LB Listener
(LB)
LB 서버그룹
(LB)
헬스체크
L4 TCPTCP(tcp)L4TCP {port}TCP {nodePort}TCP {nodePort}
L4 UDPUDP-L4UDP {port}UDP {nodePort}TCP {nodePort}
L7 HTTPTCPhttpL7HTTP {port}TCP {nodePort}TCP/HTTP {nodePort}
L7 HTTPSTCPhttpsL7HTTPS {port}TCP {nodePort}TCP/HTTP {nodePort}
표. k8s Service 매니페스트와 Load Balancer 서비스 적용 설정
  • k8s Service 매니페스트 스펙에 따라 하나의 서비스에 여러 포트를 지정할 수 있습니다.
주의

Load Balancer 서비스 구분(L4, L7)에 따라 하나의 Service 내에서 protocol의 Layer를 혼용해 사용할 수 없습니다.

  • 즉 L4(TCP, UDP)와 L7(HTTP, HTTPS)은 하나의 Service에서 함께 사용할 수 없습니다.

L4 Service 매니페스트 작성 예시

배경색 변경
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
  type: LoadBalancer
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
  type: LoadBalancer
코드 블럭. L4 Service 매니페스트 작성 예시

L7 Service 매니페스트 작성 예시

배경색 변경
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/scp-load-balancer-layer-type: "L7" # 필수
    service.beta.kubernetes.io/scp-load-balancer-client-cert-id: "24da35de187b450eb0cf09fb6fa146de" # 필수
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - appProtocol: http # 필수
      protocol: TCP
      port: 80
      targetPort: 9376
    - appProtocol: https # 필수
      protocol: TCP
      port: 443
      targetPort: 9898
  type: LoadBalancer
  
apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/scp-load-balancer-layer-type: "L7" # 필수
    service.beta.kubernetes.io/scp-load-balancer-client-cert-id: "24da35de187b450eb0cf09fb6fa146de" # 필수
  name: my-service
spec:
  selector:
    app.kubernetes.io/name: MyApp
  ports:
    - appProtocol: http # 필수
      protocol: TCP
      port: 80
      targetPort: 9376
    - appProtocol: https # 필수
      protocol: TCP
      port: 443
      targetPort: 9898
  type: LoadBalancer
  
코드 블럭. L7 Service 매니페스트 작성 예시

어노테이션 상세 설정

서비스 매니페스트에 어노테이션을 추가해 상세 기능을 설정할 수 있습니다.

배경색 변경
apiVersion: v1
kind: Service
metatdata:
  name: my-lb-svc
  annotations:
    service.beta.kubernetes.io/scp-load-balancer-public-ip-enabled: "true"
    service.beta.kubernetes.io/scp-load-balancer-health-check-interval: "5"
    service.beta.kubernetes.io/scp-load-balancer-health-check-timeout: "5"
    service.beta.kubernetes.io/scp-load-balancer-health-check-count: "3"
    service.beta.kubernetes.io/scp-load-balancer-session-duration-time: "300"
  spec:
  type: LoadBalancer
  ...
  
apiVersion: v1
kind: Service
metatdata:
  name: my-lb-svc
  annotations:
    service.beta.kubernetes.io/scp-load-balancer-public-ip-enabled: "true"
    service.beta.kubernetes.io/scp-load-balancer-health-check-interval: "5"
    service.beta.kubernetes.io/scp-load-balancer-health-check-timeout: "5"
    service.beta.kubernetes.io/scp-load-balancer-health-check-count: "3"
    service.beta.kubernetes.io/scp-load-balancer-session-duration-time: "300"
  spec:
  type: LoadBalancer
  ...
  
코드 블럭. 서비스 매니페스트에 어노테이션 추가 작성 예시

서비스에 별도의 어노테이션을 추가하지 않은 경우 적용되는 어노테이션 기본값과 허용값은 다음과 같습니다. 또한 각 어노테이션에 대한 주의 사항을 확인하세요.

어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-source-ranges-firewall-rulesAllfalsetrue, falsefalse방화벽 규칙( LB source ranges → LB 서비스 IP )을 자동으로 추가
service.beta.kubernetes.io/scp-load-balancer-snat-healthcheck-firewall-rulesAllfalsetrue,falsefalse방화벽 규칙( LB Source NAT IP, HealthCheck IP → 멤버 IP:Port )을 자동으로 추가
  • 이 어노테이션을 사용하면, type LB 서비스의 포트 수만큼 방화벽 규칙이 추가되므로, 방화벽 규칙이 매우 많아질 수 있습니다.
  • 방화벽 규칙이 너무 많은 것이 부담이 된다면, 대안으로 이 어노테이션을 사용하지 않고 수동으로 방화벽 규칙을 추가하여 사용할 수 있습니다. 예를 들어, 목적지를 멤버 IP의 NodePort 대역(30000-32767)으로 하는 방화벽 규칙을 추가하여 사용할 수 있습니다.
표. Kubernetes 어노테이션에서 Firewall 관련 설정
어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-security-group-idAll-UUID92d84b44-ee71-493d-9782-3a90481ce5f3지정한 ID에 해당하는 Security Group에 규칙을 자동으로 추가
  • 이 어노테이션을 사용하면, type LB 서비스의 포트 수만큼 Security Group에 규칙이 추가되므로, Security Group 규칙이 매우 많아질 수 있습니다.
  • Security Group 규칙이 너무 많은 것이 부담이 된다면, 대안으로 이 어노테이션을 사용하지 않고 수동으로 Security Group 규칙을 추가하여 사용할 수 있습니다. 예를 들어, 대상 주소를 Load Balancer의 Source NAT IP와 헬스 체크 IP로 지정하고, 허용 포트를 NodePort 대역(30000-32767)으로 하는 Security Group 규칙을 추가하여 사용할 수 있습니다.
  • 이 어노테이션에 의해 추가된 Security Group 규칙들은 이 어노테이션을 삭제 또는 변경하더라도 자동으로 삭제되지 않습니다.
  • 콤마로 구분하여 여러 개를 추가할 수 있습니다. (예시: ddc25ad8-6d3f-4242-8c86-2a059212ddc6,26ab7fe1-b3ea-4aa9-9e9d-35a7c237904e)
  • 이 어노테이션은 service.beta.kubernetes.io/scp-load-balancer-security-group-name 어노테이션과 동시에 사용 가능하며, 조건에 부합하는 모든 Security Group에 규칙이 자동 추가됩니다.
service.beta.kubernetes.io/scp-load-balancer-security-group-nameAll-문자열security-group-1지정한 Name에 해당하는 Security Group에 규칙을 자동으로 추가
  • 이 어노테이션을 사용하면, type LB 서비스의 포트 수만큼 Security Group에 규칙이 추가되므로, Security Group 규칙이 매우 많아질 수 있습니다.
  • Security Group 규칙이 너무 많은 것이 부담이 된다면, 대안으로 이 어노테이션을 사용하지 않고 수동으로 Security Group 규칙을 추가하여 사용할 수 있습니다. 예를 들어, 대상 주소를 Load Balancer의 Source NAT IP와 헬스 체크 IP로 지정하고, 허용 포트를 NodePort 대역(30000-32767)으로 하는 Security Group 규칙을 추가하여 사용할 수 있습니다.
  • 이 어노테이션에 의해 추가된 Security Group 규칙들은 이 어노테이션을 삭제 또는 변경하더라도 자동으로 삭제되지 않습니다.
  • 콤마로 구분하여 여러 개 추가 가능 (예시: security-group-1,security-group-2)
  • 이 어노테이션은 service.beta.kubernetes.io/scp-load-balancer-security-group-id 어노테이션과 동시에 사용 가능하며, 조건에 부합하는 모든 Security Group에 규칙이 자동으로 추가됩니다.
표. Kubernetes 어노테이션에서 Security Group 관련 설정
어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-layer-typeAllL4L4, L7L4Load Balancer의 서비스 구분을 지정
  • 이 어노테이션을 사용할 때 TCP 또는 UDP를 사용하려는 경우에는 L4, HTTP 또는 HTTPS를 사용하려는 경우에는 L7을 지정하세요.
  • 최초 생성 후 변경이 불가합니다. 변경하려면 서비스를 재생성해야 합니다.
service.beta.kubernetes.io/scp-load-balancer-subnet-idAll-ID7f05eda5e1cf4a45971227c57a6d60faLoad Balancer의 Service Subnet을 지정
  • 이 어노테이션을 지정하지 않은 경우, 클러스터의 Subnet을 사용합니다.
  • 최초 생성 후 변경이 불가합니다. 변경하려면 서비스를 재생성해야 합니다.
service.beta.kubernetes.io/scp-load-balancer-service-ipAll-IP 주소192.168.10.7Load Balancer의 Service IP를 지정
  • 최초 생성 후 변경이 불가합니다. 변경하려면 서비스를 재생성해야 합니다.
service.beta.kubernetes.io/scp-load-balancer-public-ip-enabledAllfalsetrue, falsefalseLoad Balancer의 Public NAT IP 사용 여부를 지정
  • 이 어노테이션을 true로 설정하고 service.beta.kubernetes.io/scp-load-balancer-public-ip-id를 지정하지 않은 경우, 자동으로 IP가 할당됩니다.
  • 이 어노테이션을 true로 설정하고 service.beta.kubernetes.io/scp-load-balancer-public-ip-id를 지정한 경우, 지정한 ID에 해당되는 Public IP가 적용됩니다.
service.beta.kubernetes.io/scp-load-balancer-public-ip-idAll-ID4119894bd9614cef83db6f8dda667a20Load Balancer의 Public NAT IP로 사용할 Public IP의 ID를 지정
  • service.beta.kubernetes.io/scp-load-balancer-public-ip-enabledtrue로 설정하지 않은 경우, 이 어노테이션은 무시됩니다.
  • service.beta.kubernetes.io/scp-load-balancer-public-ip-enabledtrue로 설정하고 이 어노테이션을 지정한 경우, 지정한 ID에 해당되는 Public IP가 적용됩니다.
표. Kubernetes 어노테이션에서 Load Balancer 관련 설정
어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-response-timeoutHTTP, HTTPS00 - 12060LB Listener의 응답 시간 초과(초)를 지정
  • 0은 응답 시간 초과 기능 비활성화를 의미합니다.
  • 1 - 120으로 지정한 후에는 0으로 변경 불가합니다. 변경하려면 서비스를 재생성해야 합니다.
service.beta.kubernetes.io/scp-load-balancer-session-duration-timeAll1200 - 120120LB Listener의 세션 유지 시간(초)을 지정
  • 0은 세션 유지 시간 기능 비활성화를 의미합니다.
  • 1 - 120으로 지정한 후에는 0으로 변경 불가합니다. 변경하려면 서비스를 재생성해야 합니다.
service.beta.kubernetes.io/scp-load-balancer-insert-client-ipTCPfalsetrue, falsefalseLB Listener의 Insert Client IP를 지정
service.beta.kubernetes.io/scp-load-balancer-x-forwarded-protoHTTP, HTTPSfalsetrue, falsefalseLB Listener의 X-Forwarded-Proto 헤더 사용 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-x-forwarded-portHTTP, HTTPSfalsetrue, falsefalseLB Listener의 X-Forwarded-Port 헤더 사용 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-x-forwarded-forHTTP, HTTPSfalsetrue, falsefalseLB Listener의 X-Forwarded-For 헤더 사용 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-support-http2HTTP, HTTPSfalsetrue, falsefalseLB Listener의 HTTP 2.0 지원 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-persistenceTCP, HTTP, HTTPS"""", source-ip, cookiesource-ipLB Listener의 지속성(선택 안함, 소스 IP, 쿠키 중 하나)을 지정
  • UDP의 경우, 이 어노테이션을 사용할 수 없습니다.
  • TCP의 경우, "" 또는 source-ip를 지정하여 사용할 수 있습니다.
  • HTTP/HTTPS의 경우, "", source-ip, cookie 중 하나를 지정하여 사용할 수 있습니다.
service.beta.kubernetes.io/scp-load-balancer-client-cert-idHTTPS-UUID78b9105e00324715b63700933125fa83LB Listener의 클라이언트 SSL 인증서의 ID를 지정
  • HTTPS 지정 시 필수 입력 항목입니다.
service.beta.kubernetes.io/scp-load-balancer-client-cert-levelHTTPSHIGHHIGH, NORMAL, LOWHIGHLB Listener의 클라이언트 SSL 인증서의 보안 수준을 지정
service.beta.kubernetes.io/scp-load-balancer-server-cert-levelHTTPS-HIGH, NORMAL, LOWHIGHLB Listener의 서버 SSL 인증서의 보안 수준을 지정
표. Kubernetes 어노테이션에서 LB Listener 관련 설정
어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-lb-methodAllROUND_ROBINROUND_ROBIN, LEAST_CONNECTION, IP_HASHROUND_ROBINLB 서버 그룹의 부하 분산 정책을 지정
표. Kubernetes 어노테이션에서 LB 서버 그룹 관련 설정
어노테이션프로토콜기본값허용값예시설명
service.beta.kubernetes.io/scp-load-balancer-health-check-enabledAlltruetrue, falsetrueLB 헬스 체크의 사용 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-protocolAllTCPTCP, HTTPTCPLB 헬스 체크의 프로토콜을 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-portAll{nodeport}1 - 6553430000LB 헬스 체크의 헬스 체크 포트를 지정
  • {nodeport}로 기본 설정되므로, 일반적으로는 지정하지 않아도 됩니다.
service.beta.kubernetes.io/scp-load-balancer-health-check-countAll31 - 103LB 헬스 체크의 탐지 횟수를 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-intervalAll51 - 1805LB 헬스 체크의 주기를 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-timeoutAll51 - 1805LB 헬스 체크의 대기 시간을 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-http-methodHTTPGETGET, POSTGETLB 헬스 체크의 HTTP method를 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-urlHTTP/문자열/healthzLB 헬스 체크의 URL을 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-response-codeHTTP200200 - 500200LB 헬스 체크의 응답 코드를 지정
service.beta.kubernetes.io/scp-load-balancer-health-check-request-dataHTTP-문자열username=admin&password=1234LB 헬스 체크의 요청 문자열을 지정
  • HTTPS 지정 시 필수 입력 항목입니다.
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-enabledAlltruetrue, falsetrueService의 {port} 포트 번호에 대한 LB 헬스 체크 사용 여부를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-protocolAllTCPTCP, HTTPTCPService의 {port} 포트 번호에 대한 LB 헬스 체크 프로토콜을 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-portAll-1 - 6553430000Service의 {port} 포트 번호에 대한 LB 헬스 체크 헬스 체크 포트를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-countAll31 - 103Service의 {port} 포트 번호에 대한 LB 헬스 체크 탐지 횟수를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-intervalAll51 - 1805Service의 {port} 포트 번호에 대한 LB 헬스 체크 주기를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-timeoutAll51 - 1805Service의 {port} 포트 번호에 대한 LB 헬스 체크 대기 시간을 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-http-methodHTTPGETGET, POSTGETService의 {port} 포트 번호에 대한 LB 헬스 체크 HTTP method를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-urlHTTP/문자열/healthzService의 {port} 포트 번호에 대한 LB 헬스 체크 URL을 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-response-codeHTTP200200 - 500200Service의 {port} 포트 번호에 대한 LB 헬스 체크 응답 코드를 지정
service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-request-dataHTTP-문자열username=admin&password=1234Service의 {port} 포트 번호에 대한 LB 헬스 체크 요청 문자열을 지정
  • HTTPS 지정 시 필수 입력 항목입니다.
표. Kubernetes 어노테이션에서 LB 헬스 체크 관련 설정

제약사항

Kubernetes 어노테이션 사용 시에 고려해야 할 제약사항은 다음과 같습니다.

제약사항관련 어노테이션
Security Group을 변경할 경우, 기존 Security Group에 생성된 규칙들은 자동 삭제되지 않음service.beta.kubernetes.io/scp-load-balancer-security-group-id
service.beta.kubernetes.io/scp-load-balancer-security-group-name
Load Balancer의 서비스 구분(L4/L7)을 변경할 수 없음service.beta.kubernetes.io/scp-load-balancer-layer-type
동일 k8s Service 내에서 L4과 L7을 함께 사용할 수 없음service.beta.kubernetes.io/scp-load-balancer-layer-type
Load Balancer 서브넷을 변경할 수 없음service.beta.kubernetes.io/scp-load-balancer-subnet-id
Load Balancer의 Service IP를 변경할 수 없음service.beta.kubernetes.io/scp-load-balancer-service-ip
LB Listener 응답 시간 초과는 활성화(1 - 120) 후 비활성화(0)로 변경할 수 없음service.beta.kubernetes.io/scp-load-balancer-response-timeout
동일 k8s Service 내에서 같은 포트 번호로 TCP와 UDP를 함께 사용할 수 없음-
L7 HTTP/HTTPS의 경우, 라우팅 액션은 URL 처리 Default 패턴("/")이 적용됨
  • 그외 URL 패턴을 추가하려면 Samsung Cloud Platform 콘솔에서 직접 추가해야 함
  • URL 처리만 지원하며 URL 리디렉션은 지원하지 않음
-
표. Kubernetes 어노테이션 사용 시 제약사항

3.4 - 사용 시 고려사항

관리형 포트 제약사항

다음 포트들은 SKE 관리를 위해 사용되므로 서비스 이용에는 사용할 수 없습니다. 또한 OS 방화벽 등으로 차단하는 경우, 노드 기능 또는 일부 기능이 정상 작동하지 않을 수 있습니다.

포트설명
UDP 4789calico-vxlan
TCP 5473calico-typha
TCP 10250kubelet
TCP 19100node-exporter
TCP 19400dcgm-exporter
표. 관리형 포트 목록

kube-reserved 리소스 제약사항

kube-reserved는 노드에서 파드로 실행되지 않는 시스템 데몬에 대한 리소스를 확보하기 위해 예약해두는 기능입니다.

  • 파드로 실행되지 않는 시스테 데몬에는 kubelet, container runtime 등이 있습니다.
참고

kube-reserved에 대한 자세한 사항은 다음 문서를 참고하세요.

Kubernetes Engine은 다음과 같은 기준으로 CPU 및 메모리를 예약합니다.

CPU 사양메모리 사양
  • 처음 코어의 6%
  • 다음 코어의 1% (최대 2코어)
  • 다음 2개 코어의 0.5% (최대 4코어)
  • 4코어 초과 코어의 0.25%
  • 처음 4 GB 메모리의 25%
  • 다음 4 GB 메모리의 20% (최대 8 GB)
  • 다음 8 GB 메모리의 10% (최대 16 GB)
  • 다음 112 GB 메모리의 6% (최대 128 GB)
  • 128 GB 초과 메모리의 2%
표. CPU 및 메모리 기준 리소스 예약 항목
  • 예시: vCPU 16코어, Memory 32G Virtual Server의 경우, kube-reserved는 다음과 같이 계산됩니다.

    • CPU: (1코어 × 0.06) + (1코어 × 0.01) + (2코어 × 0.005) + (12코어 × 0.0025) = 0.11코어
    • 메모리: (4 GB × 0.25) + (4 GB × 0.2) + (8 GB × 0.1) + (16 GB × 0.06) = 3.56 GB
  • 예시: CPU 크기에 따라 예약되는 리소스는 다음과 같습니다.

CPU 사양리소스 사양1리소스 사양2리소스 사양3리소스 사양4
kube-reserved CPU70 m80 m90 m110 m
표. CPU 크기에 따라 예약되는 리소스 예시
  • 예시: 메모리 크기에 따라 예약되는 리소스는 다음과 같습니다.
메모리 사양리소스 사양1리소스 사양2리소스 사양3리소스 사양4리소스 사양4리소스 사양4리소스 사양4
kube-reserved 메모리1 GB1.8 GB2.6 GB3.56 GB5.48 GB9.32 GB11.88 GB
표. 메모리 크기에 따라 예약되는 리소스 예시

3.5 - 버전 정보

Kubernetes 버전 및 지원 기간

Kubernetes 버전 수명 주기

Kubernetes 오픈소스 소프트웨어(OSS) 커뮤니티는 연 3회 마이너 버전을 출시하며, 출시 주기는 약 15주입니다. 출시된 마이너 버전은 약 14개월(표준 패치 12개월, 유지보수 2개월)의 지원 기간을 거쳐 EOL(End of Life)이 됩니다.

안내

Kubernetes 출시 및 EOL 시기, 지원 기간에 대해서는 다음 링크를 참고하세요.

Samsung Cloud Platform Kubernetes Engine (SKE) 버전 제공 계획

SKE는 출시된 OSS 마이너 버전 중 Stable 상태의 패치 버전을 검증하여 제공합니다. 따라서 SKE에서 제공하는 버전의 출시 시점은 동일 OSS 버전 출시 시점과 차이가 있습니다.

또한 기존 출시된 버전의 경우, 오픈소스 EOL 시기 등을 고려하여, 오래된 버전부터 순차적으로 기술 지원이 종료(End of Tech support, EoTS)됩니다.

OSS와 SKE의 출시 일정 및 종료 일정은 다음과 같습니다.

버전OSS 출시OSS EOLSKE 출시SKE EoTS
v1.292023-12-132025-02-282024-102026-03-31
v1.302024-04-172025-06-282025-022026-06-30
v1.312024-08-132025-10-282025-072026-10-28
v1.322024-12-112026-02-282025-102027-02-28
v1.332025-04-232026-06-282025-122027-06-28
표. OSS와 SKE의 출시 및 종료 일정

기술 지원 종료(EoTS) 시 기능 제한

SKE에서 제공 중인 Kubernetes 버전이 기술 지원 종료(EoTS) 상태가 되면, 해당 버전에서 지원되는 기능이 제한될 수 있습니다.

  • 신규 클러스터 생성 → 생성 불가
  • 기존 클러스터 업그레이드 → 업그레이드 가능 (상위 버전이 EoTS라도 업그레이드 가능)
  • 기존 클러스터에서 노드 풀 생성 → 생성 가능
참고
  • EOL 버전에는 취약점이 있을 수 있으므로, 상위 버전으로 업그레이드하는 것을 권장합니다.
  • Samsung Cloud Platform Console에서 제어 영역과 노드 풀을 업그레이드 할 수 있으며, 업그레이드에 따른 별도의 비용은 발생하지 않습니다.
    • 안정적인 운영을 위해, 업그레이드 진행 전 업그레이드 버전에 대한 호환성 테스트를 먼저 수행하세요.

OS 및 GPU 드라이버

K8s 서버 유형별로 사용할 수 있는 OS 및 GPU 드라이버 버전 정보는 다음과 같습니다.

주의
  • K8s 버전별 제공되는 OS 버전은 상이할 수 있습니다.
  • GPU 노드 사용 시, 관련 K8s 컴포넌트 (nvidia-device-plugin, dcgm-exporter)가 클러스터에 기본 구성됩니다.
    • gpu-operator 배포 시, 컴포넌트 중복 구성으로 인한 충돌이 발생할 수 있습니다. 기본 제공 컴포넌트를 제외하고 배포 및 사용을 권장합니다.
k8s 버전Standard 및 High CapacityGPU
v1.29
  • Ubuntu 22.04
  • RHEL 8.8
  • Ubuntu 22.04 (nvidia-535.183.06)
v1.30
  • Ubuntu 22.04
  • RHEL 8.8
  • Ubuntu 22.04 (nvidia-535.183.06)
v1.31
  • Ubuntu 22.04
  • RHEL 8.8
  • Ubuntu 22.04 (nvidia-535.183.06)
v1.32
  • Ubuntu 22.04
  • RHEL 9.4
  • Ubuntu 22.04 (nvidia-535.183.06)
v1.33
  • Ubuntu 22.04
  • RHEL 9.4
  • Ubuntu 22.04 (nvidia-535.183.06)
표. K8s 버전 및 서버 유형별 OS / GPU 드라이버 버전

4 - API Reference

API Reference

5 - CLI Reference

CLI Reference

6 - Release Note

Kubernetes Engine

2025.10.23
FEATURE Kubernetes 버전 추가, 노드 풀 고급 설정 기능, 노드 풀 서버 그룹 설정, ServiceWatch 연계, UserKubeconfig 다운로드, OS 버전 고려 노드 풀 업그레이드 보완
  • Kubernetes Engine 기능 변경
    • Kubernetes v1.32 버전을 지원합니다.
    • 노드 풀 고급 설정 기능을 제공합니다.
    • 노드 풀 서버 그룹(Affinity or Anti-affinity) 설정 기능을 제공합니다.
    • 관리자 Kubeconfig 다운로드 버튼에 이어 사용자 Kubeconfig 다운로드 기능을 제공합니다.
    • 노드 풀 업그레이드 시, OS 버전을 고려한 업그레이드 로직을 추가로 제공합니다.
    • ServiceWatch 연계 기반 로그 수집 기능을 제공합니다.
2025.07.01
FEATURE Kubernetes 버전 추가, 퍼블릭 엔드포인트 제공, 프라이빗 엔드포인트 접근제어 대상 추가, 노드 풀 Label/Taint, Block Storage CSI, kubectl login 플러그인 추가
  • Kubernetes Engine 기능 변경
    • Kubernetes v1.31 버전을 지원합니다.
    • 클러스터의 퍼블릭 엔드포인트를 제공합니다.
    • 클러스터의 프라이빗 엔드포인트 접근제어 대상에 MNGC(Baremetal) 상품과 DevOps Service 상품이 추가됩니다.
    • 노드 풀 Label 및 Taint 설정 기능을 제공합니다.
    • Block Storage CSI 및 kubectl login 플러그인 기능을 제공합니다.
    • kubeconfig 취약점이 개선되었습니다.
2025.04.28
FEATURE 프라이빗 엔드포인트 접근제어, type: LB 기능 추가
  • Kubernetes Engine 기능 변경
    • 프라이빗 엔드포인트 및 접근제어 기능을 제공합니다.
    • type: LoadBalancer 기능을 제공합니다.
2025.02.27
FEATURE Kubernetes 버전 추가 및 Kubernetes 버전 업그레이드, Custom Image, GPU 노드 생성 기능 추가
  • Kubernetes Engine 기능 변경
    • Kubernetes v1.30 버전을 지원합니다.
    • 클라스터 및 노드 풀의 Kubernetes 버전 업그레이드 기능을 제공합니다.
    • Multi-Security Group 기능을 제공합니다.
    • Custom Image 노드 및 GPU 노드 생성 기능을 제공합니다.
  • Samsung Cloud Platform 공통 기능 변경
    • Account, IAM 및 Service Home, 태그 등 공통 CX 변경 사항을 반영하였습니다.
2024.10.01
NEW Kuberntes Engine 서비스 정식 버전 출시
  • 경량화된 가상 컴퓨팅인 Container와 이를 관리하기 위한 Kubernetes 클러스터를 제공하는 Kuberntes Engine 상품을 출시하였습니다.
  • Container 노드 들을 생성하고 클러스터를 통해 통합 관리 하여 다양한 Container 애플리케이션 배포가 가능합니다.
2024.07.02
NEW Beta 버전 출시
  • Kuberntes Engine 상품 Beta 버전을 출시하였습니다.