컨테이너화된 애플리케이션들이 Kubernetes를 사용하여 안정적으로 운영될 수 있도록 실행, 모니터링 환경 및 오픈소스 SW를 제공합니다.
이 섹션의 다중 페이지 출력 화면임. 여기를 클릭하여 프린트.
Container
- 1: Kubernetes Engine
- 1.1: Overview
- 1.1.1: 모니터링 지표
- 1.1.2: ServiceWatch 지표
- 1.2: How-to guides
- 1.2.1: 노드 관리하기
- 1.2.2: 네임스페이스 관리하기
- 1.2.3: 워크로드 관리하기
- 1.2.4: 서비스 및 인그레스 관리하기
- 1.2.5: 스토리지 관리하기
- 1.2.6: 구성(Configuration) 관리하기
- 1.2.7: 권한 관리하기
- 1.3: Kubernetes Engine 활용
- 1.3.1: 클러스터 접근하기
- 1.3.2: 인증 및 인가
- 1.3.3: type LoadBalancer 서비스 사용하기
- 1.3.4: 사용 시 고려사항
- 1.3.5: 버전 정보
- 1.4: API Reference
- 1.5: CLI Reference
- 1.6: Release Note
- 2: Container Registry
- 2.1: Overview
- 2.1.1: 모니터링 지표
- 2.1.2: ServiceWatch 지표
- 2.2: How-to guides
- 2.2.1: 리포지토리 관리하기
- 2.2.2: 이미지 및 태그 관리하기
- 2.2.3: 이미지 보안 취약점 관리하기
- 2.2.4: 이미지 태그 삭제 정책 관리하기
- 2.2.5: CLI로 Container Registry 사용하기
- 2.3: API Reference
- 2.4: CLI Reference
- 2.5: Release Note
1 - Kubernetes Engine
1.1 - Overview
서비스 개요
Kubernetes Engine은 경량화된 가상 컴퓨팅과 컨테이너와 이를 관리하기 위한 쿠버네티스 클러스터를 제공하는 서비스 입니다. 사용자는 Kubernetes Control Plane을 설치하고 운영하며 유지 관리를 수행함으로써 복잡한 준비 없이 쿠버네티스 환경을 활용할 수 있습니다.
특장점
표준 쿠버네티스 환경 구성: 기본 제공하는 Kubernetes Control Plane을 통해 별도의 구성없이 표준 쿠버네티스 환경 사용이 가능합니다. 다른 표준 쿠버네티스 환경 내의 애플리케이션과 호환 가능하여 코드 수정 없이 표준 쿠버네티스 애플리케이션을 사용할 수 있습니다.
손쉬운 쿠버네티스 배포: 워커노드(Worker Node)와 관리형 제어 영역 간에 안전한 통신을 제공하고, 워커노드를 빠르게 프로비저닝하여 사용자는 제공된 컨테이너 환경 위에서 애플리케이션 구축에 집중할 수 있습니다.
편리한 쿠버네티스 관리: 엔터프라이즈 환경을 위해 대시보드를 통한 클러스터 정보 조회 및 클러스터 관리, 네임스페이스 관리, 워크로드 관리 기능 등 생성된 쿠버네티스 클러스터를 편리하게 사용하기 위한 다양한 관리 기능을 제공합니다.
서비스 구성도
제공 기능
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서비스를 통해 배포된 애플리케이션 요건에 따라 노드 풀 자동 확장/축소 설정이 가능합니다.
선행 서비스
해당 서비스를 생성하기 전에 미리 구성되어 있어야 하는 서비스 목록입니다. 자세한 내용은 각 서비스 별로 제공되는 가이드를 참고하여 사전에 준비해주세요.
| 서비스 카테고리 | 서비스 | 상세 설명 |
|---|---|---|
| Networking | VPC | 클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스 |
| Networking | Security Group | 서버의 트래픽을 제어하는 가상 방화벽 |
| Storage | File Storage | 네트워크를 통해 다수의 클라이언트가 파일을 공유하는 스토리지
|
1.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 Status | cluster 상태 | 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 Frequency | Namespace 내 SM clock frequency | MHz |
| Namespace GPU Memory Usage | Namespace 내 Memory utilization | % |
| Namespace GPU Usage | Namespace 내 GPU utilization | % |
| Node CPU Size [Allocatable] | 노드 내 CPU allocatable | cnt |
| Node CPU Size [Capacity] | 노드 내 CPU capacity | cnt |
| Node CPU Usage | 노드 내 CPU 사용량 | % |
| Node CPU Usage [Request] | 노드 내 CPU request_ratio | % |
| Node CPU Used | 노드 내 CPU utilization | status |
| Node Filesystem Usage | 노드 내 FS 사용율 | % |
| Node Memory Size [Allocatable] | 노드 내 memory allocatable | bytes |
| Node Memory Size [Capacity] | 노드 내 memory utilization | bytes |
| Node Memory Usage | 노드 내 memory utilization | % |
| Node Memory Usage [Request] | 노드 내 memory request_ratio | % |
| Node Memory Workingset | 노드 내 memory workingset | bytes |
| Node Network In Bytes | 노드 네트워크 rx bytes | bytes |
| Node Network Out Bytes | 노드 네트워크 tx bytes | bytes |
| Node Network Total Bytes | 노드 네트워크 total bytes | bytes |
| 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 Usage | pod 내 CPU 사용량 | % |
| Pod GPU Clock Frequency | Pod 내 SM clock frequency | MHz |
| Pod GPU Memory Usage | Pod 내 Memory utilization | % |
| Pod GPU Usage | Pod 내 GPU utilization | % |
| Pod Memory Usage [Limit] | pod 내 memory usage_limit_ratio | % |
| Pod Memory Usage [Request] | pod 내 memory request_ratio | % |
| Pod Memory Usage | pod 내 memory 사용량 | bytes |
| Pod Network In Bytes | pod 내 network rx bytes | bytes |
| Pod Network Out Bytes | pod 내 network tx bytes | bytes |
| Pod Network Total Bytes | pod 내 network total bytes | bytes |
| Pod Restart Containers | pod 내 container restart count | cnt |
| Workload Pods [Running] | - | cnt |
1.1.2 - ServiceWatch 지표
Kubernetes Engine는 ServiceWatch로 지표를 전송합니다. 기본 모니터링으로 제공되는 지표는 1분 주기로 수집된 데이터입니다.
기본 지표
다음은 네임스페이스 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_temp | GPU 온도 | - |
|
| gpu_power_usage | GPU 전력 사용량 | - |
|
| gpu_util | GPU 사용률 | Percent |
|
| gpu_sm_clock | GPU SM 클럭 | - |
|
| gpu_fb_used | GPU FB 사용량 | Megabytes |
|
| gpu_tensor_active | GPU 텐서 활성률 | - |
|
| pod_gpu_util | 파드 GPU 사용률 | Percent |
|
| pod_gpu_tensor_active | 파드 GPU 텐서 활성률 | - |
|
1.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 클러스터를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 생성 버튼을 클릭하세요. 클러스터 생성 페이지로 이동합니다.
- 클러스터 생성 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 클러스터명 필수 클러스터 이름 - 영문으로 시작하며 영문, 숫자, 특수문자(
-) 사용하여 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 추가 정보 입력 항목
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
- 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
- 생성이 완료되면, 클러스터 목록 페이지에서 생성한 자원을 확인하세요.
클러스터 상세 정보 확인하기
Kubernetes Engine 서비스는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. 클러스터 상세 페이지에서는 상세 정보, 노드 풀, 태그, 작업 이력 탭으로 구성되어 있습니다.
클러스터 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 상세 정보를 확인할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에는 클러스터의 상태 정보 및 상세 정보가 표시되며, 상세 정보, 노드 풀, 태그, 작업 이력 탭으로 구성됩니다.
구분 상세 설명 클러스터 상태 Kubernetes Engine 클러스터의 상태 - Creating: 생성 중
- Running: 생성 완료/작동 중
- Error: 에러 발생
서비스 해지 Kubernetes Engine 클러스터를 해지하는 버튼 - Kubernetes Engine 서비스를 해지하려면 클러스터에 추가된 노드 풀을 모두 삭제해야 함
- 서비스를 해지하면 운영 중인 서비스가 즉시 중단될 수 있으므로, 서비스 중단에 따른 영향을 고려하여 해지 필요
표. 상태 정보 및 부가 기능
- 클러스터 상세 페이지에는 클러스터의 상태 정보 및 상세 정보가 표시되며, 상세 정보, 노드 풀, 태그, 작업 이력 탭으로 구성됩니다.
상세 정보
클러스터 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 서비스 | 서비스명 |
| 자원 유형 | 자원 유형 |
| SRN | Samsung Cloud Platform에서의 고유 자원 ID |
| 자원명 | 자원 이름
|
| 자원 ID | 서비스에서의 고유 자원 ID |
| 생성자 | 서비스를 생성한 사용자 |
| 생성 일시 | 서비스를 생성한 일시 |
| 수정자 | 서비스 정보를 수정한 사용자 |
| 수정 일시 | 서비스 정보를 수정한 일시 |
| 클러스터명 | 클러스터 이름 |
| LLM Endpoint | LLM Endpoint 정보 |
| 제어 영역 설정 | 할당된 쿠버네티스 제어 영역(Control Plane) 버전과 접근 허용 범위 확인
|
| 네트워크 설정 | Kubernetes Engine 클러스터 생성 시 설정한 VPC, Subnet 및 Security Group 정보 확인
|
| File Storage 설정 | 볼륨명을 클릭하면 스토리지 상세 정보 페이지에서 상세 정보를 확인 가능 |
- Kubernetes Engine의 버전은
[메이저].[마이너].[패치]순으로 표기하며, 한 번에 하나의 마이너 버전만 업그레이드할 수 있습니다.- 예시: 버전
1.11.x > 1.13.x(불가) / 버전1.11.x > 1.12.x(가능)
- 예시: 버전
- 지원 종료된 쿠버네티스 버전이나 지원 종료 예정인 버전을 사용중인 경우, 버전 오른쪽에 빨간색 느낌표가 표시됩니다. 해당 아이콘이 표시되면 쿠버네티스 버전 업그레이드를 권장합니다.
노드 풀
클러스터 노드 풀 정보를 확인하고 추가하거나 변경, 삭제할 수 있습니다. 노드 풀 사용에 대한 자세한 내용은 노드 관리하기를 참고하세요.
| 구분 | 상세 설명 |
|---|---|
| 노드 풀 추가 | 현재 클러스터에 노드 풀 추가
|
| 노드 풀 정보 | 노드 풀 목록 확인 및 관리 기능 제공
|
노드 풀 정보의 버전에 빨간 느낌표 아이콘이 표시되는 경우, 해당 노드 풀의 서버 OS는 쿠버네티스 상위 버전에서 지원되지 않습니다. 안정적인 서비스를 위해 노드 풀 서버 OS를 업그레이드해야 합니다.
- 노드 풀 버전 업그레이드를 하려면 해당 노드 풀을 삭제한 후, 서버 OS 상위 버전으로 노드 풀을 신규 생성해야 합니다.
태그
클러스터 목록 페이지에서 선택한 자원의 태그 정보를 확인하고, 추가하거나 변경 또는 삭제할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 태그 목록 | 태그 목록
|
작업 이력
클러스터 목록 페이지에서 선택한 자원의 작업 이력을 확인할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 작업 이력 목록 | 자원 변경 이력
|
클러스터 자원 관리하기
클러스터 자원 관리를 위해서 클러스터 버전 업그레이드, kubeconfig 다운로드, 제어 영역 로깅 수정 기능을 제공하고 있습니다.
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 설치 및 설정을 참고하세요.
클러스터 및 노드 풀 버전 업그레이드하기
클러스터 및 노드 풀을 업데이트 하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 버전 업그레이드할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 Kubernetes 버전의 수정 아이콘을 클릭하세요. 클러스터 버전 업그레이드 팝업창으로 이동합니다.
- 업그레이드할 Kubernetes 버전을 선택하고, 확인 버튼을 클릭하세요.
- 클러스터 업그레이드가 완료될 때까지 몇 분 정도 소요될 수 있습니다
- 업그레이드가 진행되는 동안 클러스터의 상태는 Updating으로 표시되며, 업그레이드가 완료되면 Running으로 표시됩니다.
- 업그레이드가 완료되면 노드 풀 탭을 선택하세요. 노드 풀 페이지로 이동합니다.
- 노드 풀 항목의 더보기 버튼을 클릭하여 노드 풀 업그레이드를 클릭하세요. 노드 풀 버전 업그레이드 팝업창으로 이동합니다.
- 노드 풀 버전 업그레이드 팝업창에서 메시지를 확인한 후 확인 버튼을 클릭하세요.
- 노드 풀 업그레이드가 완료될 때까지 몇 분 정도 소요될 수 있습니다.
- 업그레이드가 진행되는 동안 노드 풀의 상태는 Updating으로 표시되며, 업그레이드가 완료되면 Running으로 표시됩니다.
kubeconfig 다운로드
클러스터의 퍼블릭 엔드포인트와 프라이빗 엔드포인트의 관리자/사용자 kubeconfig 설정값을 yaml 문서로 다운로드할 수 있습니다.
클러스터의 kubeconfig 설정값을 다운로드하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 kubeconfig 다운로드할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 원하는 엔드포인트의 관리자 kubeconfig 다운로드/사용자 kubeconfig 다운로드 버튼을 클릭하세요.
- 각 권한별로 kubeconfig 파일을 yaml 형식으로 다운로드할 수 있습니다.
프라이빗 엔드포인트 접근 제어 수정하기
클러스터의 프라이빗 엔드포인트 접근 제어 설정을 변경할 수 있습니다.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 프라이빗 엔드포인트 접근 제어를 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 프라이빗 엔드포인트 접근 제어의 수정 아이콘을 클릭하세요. 프라이빗 엔드포인트 접근 제어 수정 팝업창으로 이동합니다.
- 프라이빗 엔드포인트 접근 제어 수정 팝업창에서 프라이빗 엔드포인트 접근 제어의 사용 여부를 체크하고 접근 허용 리소스를 추가한 후, 확인 버튼을 클릭하세요.
퍼블릭 엔드포인트 접근/접근 제어 수정하기
클러스터의 퍼블릭 엔드포인트 접근 제어 설정을 변경할 수 있습니다.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 퍼블릭 엔드포인트 접근 제어를 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 퍼블릭 엔드포인트 접근/접근 제어의 수정 아이콘을 클릭하세요. 퍼블릭 엔드포인트 접근/접근 제어 수정 팝업창으로 이동합니다.
- 퍼블릭 엔드포인트 접근/접근 제어 수정 팝업창에서 퍼블릭 엔드포인트 접근 제어의 사용 여부를 체크하고 접근 허용 IP 범위를 추가한 후, 확인 버튼을 클릭하세요.
제어 영역 로그 수집 설정 수정하기
클러스터의 제어 영역(Control Plane)의 로그 수집 설정을 변경할 수 있습니다. 클러스터의 상세 로그는 ServiceWatch 서비스나 Cloud Monitoring 서비스에서 확인할 수 있습니다.
Cloud Monitoring 로그 수집을 설정해도 클러스터 로그를 확인할 수 있습니다.
- 단, Cloud Moniotring 로그 수집 기능은 서비스 종료 예정이므로 ServiceWatch 로그 수집 사용을 권장합니다.
클러스터의 제어 영역 로그 수집 설정을 변경하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 제어 영역 로깅을 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 ServiceWatch 로그 수집의 수정 아이콘을 클릭하세요. ServiceWatch 로그 수집 팝업창으로 이동합니다.
- Cloud Monitoring 로그 수집 기능도 동일하게 설정할 수 있습니다.
- 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을 수정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 Security Group 수정할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 Security Group의 수정 아이콘을 클릭하세요. Security Group 수정 팝업창으로 이동합니다.
- 수정할 Security Group을 선택 또는 선택 해제한 후, 확인 버튼을 클릭하세요.
클러스터 해지하기
클러스터를 해지하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engines의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 상세 정보를 확인할 자원(클러스터)을 클릭하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 서비스 해지를 클릭하세요.
- 서비스 해지 팝업창에서 내용을 확인한 후, 확인 버튼을 클릭하세요.
1.2.1 - 노드 관리하기
노드란 컨테이너화된 애플리케이션을 실행하는 머신의 집합입니다. 모든 클러스터는 한 개 이상의 워커 노드를 가져야 애플리케이션 배포가 가능합니다. 노드는 노드풀을 정의해 사용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈, OS 이미지를 가져야 하며, 여러 개의 노드풀 생성을 통해 유연한 배포 전략을 수립할 수 있습니다.
Kubernetes Engine 클러스터를 생성한 후 노드 풀을 추가하고 필요에 따라 수정하거나 삭제하세요.
- Calico를 사용하는 Kubernetes Engine의 노드에는 OS 방화벽(firewall)을 사용하지 않을 것을 권고합니다.
- Samsung Cloud Platform의 방화벽 설정은 기본적으로 비활성화(Inactive) 상태로 설정되어 있습니다.
- 아래 참조 링크와 같이 Calico를 사용하는 환경에서는 방화벽을 미사용 상태로 설정하는 것을 권장합니다.
- 노드가 Backup 서비스 대상으로 지정되어 있는 경우, 노드 삭제가 불가능하여 아래 기능을 사용할 수 없습니다.
- 노드 풀 축소 (자동 축소 포함)
- 노드 풀 업그레이드
- 노드 풀 자동 복구
- 노드 풀 삭제
노드 풀 추가하기
노드(node)란 컨테이너화된 애플리케이션을 실행하는 머신을 의미하며, 쿠버네티스 클러스터에서 애플리케이션을 배포하려면 하나 이상의 노드가 반드시 필요합니다. Kubernetes Engine 클러스터의 생성이 완료된 후 상세 페이지에서 노드 풀을 추가하세요.
- Kubernetes Engine에서 노드의 집합인 노드 풀을 정의해 활용할 수 있습니다. 노드 풀에 속한 노드들은 동일한 서버 타입, 사이즈 및 OS 이미지를 사용하므로, 사용자는 여러 개의 노드 풀을 이용해 유연한 배포 전략을 수립할 수 있습니다.
Virtual Server 메뉴에서 사용자의 Custom Image를 이용해 노드 풀을 생성할 수 있습니다. Custom Image를 이용한 노드 풀을 생성하려면 다음 절차를 따르세요.
- Samsung Cloud Platform의 Kubernetes Engine 이미지가 포함된 Virtual Server를 생성하세요.
- 해당 Virtual Server의 Image 생성하기를 이용하여 이미지를 생성을 진행하세요.
- 등록한 Custom Image를 선택하여 노드 풀을 생성하세요.
- 자세한 내용은 Virtual Server > Image 생성하기를 참고하세요.
노드 풀을 추가하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 풀을 추가하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 추가 버튼을 클릭하세요. 클러스터 노드 풀 추가 페이지로 이동합니다.
- 클러스터 노드 풀 추가 페이지에서 노드 풀 생성에 필요한 정보를 입력하고, 상세 옵션을 선택하세요.
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 노드 풀명 필수 노드 풀 이름 - 영문 소문자로 시작하며 영문 소문자, 숫자, 특수문자(
-)를 사용하여 3 - 20자 이내로 입력- 이름 마지막에 특수문자(
-)를 사용할 수 없음
- 이름 마지막에 특수문자(
노드 풀 > 서버 타입 필수 워커 노드의 Virtual Server 서버 타입 - Standard: 일반적으로 사용되는 표준 사양
- High Capacity: Standard 이상의 대용량 서버 사양
- GPU: AI/ML 등 특수 요건에 따른 자원 확보시 사용 가능한 GPU 사양
- Virtual Server에서 제공하는 서버 타입에 대한 자세한 내용은 Virtual Server 서버 타입을 참고
노드 풀 > 서버 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가 필요한 경우 신규 생성
- 신규 Keypair 생성 방법은 Keypair 생성하기를 참고
- OS별 기본 접속 계정 리스트
- Alma Linux: almalinux
- RHEL: cloud-user
- Rocky Linux: rocky
- Ubuntu: ubuntu
- Windows: sysadmin
레이블 선택 워크로드를 노드에 선택적으로 예약 - 추가 버튼을 클릭해 레이블 키와 값 입력
- 설정 방법은 노드 풀 레이블 설정하기를 참고
테인트 선택 워크로드가 노드에 예약되는 것을 방지 - 추가 버튼을 클릭해 테인트 효과, 키와 값 입력
- 설정 방법은 노드 풀 테인트 설정하기를 참고
고급 설정 선택 워커 노드에 대한 파드, 로그 등 세부 영역에 대한 설정 - 사용을 클릭해 생성할 노드 풀의 고급 설정 항목 적용 여부 선택
- 설정 방법은 노드 풀 고급 설정하기를 참고
표. Kubernetes Engine 노드 풀 서비스 정보 입력 항목 - 영문 소문자로 시작하며 영문 소문자, 숫자, 특수문자(
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
- 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
- 생성이 완료되면, 클러스터 상세 > 노드 풀 탭 > 노드 풀 목록 페이지에서 생성한 자원을 확인하세요.
- 알림 팝업창이 열리면 확인 버튼을 클릭하세요.
노드 풀 수정하기
필요한 경우 Kubernetes Engine 상세 페이지에서 노드 풀의 노드 수를 수정하세요.
노드 수를 수정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 수를 수정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
- 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
- 노드 풀 수정 팝업창에서 노드 풀 정보를 수정한 후 확인 버튼을 클릭하세요.
노드 풀 업그레이드하기
제어 영역의 쿠버네티스 버전과 노드 풀의 버전이 서로 다른 경우 노드 풀을 업그레이드해 버전을 동기화할 수 있습니다.
- 클러스터를 업그레이드한 후 노드 풀 업그레이드를 진행하세요. 쿠버네티스 클러스터의 제어 영역 및 노드 풀 업그레이드는 별도로 수행됩니다.
- 노드 풀 업그레이드를 수행하면 노드 풀에 속한 노드들을 대상으로 롤링 업데이트(rolling update)가 진행됩니다. 이 때, 순간적인 서비스 단절이 발생할 수 있으나 이는 롤링 업데이트에 따른 정상적인 현상이며 일정 시간 경과 후 자동으로 정상화됩니다.
- 노드 풀의 Kubernetes 버전에 따라 서버 OS 버전이 다를 수 있습니다.
노드 풀을 업그레이드 하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 풀 버전 업그레이드를 수행하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 행 오른쪽 끝 더보기 버튼을 클릭하세요. 더보기 버튼 내 노드 풀 업그레이드를 클릭하세요. 노드 풀 버전 업그레이드 팝업창으로 이동합니다.
- 노드의 상태가 Running인 경우에만 노드 풀을 업그레이드할 수 있습니다.
- 노드 풀 버전 업그레이드 팝업창에서 정보를 확인한 후 확인 버튼을 클릭하세요.
노드 풀 자동 확장/축소하기
노드 풀 자동 확장/축소는 워크로드의 요구에 따라 지정된 노드 풀에 신규 노드를 추가하거나 기존 노드를 삭제하여 자동으로 노드 풀의 수를 조절하는 기능입니다. 이 기능은 노드 풀을 기준으로 작동합니다.
- 노드 풀 자동 확장/축소 시 실제 리소스 사용률이 아닌 노드 풀의 노드에서 실행되는 파드의 리소스 요청에 따라 조절되며, 주기적으로 파드 및 노드의 상태를 확인하고 자동 확장/축소 작업이 실행됩니다.
노드 풀의 자동 확장/축소 기능을 설정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 자동 확장/축소 기능을 사용하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
- 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
- 노드 풀 수정 팝업창에서 노드 풀 자동 확장/축소를 사용으로 선택하세요.
- 최소 노드 수와 최대 노드 수를 입력한 후, 확인 버튼을 클릭하세요.참고
노드 풀 자동 확장/축소 설정은 클러스터 노드 풀 생성 페이지에서도 설정할 수 있습니다.
- 노드 풀 확장 조건
- 자원 부족으로 클러스터에 파드 구동 실패 시 (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 서비스에서 생성한 노드 풀이 아닌 직접 연결한 노드가 있는 경우, 해당 기능 사용 시 오동작이 발생할 수 있습니다.
노드 자동 복구 기능을 설정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 자동 복구 기능을 사용하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
- 노드 풀 상세 페이지에서 노드 풀 정보 오른쪽의 수정 아이콘을 클릭하세요. 노드 풀 수정 팝업창으로 이동합니다.
- 노드 풀 수정 팝업창에서 노드 자동 복구를 사용으로 선택한 후, 확인 버튼을 클릭하세요.
노드 자동 복구 설정은 클러스터 노드 풀 생성 페이지에서도 설정할 수 있습니다.
- 노드 자동 복구 대상인 경우
- 일정 시간 임계값(약 10분) 동안 노드가 연이은 검사에서 NotReady 상태를 보고하는 경우
- 일정 시간 임계값(약 10분) 동안 노드가 상태를 전혀 보고하지 않는 경우
- 노드 자동 복구 대상이 아닌 경우
- 최초 노드 생성 시 Running 상태가 되지 못하고 Creating 상태에 머물러 있는 노드
- 같은 노드 풀에서 비정상 노드가 동시에 5대 이상 발생한 경우
노드 풀 레이블 설정하기
노드 풀 레이블은 워크로드를 노드에 선택적으로 예약하기 위한 기능입니다.
- 노드 풀 레이블 적용 시, 기존 노드에는 적용되지 않고 신규 생성되는 노드부터 레이블이 적용됩니다.
- 기존 노드에 레이블 적용이 필요하다면 사용자가 직접 kubectl로 설정해야 합니다.
노드 풀 레이블을 설정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 풀 레이블을 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
- 노드 풀 상세 페이지에서 레이블의 수정 아이콘을 클릭하면, 레이블 수정 팝업창으로 이동합니다.
- 레이블 수정 팝업창에서 추가 버튼을 클릭해 필요한 갯수만큼 레이블을 추가하세요.
- 레이블 정보를 입력하고 확인 버튼을 클릭하세요.
노드 풀 테인트 설정하기
노드 풀 테인트는 워크로드가 노드에 예약되는 것을 방지하기 위한 기능입니다.
- 모든 노드 풀에 테인트를 설정하면, 클러스터 정상 구동에 필요한 파드가 구동되지 않을 수 있습니다.
- 노드 풀 테인트 적용 시, 기존 노드에는 적용되지 않고 신규 생성되는 노드부터 테인트가 적용됩니다.
- 기존 노드에 테인트 적용이 필요하다면 사용자가 직접 kubectl로 설정해야 합니다.
노드 풀 테인트를 설정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 풀 레이블을 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 수정하려는 노드 풀 명을 클릭하세요. 노드 풀 상세 페이지로 이동합니다.
- 노드 풀 상세 페이지에서 테인트의 수정 아이콘을 클릭하면, 테인트 수정 팝업창으로 이동합니다.
- 테인트 수정 팝업창에서 추가 버튼을 클릭해 필요한 갯수만큼 테인트를 추가하세요.
- 테인트 정보를 입력하고 확인 버튼을 클릭하세요.
노드 풀 고급 설정하기
노드 풀 고급 설정은 워커 노드 내 파드 개수, PID, 로그, 이미지 GC 등 세부 설정을 적용하기 위한 기능입니다.
각 설정은 다음과 같이 kubelet configuration과 대응됩니다.
- 노드당 최대 파드: maxPods
- 이미지 GC 상한 퍼센트: imageGCHighThresholdPercent
- 이미지 GC 하한 퍼센트: imageGCLowThresholdPercent
- 컨테이너 로그 최대 사이즈 MB: containerLogMaxSize
- 컨테이너 로그 최대 파일 수: containerLogMaxFiles
- 파드 PID 제한: podPidsLimit
- Unsafe Sysctl 허용: allowedUnsafeSysctls
노드 풀에 대한 고급 설정을 하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 풀 고급 설정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 생성을 클릭하세요. 노드 풀 생성 페이지로 이동합니다.
- 노드 풀 생성 페이지에서 고급 설정을 사용으로 선택하세요.
- 사용 선택 후 나타나는 항목들에 대해 필요한 정보들을 입력하세요.
- 요약 탭에서 필요 정보들이 정확히 입력되었는지 확인 후, 완료 버튼을 클릭하세요.
노드 풀 삭제하기
필요한 경우 Kubernetes Engine 상세 페이지에서 노드 풀을 삭제하세요.
노드 풀을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 클러스터 메뉴를 클릭하세요. 클러스터 목록 페이지로 이동합니다.
- 클러스터 목록 페이지에서 노드 수를 수정하려는 클러스터를 선택하세요. 클러스터 상세 페이지로 이동합니다.
- 클러스터 상세 페이지에서 노드 풀 탭을 선택한 후, 노드 풀 행 오른쪽 끝 더보기 버튼을 클릭하세요. 더보기 버튼 내 노드 풀 삭제를 클릭하세요.
- 노드 풀 삭제 팝업창에서 체크박스 확인 및 삭제할 노드 풀 이름을 입력하고 확인 버튼을 클릭하세요.
노드 풀 상세 정보 확인하기
노드는 쿠버네티스 클러스터에서 사용하는 작업 머신(working machine)으로, 파드(Pod)를 실행하는 데 필요한 필수 서비스를 포함합니다. 각각의 노드는 마스터 컴포넌트에 의해 관리되며, 클러스터 구성에 따라 가상 머신 또는 물리적 머신을 노드로 사용할 수 있습니다.
클러스터 생성후 추가한 노드의 메타데이터, 객체 정보 등의 정보를 확인하고, YAML 편집기로 리소스 파일을 수정할 수 있습니다.
노드 풀의 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 노드 메뉴를 클릭하세요. 노드 목록 페이지로 이동합니다.
- 노드 목록 페이지에서 상세 정보를 확인하려는 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인 버튼을 클릭하세요.
- 상세 정보를 확인하려는 노드를 선택해 클릭하세요. 노드 상세 페이지로 이동합니다.
구분 상세 설명상태 표시 노드의 현재 상태를 표시 상세 정보 노드의 Account 정보, 메타데이터, 객체 정보를 확인 YAML 노드의 리소스를 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 노드에서 발생한 이벤트를 확인 파드 노드의 파드 정보를 확인 - Pod(파드)는 Kubernetes Engine에서 생성, 관리, 및 배포할 수 있는 가장 작은 컴퓨팅 단위
Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 노드의 메타데이터 정보를 확인 객체 정보 내부 IP 및 머신 ID, 용량, 리소스 등, 생성한 노드의 객체 정보가 표시 - GPU 자원이 존재하는 경우, 용량 > Nvidia.com/GPU 컬럼에서 GPU 수를 확인
표. 노드 상세 정보 항목
1.2.2 - 네임스페이스 관리하기
네임스페이스는 쿠버네티스 클러스터 내의 논리적인 분리 단위이며, 네임스페이스별 접근 권한 또는 리소스 사용 한도를 지정하기 위해 사용됩니다.
네임스페이스 생성하기
네임스페이스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
- 네임스페이스 목록 페이지에서 네임스페이스를 생성하려는 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
네임스페이스 상세 정보 확인하기
네임스페이스 상세 페이지에서 네임스페이스 상태 및 상세 정보를 확인할 수 있습니다.
네임스페이스 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
- 네임스페이스 목록 페이지에서 상세 정보 확인이 필요한 네임스페이스가 속한 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인을 클릭하세요.
- 네임스페이스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택해 클릭하세요. 네임스페이스 상세 페이지로 이동합니다.
구분 상세 설명 상태 표시 네임스페이스의 현재 상태를 표시 네임스페이스 삭제 네임스페이스를 삭제 - 워크로드가 포함된 네임스페이스는 삭제할 수 없음. 네임스페이스를 삭제하려면 연결될 워크로드를 모두 삭제해야 함
상세 정보 네임스페이스의 Account 정보와 메타데이터 정보를 확인 YAML 네임스페이스를 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 네임스페이스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 네임스페이스 내에서 발생한 이벤트를 확인 파드 네임스페이스의 파드 정보를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 네임스페이스의 메타데이터 정보를 확인 표. 네임스페이스 상세 정보 항목
네임스페이스 삭제하기
네임스페이스를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 네임스페이스 메뉴를 클릭하세요. 네임스페이스 목록 페이지로 이동합니다.
- 네임스페이스 목록 페이지에서 삭제 하려는 네임스페이스가 속한 클러스터를 왼쪽 상단의 톱니바퀴 버튼에서 선택한 후, 확인 버튼을 클릭하세요.
- 네임스페이스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택해 클릭하세요. 네임스페이스 상세 페이지로 이동합니다.
- 네임스페이스 상세 페이지에서 네임스페이스 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
- 네임스페이스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 네임스페이스를 삭제할 수 있습니다.
- 워크로드가 포함된 네임스페이스는 삭제할 수 없습니다. 네임스페이스를 삭제하려면 연결된 워크로드를 모두 삭제하세요.
1.2.3 - 워크로드 관리하기
워크로드는 Kubernetes Engine에서 구동되는 애플리케이션입니다. 네임스페이스를 생성한 다음 워크로드를 추가하거나 삭제할 수 있습니다. 워크로드는 디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 항목별로 생성한 후 관리합니다.
디플로이먼트, 파드, 스테이트풀셋, 데몬셋, 잡, 크론잡 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.
- 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
디플로이먼트 관리하기
디플로이먼트는 파드와 레플리카셋(ReplicaSet)에 대한 업데이트를 제공하는 리소스를 말합니다. 워크로드에서 디플로이먼트를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
디플로이먼트 생성하기
디플로이먼트를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
- 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
- 다음은 디플로이먼트 생성을 위한 필수 필드와 오브젝트 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: 80apiVersion: 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
- 다음은 디플로이먼트 생성을 위한 필수 필드와 오브젝트 Spec을 보여주는
디플로이먼트 상세 정보 확인하기
디플로이먼트 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
- 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 디플로이먼트 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 디플로이먼트 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명디플로이먼트 삭제 디플로이먼트를 삭제 상세 정보 디플로이먼트의 상세 정보 확인 가능 YAML 디플로이먼트의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭해 번경 사항을 적용
이벤트 디플로이먼트 내에서 발생한 이벤트를 확인 파드 디플로이먼트의 파드 정보를 확인 - Pod(파드)는 Kubernetes Engine에서 생성, 관리, 및 배포할 수 있는 가장 작은 컴퓨팅 단위
Account 정보 Account 이름, 위치, 생성 일시 등 Account에 대한 기본적인 정보를 확인 메타데이터 정보 디플로이먼트의 메타데이터 정보를 확인 객체 정보 디플로이먼트의 객체 정보를 확인 표. 디플로이먼트 상세 정보 항목
디플로이먼트 삭제하기
디플로이먼트를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 디플로이먼트를 클릭하세요. 디플로이먼트 목록 페이지로 이동합니다.
- 디플로이먼트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 디플로이먼트 목록 페이지에서 삭제하려는 항목을 선택하세요. 디플로이먼트 상세 페이지로 이동합니다.
- 디플로이먼트 상세 페이지에서 디플로이먼트 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
파드 관리하기
파드(Pod)는 쿠버네티스에서 생성, 관리하고 배포할 수 있는 가장 작은 컴퓨팅 단위로, 하나 이상의 컨테이너 그룹을 말합니다. 워크로드에서 파드를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
파드 생성하기
파드를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
- 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
파드 상세 정보 확인하기
파드 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
- 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 파드 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 파드 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명상태 표시 파드의 현재 상태를 표시 파드 삭제 파드를 삭제 상세 정보 파드의 상세 정보 확인 가능 YAML 파드의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 파드 내에서 발생한 이벤트를 확인 로그 컨테이너를 선택하면 파드가 가지고 있는 컨테이너 정보를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 파드의 메타데이터 정보를 확인 객체 정보 파드의 객체 정보를 확인 초기화 컨테이너 정보 파드의 초기화 컨테이너 정보를 확인 컨테이너 정보 파드의 컨테이너 정보를 확인 표. 파드 상세 정보 항목
파드 삭제하기
파드를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 파드를 클릭하세요. 파드 목록 페이지로 이동합니다.
- 파드 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 파드 목록 페이지에서 삭제하려는 항목을 선택하세요. 파드 상세 페이지로 이동합니다.
- 파드 상세 페이지에서 파드 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
스테이트풀셋 관리하기
스테이트풀셋은 애플리케이션의 스테이트풀을 관리하는데 사용하는 워크로드 API 오브젝트를 말합니다. 워크로드에서 스테이트풀셋을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
스테이트풀셋 생성하기
스테이트풀셋을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
- 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
스테이트풀셋 상세 정보 확인하기
스테이트풀셋의 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
- 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 스테이트풀셋 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 스테이트풀셋 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명스테이트풀셋 삭제 스테이트풀셋을 삭제 상세 정보 스테이트풀셋의 상세 정보 확인 가능 YAML 스테이트풀셋의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 스테이트풀셋 내에서 발생한 이벤트를 확인 파드 스테이트풀셋의 파드 정보를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 스테이트풀셋의 메타데이터 정보를 확인 객체 정보 스테이트풀셋의 객체 정보를 확인 표. 스테이트풀셋 상세 정보 항목
스테이트풀셋 삭제하기
스테이트풀셋을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 스테이트풀셋을 클릭하세요. 스테이트풀셋 목록 페이지로 이동합니다.
- 스테이트풀셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 스테이트풀셋 목록 페이지에서 삭제하려는 항목을 선택하세요. 스테이트풀셋 상세 페이지로 이동합니다.
- 스테이트풀셋 상세 페이지에서 스테이트풀셋 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
데몬셋 관리하기
데몬셋은 모든 노드 또는 일부 노드가 파드의 사본을 실행하도록 하는 리소스를 말합니다. 워크로드에서 데몬셋을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
데몬셋 생성하기
데몬셋을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
- 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
데몬셋 상세 정보 확인하기
데몬셋의 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
- 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 데몬셋 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 데몬셋 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명데몬셋 삭제 데몬셋을 삭제 상세 정보 데몬셋의 상세 정보 확인 가능 YAML 데몬셋의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 데몬셋 내에서 발생한 이벤트를 확인 파드 데몬셋의 파드 정보를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 데몬셋의 메타데이터 정보를 확인 객체 정보 데몬셋의 객체 정보를 확인 표. 데몬셋 상세 정보 항목
데몬셋 삭제하기
데몬셋을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 데몬셋을 클릭하세요. 데몬셋 목록 페이지로 이동합니다.
- 데몬셋 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 데몬셋 목록 페이지에서 삭제하려는 항목을 선택하세요. 데몬셋 상세 페이지로 이동합니다.
- 데몬셋 상세 페이지에서 데몬셋 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
잡 관리하기
잡은 하나 이상의 파드를 생성하고 지정된 수의 파드가 성곡적으로 종료될 때까지 계속해서 파드를 실행시키는 리소스를 말합니다. 워크로드에서 잡을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
잡 생성하기
잡을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 잡을 클릭하세요. 잡 목록 페이지로 이동합니다.
- 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
잡 상세 정보 확인하기
잡 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 잡을 클릭하세요. 잡 목록 페이지로 이동합니다.
- 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 잡 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 잡 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명잡 삭제 잡을 삭제 상세 정보 잡의 상세 정보 확인 가능 YAML 잡의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 잡 내에서 발생한 이벤트를 확인 파드 잡의 파드 정보를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 잡의 메타데이터 정보를 확인 객체 정보 잡의 객체 정보를 확인 표. 잡 상세 정보 항목
잡 삭제하기
잡을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 잡을 클릭하세요. 잡 목록 페이지로 이동합니다.
- 잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 잡 목록 페이지에서 삭제하려는 항목을 선택하세요. 잡 상세 페이지로 이동합니다.
- 잡 상세 페이지에서 잡 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
크론잡 관리하기
크론잡은 크론 형식으로 작성된 일정에 따라 잡(Job)을 주기적으로 동작시키는 리소스를 말합니다. 백업, 리포트 생성 등 일정한 주기의 반복 작업을 실행할 때 사용할 수 있습니다. 워크로드에서 크론잡을 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
크론잡 생성하기
크론잡을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
- 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
크론잡 상세 정보 확인하기
크론잡의 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
- 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 크론잡 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 크론잡 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명크론잡 삭제 크론잡을 삭제 상세 정보 크론잡의 상세 정보 확인 가능 YAML 크론잡의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 크론잡 내에서 발생한 이벤트를 확인 잡 크론잡의 잡 정보를 확인. 잡 항목을 선택하면 잡 상세 페이지로 이동 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 크론잡의 메타데이터 정보를 확인 객체 정보 크론잡의 객체 정보를 확인 표. 크론잡 상세 정보 항목
크론잡 삭제하기
크론잡을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 워크로드 메뉴 아래 크론잡을 클릭하세요. 크론잡 목록 페이지로 이동합니다.
- 크론잡 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 크론잡 목록 페이지에서 삭제하려는 항목을 선택하세요. 크론잡 상세 페이지로 이동합니다.
- 크론잡 상세 페이지에서 크론잡 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
1.2.4 - 서비스 및 인그레스 관리하기
서비스는 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이며, 인그레스는 클러스터 외부에서 클러스터 내부로 HTTP와 HTTPS 경로를 노출하기 위해 사용합니다. 네임스페이스 생성 후 서비스, 엔드포인트, 인그레스 및 인그레스클래스를 생성하거나 삭제할 수 있습니다.
서비스, 엔드포인트, 인그레스, 인그레스클래스 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.
- 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
서비스 관리하기
서비스를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
서비스 생성하기
서비스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
- 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
서비스 상세 정보 확인하기
서비스 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
- 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 서비스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 서비스 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명서비스 삭제 서비스를 삭제 상세 정보 서비스의 상세 정보 확인 가능 YAML 서비스의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 서비스 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 서비스의 메타데이터 정보를 확인 객체 정보 서비스의 객체 정보를 확인 표. 서비스 상세 정보 항목
서비스 삭제하기
서비스를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 서비스를 클릭하세요. 서비스 목록 페이지로 이동합니다.
- 서비스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 서비스 목록 페이지에서 삭제하려는 항목을 선택하세요. 서비스 상세 페이지로 이동합니다.
- 서비스 상세 페이지에서 서비스 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
엔드포인트 관리하기
엔드포인트를 생성하고 상세 정보를 확인하거나 삭제할 수 있습니다.
엔드포인트 생성하기
엔드포인트를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
- 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
엔드포인트 상세 정보 확인하기
엔드포인트 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
- 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 엔드포인트 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 엔드포인트 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명엔드포인트 삭제 엔드포인트를 삭제 상세 정보 엔드포인트의 상세 정보 확인 가능 YAML 엔드포인트의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 엔드포인트 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 엔드포인트의 메타데이터 정보를 확인 객체 정보 엔드포인트의 객체 정보를 확인 표. 엔드포인트 상세 정보 항목
엔드포인트 삭제하기
엔드포인트를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 엔드포인트를 클릭하세요. 엔드포인트 목록 페이지로 이동합니다.
- 엔드포인트 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 엔드포인트 목록 페이지에서 삭제하려는 항목을 선택하세요. 엔드포인트 상세 페이지로 이동합니다.
- 엔드포인트 상세 페이지에서 엔드포인트 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
인그레스 관리하기
인그레스는 Kubernetes Engine 내의 서비스에 대한 외부 접근(HTTP, HTTPS)을 관리하는 API 오브젝트로, 워크로드를 외부로 노출하기 위해 사용되며, L7 로드 밸런싱 기능을 제공합니다.
인그레스 생성하기
인그레스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
- 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
인그레스 상세 정보 확인하기
인그레스 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
- 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 인그레스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 인그레스 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명인그레스 삭제 인그레스를 삭제 상세 정보 인그레스의 상세 정보 확인 가능 YAML 인그레스의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 인그레스 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 인그레스의 메타데이터 정보를 확인 객체 정보 인그레스의 객체 정보를 확인 표. 인그레스 상세 정보 항목
인그레스 삭제하기
인그레스를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스를 클릭하세요. 인그레스 목록 페이지로 이동합니다.
- 인그레스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 인그레스 목록 페이지에서 삭제하려는 항목을 선택하세요. 인그레스 상세 페이지로 이동합니다.
- 인그레스 상세 페이지에서 인그레스 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
인그레스클래스 관리하기
인그레스클래스는 하나의 클러스터에 여러 인그레스 컨트롤러를 사용할 수 있게 하는 API 리소스를 말합니다. 각 인그레스에서는 클래스를 구현해야 하는 컨트롤러를 포함하여 구성이 포함된 인그레스클래스 리소스에 대한 참고 클래스를 지정해야 합니다.
인그레스클래스 생성하기
인그레스클래스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
- 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
인그레스클래스 상세 정보 확인하기
인그레스클래스 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
- 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 인그레스클래스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 인그레스클래스 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명인그레스클래스 삭제 인그레스클래스를 삭제 상세 정보 인그레스클래스의 상세 정보 확인 가능 YAML 인그레스클래스의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 인그레스클래스 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 인그레스클래스의 메타데이터 정보를 확인 객체 정보 인그레스클래스의 객체 정보를 확인 표. 인그레스클래스 상세 정보 항목
인그레스클래스 삭제하기
인그레스클래스를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 서비스 및 인그레스 메뉴 아래 인그레스클래스를 클릭하세요. 인그레스클래스 목록 페이지로 이동합니다.
- 인그레스클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 인그레스클래스 목록 페이지에서 삭제하려는 항목을 선택하세요. 인그레스클래스 상세 페이지로 이동합니다.
- 인그레스클래스 상세 페이지에서 인그레스클래스 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
1.2.5 - 스토리지 관리하기
Kubernetes Engine 이용 시 사용할 스토리지를 생성하고 관리할 수 있습니다. 스토리지는 PVC, PV, 스토리지클래스 항목별로 생성한 후 관리합니다.
PVC, PV, 스토리지클래스 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.
- 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
스토리지 유형별로 연계되는 항목은 다음과 같습니다.
| 유형 | 상세 설명 |
|---|---|
| 블록 스토리지 | Virtual Server 내 Block storage 상품과 연계하여 해당 상품의 Volume을 사용하는 스토리지 클래스를 지원 |
| 오브젝트 스토리지 | Samsung Cloud Platform 상품 또는 외부의 Object Storage와 연계 가능
|
| 파일 스토리지 | File Storage 상품과 연계하여 NFS 및 CIFS 프로토콜 Volume의 스토리지 클래스를 지원
|
PVC 관리하기
Persistent Volume Claim(PVC)은 필요한 스토리지 용량을 할당받기 위해 정의한 객체입니다. PVC는 추상화를 통해 높은 사용성을 제공하며, 컨테이너 라이프사이클(Container Lifecycle) 만료 시 데이터가 함께 소멸되는 문제를 방지할 수 있습니다(Data Persistence 유지).
PVC 생성하기
PVC를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
- PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
PVC 상세 정보 확인하기
PVC 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
- PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- PVC 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. PVC 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명상태 표시 PVC의 현재 상태를 표시합니다. - Bound: 정상 연결
PVC 삭제 PVC를 삭제 상세 정보 PVC의 상세 정보 확인 가능 YAML PVC의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 PVC 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 PVC의 메타데이터 정보를 확인 객체 정보 PVC의 객체 정보를 확인 표. PVC 상세 정보 항목
PVC 삭제하기
PVC를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PVC를 클릭하세요. PVC 목록 페이지로 이동합니다.
- PVC 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- PVC 목록 페이지에서 삭제하려는 항목을 선택하세요. PVC 상세 페이지로 이동합니다.
- PVC 상세 페이지에서 PVC 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
PVC 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 PVC를 삭제할 수 있습니다.
- PVC를 삭제하기 전, 삭제될 PV 및 볼륨의 백업 여부 등을 확인하세요.
PV 관리하기
Persistent Volume(PV)은 시스템 관리자가 Kubernetes Engine에 생성한 물리 디스크를 의미합니다.
PV 생성하기
PV를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
- PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
PV 상세 정보 확인하기
PV 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
- PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- PV 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. PV 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명 상태 표시 PV의 현재 상태를 표시합니다. - Bound: 정상 연결
PV 삭제 PV를 삭제 상세 정보 PV의 상세 정보 확인 가능 YAML PV의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 PV 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 PV의 메타데이터 정보를 확인 객체 정보 PV의 객체 정보를 확인 표. PV 상세 정보 항목
PV 삭제하기
PV를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 PV를 클릭하세요. PV 목록 페이지로 이동합니다.
- PV 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- PV 목록 페이지에서 삭제하려는 항목을 선택하세요. PV 상세 페이지로 이동합니다.
- 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-retain | Retain | 미지원 | nfsvers=3, noresvport | 기본 Volume (NFS) 설정과 연계 |
| bs-sc | Delete | 지원 | - | VirtualServer > BlockStorage 상품과 연계 |
| bs-sc-retain | Retain | 지원 | - | VirtualServer > BlockStorage 상품과 연계 |
- (*) default가 아닌 스토리지 클래스를 사용하려면 PVC의 spec.storageClassName에 스토리지 클래스명 지정 필요
- (**) 사용자가 직접 default 스토리지 클래스 변경 가능 (storageclass.kubernetes.io/is-default-class: “true” annotation 조정)
리클레임 정책의 특징은 다음과 같습니다.
- Delete: PVC를 삭제하면 해당 PV와 물리 데이터도 삭제됩니다.
- Retain: PVC를 삭제해도 해당 PV와 물리 데이터는 삭제되지 않고 유지됩니다. 워크로드에서 사용하지 않는 물리 데이터가 Storage에 남아있을 수 있으므로 용량관리에 주의가 필요합니다.
볼륨 확장 사용 시 다음 사항을 고려하세요.
- nfs-subdir-external-sc 스토리지 클래스
- PVC의 용량을 조정할 수 없습니다. (볼륨 확장 미지원)
- 모든 PV들은 File Storage 볼륨의 전체 용량을 공유하므로, 각 PVC의 볼륨 확장이 필요하지 않습니다.
- bs-sc 스토리지 클래스
- PVC 용량을 확장할 수 있습니다. (축소 기능 미지원)
- PVC에 요청된 용량만큼 해당 PV의 용량이 보장되는 것은 아닙니다. (8 Gi 단위 확장 지원)
스토리지클래스 생성하기
스토리지클래스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
- 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.참고스토리지클래스의 개념과 오브젝트 생성에 대한 자세한 내용은 쿠버네티스 공식 문서 > 스토리지 클래스를 참고하세요.
스토리지클래스 상세 정보 확인하기
스토리지클래스 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
- 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 스토리지클래스 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 스토리지클래스 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명스토리지클래스 삭제 스토리지클래스를 삭제 상세 정보 스토리지클래스의 상세 정보 확인 가능 YAML 스토리지클래스의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 스토리지클래스 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 스토리지클래스의 메타데이터 정보를 확인 객체 정보 스토리지클래스의 객체 정보를 확인 표. 스토리지클래스 상세 정보 항목
스토리지클래스 삭제하기
스토리지클래스를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 스토리지 메뉴 아래 스토리지클래스를 클릭하세요. 스토리지클래스 목록 페이지로 이동합니다.
- 스토리지클래스 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 스토리지클래스 목록 페이지에서 삭제하려는 항목을 선택하세요. 스토리지클래스 상세 페이지로 이동합니다.
- 스토리지클래스 상세 페이지에서 스토리지클래스 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.주의스토리지클래스 목록 페이지에서 삭제하려는 항목을 선택한 후, 삭제를 클릭하면 선택한 스토리지클래스를 삭제할 수 있습니다.
1.2.6 - 구성(Configuration) 관리하기
개발 및 운영 등 여러 환경에 따라 컨테이너 안쪽에서 변화하는 값들을 관리할 필요가 있을 때 환경 변수로 인해 별도의 이미지를 생성해 관리하는 것은 불편하고 비용적 낭비가 큽니다. 쿠버네티스에서는 외부에서 값들을 바꿀 수 있도록 환경 변수나 설정 값들을 변수로 관리해서 Pod가 생성될 때 넣어줄 수 있는대, 이때 컨피그맵(ConfigMap)과 시크릿(Secret)을 이용할 수 있습니다.
컨피그맵과 시크릿 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.
- 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 컨피크맵과 시크릿 서비스를 확인할 수 있습니다.
컨피그맵 관리하기
네임스페이스에서 사용하는 Config 정보들을 컨피그맵으로 작성해 관리할 수 있습니다.
컨피그맵 생성하기
컨피그맵을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
- 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
컨피그맵 상세 정보 확인하기
컨피그맵 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
- 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 컨피그맵 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 컨피그맵 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명컨피그맵 삭제 컨피그맵을 삭제 상세 정보 컨피그맵의 상세 정보 확인 가능 YAML 컨피그맵의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 컨피그맵 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 컨피그맵의 메타데이터 정보를 확인 객체 정보 컨피그맵의 객체 정보를 확인 - 데이터에서는
- - -로 행을 구분하며, value는 textarea 형식으로 표시함 - 이진 데이터의 value는 length 값을 출력함
표. 컨피그맵 상세 정보 항목
컨피그맵 삭제하기
컨피그맵을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 컨피그맵을 클릭하세요. 컨피그맵 목록 페이지로 이동합니다.
- 컨피그맵 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 컨피그맵 목록 페이지에서 삭제하려는 항목을 선택하세요. 컨피그맵 상세 페이지로 이동합니다.
- 컨피그맵 상세 페이지에서 컨피그맵 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
시크릿 관리하기
시크릿을 사용하면 비밀번호, OAuth 토큰, SSH 키와 같은 민감한 정보를 안전하게 저장하고 관리할 수 있습니다.
시크릿 생성하기
시크릿을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
- 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
시크릿 상세 정보 확인하기
시크릿 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
- 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 시크릿 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 시크릿 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명시크릿 삭제 시크릿을 삭제 상세 정보 시크릿의 상세 정보 확인 가능 YAML 시크릿의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 시크릿 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 시크릿의 메타데이터 정보를 확인 객체 정보 시크릿의 객체 정보를 확인 표. 시크릿 상세 정보 항목
시크릿 삭제하기
시크릿을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 구성 메뉴 아래 시크릿을 클릭하세요. 시크릿 목록 페이지로 이동합니다.
- 시크릿 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 시크릿 목록 페이지에서 삭제하려는 항목을 선택하세요. 시크릿 상세 페이지로 이동합니다.
- 시크릿 상세 페이지에서 시크릿 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
1.2.7 - 권한 관리하기
쿠버네티스 클러스터를 여러 사용자가 접소하는 경우 특정 API 또는 네임스페이스별로 권한을 부여해 접근 범위를 지정할 수 있습니다. 쿠버네티스의 역할 기반 권한 관리(RBAC, Role-based access control) 기능을 적용해 클러스터나 네임스페이스별로 권한을 설정할 수 있습니다. 클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩을 생성하고 관리할 수 있습니다.
클러스터롤, 클러스터롤바인딩, 롤, 롤바인딩 서비스는 서비스 생성 시 선택한 클러스터(네임스페이스)로 기본 설정됩니다. 목록의 다른 항목을 선택해도 기본 클러스터(네임스페이스) 설정이 유지됩니다.
- 다른 클러스터(네임스페이스)를 선택하려면 목록 오른쪽의 톱니바퀴 버튼을 클릭하세요. 클러스터/네임스페이스 설정 팝업창에서 변경할 클러스터와 네임스페이스를 선택하고 확인 버튼을 클릭하세요. 선택한 클러스터/네임스페이스에 생성된 서비스를 확인할 수 있습니다.
- RBAC API는 다음 네 가지 종류의 쿠버네티스 개체를 선언합니다.
- Role
- ClusterRole
- RoleBinding
- ClusterRoleBinding
- RBAC 설명 및 수정에 대한 자세한 설명은 쿠버네티스 인증 및 인가 항목을 참고하세요.(https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
클러스터롤 관리하기
클러스터 단위로 접근 권한을 설정하고 관리할 수 있습니다. 또한 네임스페이스에 한정되지 않는 API 또는 리소스에 대한 권한도 설정할 수 있습니다.
클러스터롤 생성하기
클러스터롤을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
- 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
클러스터롤 상세 정보 확인하기
클러스터롤 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
- 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 클러스터롤 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 클러스터롤 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명클러스터롤 삭제 클러스터롤을 삭제 상세 정보 클러스터롤의 상세 정보 확인 가능 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 동사를 의미
- 자세한 내용은 쿠버네티스 공식 문서 > API Verbs을 참고
표. 클러스터롤 상세 정보 항목
클러스터롤 삭제하기
클러스터롤을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤을 클릭하세요. 클러스터롤 목록 페이지로 이동합니다.
- 클러스터롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 클러스터롤 목록 페이지에서 삭제하려는 항목을 선택하세요. 클러스터롤 상세 페이지로 이동합니다.
- 클러스터롤 상세 페이지에서 클러스터롤 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
클러스터롤바인딩 관리하기
클러스터롤과 특정 대상을 연결해 클러스터롤바인딩을 생성하고 관리할 수 있습니다.
클러스터롤바인딩 생성하기
클러스터롤바인딩을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
- 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
클러스터롤바인딩 상세 정보 확인하기
클러스터롤바인딩 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
- 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 클러스터롤바인딩 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 클러스터롤바인딩 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명클러스터롤바인딩 삭제 클러스터롤바인딩을 삭제 상세 정보 클러스터롤바인딩의 상세 정보를 확인 YAML 클러스터롤바인딩의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 클러스터롤바인딩 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 클러스터롤바인딩의 메타데이터 정보를 확인 롤/대상 정보 클러스터롤의 역할 및 대상 정보를 확인 표. 클러스터롤바인딩 상세 정보 항목
클러스터롤바인딩 삭제하기
클러스터롤바인딩을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 클러스터롤바인딩을 클릭하세요. 클러스터롤바인딩 목록 페이지로 이동합니다.
- 클러스터롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 클러스터롤바인딩 목록 페이지에서 삭제하려는 항목을 선택하세요. 클러스터롤바인딩 상세 페이지로 이동합니다.
- 클러스터롤바인딩 상세 페이지에서 클러스터롤바인딩 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
롤 관리하기
롤은 특정 API 또는 리소스에 대한 권한을 명시한 규칙을 말합니다. 해당 롤이 속한 네임스페이스에만 접근할 수 있는 권한을 생성하고 관리할 수 있습니다.
롤 생성하기
롤을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤을 클릭하세요. 롤 목록 페이지로 이동합니다.
- 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
롤 상세 정보 확인하기
롤 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤을 클릭하세요. 롤 목록 페이지로 이동합니다.
- 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 롤 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 롤 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 쿠버네티스 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명롤 삭제 롤을 삭제할 상세 정보 롤의 상세 정보를 확인 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 동사를 의미
- 자세한 내용은 쿠버네티스 공식 문서 > API Verbs을 참고
표. 롤 상세 정보 항목
롤 삭제하기
롤을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤을 클릭하세요. 롤 목록 페이지로 이동합니다.
- 롤 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 롤 목록 페이지에서 삭제하려는 항목을 선택하세요. 롤 상세 페이지로 이동합니다.
- 롤 상세 페이지에서 롤 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
롤바인딩 관리하기
롤과 특정 대상을 연결해 롤바인딩을 생성하고 관리할 수 있습니다.
롤바인딩 생성하기
롤바인딩을 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
- 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 오브젝트 생성을 클릭하세요.
- 오브젝트 생성 팝업창에서 오브젝트 정보를 입력하고 확인 버튼을 클릭하세요.
롤바인딩 상세 정보 확인하기
롤바인딩 상세 정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
- 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 롤바인딩 목록 페이지에서 상세 정보를 확인하려는 항목을 선택하세요. 롤바인딩 상세 페이지로 이동합니다.
- 목록 상단의 시스템 객체 표시를 선택하면 Kubernetes 객체 항목을 제외한 나머지 항목이 표시됩니다.
- 각 탭을 클릭하여 서비스 정보를 확인하세요.
구분 상세 설명롤바인딩 삭제 롤바인딩을 삭제 상세 정보 롤바인딩의 상세 정보를 확인 YAML 롤바인딩의 리소스 파일을 YAML 편집기에서 수정 가능 - 편집 버튼을 클릭하고 리소스를 수정한 후, 저장 버튼을 클릭하여 변경 사항을 적용
이벤트 롤바인딩 내에서 발생한 이벤트를 확인 Account 정보 Account 이름, 위치, 생성 일시 등, Account에 대한 기본적인 정보를 확인 메타데이터 정보 롤바인딩의 메타데이터 정보를 확인 롤/대상 정보 롤의 역할 및 대상 정보를 확인 표. 롤바인딩 상세 정보 항목
롤바인딩 삭제하기
롤바인딩을 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Kubernetes Engine 메뉴를 클릭하세요. Kubernetes Engine의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 권한 메뉴 아래 롤바인딩을 클릭하세요. 롤바인딩 목록 페이지로 이동합니다.
- 롤바인딩 목록 페이지에서 클러스터와 네임스페이스를 왼쪽 상단의 톱니바퀴 버튼에서 선택 후, 확인을 클릭하세요.
- 롤바인딩 목록 페이지에서 삭제하려는 항목을 선택하세요. 롤바인딩 상세 페이지로 이동합니다.
- 롤바인딩 상세 페이지에서 롤바인딩 삭제를 클릭하세요.
- 알림 확인창이 나타나면 확인 버튼을 클릭하세요.
1.3 - Kubernetes Engine 활용
Kubernetes Engine 활용을 위한 가이드를 제공합니다.
Kubernetes Engine 활용 제공 가이드
Kubernetes Engine 활용에서는 아래의 기능을 설명하고 있습니다. 자세한 내용은 해당 가이드를 참고하세요.
| 제공 가이드 | 설명 |
|---|---|
| 클러스터 접근하기 | kubectl 설치 및 사용 방법, kubeconfig 다운로드, kubectl 플러그인을 이용한 로그인 방법 안내
|
| 인증 및 인가 | 인증 및 인가 기능과 Kubernetes Engine과 IAM의 연계 방법에 대해 설명
|
| type LoadBalancer 서비스 구성하기 | Service 매니페스트 파일을 통해 LoadBalancer 형식(type)의 Service를 구성 방법 안내
|
| 사용 시 고려사항 | SKE 사용 시 제약사항 설명
|
| 버전 정보 | Kubernetes 버전 및 지원 기간 설명
|
1.3.1 - 클러스터 접근하기
kubectl 설치 및 사용 방법
Kubernetes Engine 서비스를 생성한 후 쿠버네티스 커맨드 라인 도구인 kubectl을 사용하면 쿠버네티스 클러스터에 대해 명령을 실행할 수 있습니다. kubectl을 사용하여 애플리케이션을 배포하고, 클러스터 리소스를 검사 및 관리하고 로그를 볼 수 있습니다. 다음과 같은 쿠버네티스 공식 문서에서 kubectl을 설치하여 사용하는 방법을 확인할 수 있습니다.
| 구분 | 참고 URL |
|---|---|
| kubectl 설치 (리눅스) | https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/ |
| kubectl 설치 (윈도우) | https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/ |
| kubectl 소개 | https://kubernetes.io/docs/reference/kubectl/ |
| kubectl 퀵 레퍼런스 | https://kubernetes.io/docs/reference/kubectl/quick-reference/ |
| kubectl 명령어 레퍼런스 | https://kubernetes.io/docs/reference/kubectl/kubectl/ |
클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 합니다. 예를 들어, 클러스터의 버전이 1.30이라면 kubectl 버전 1.29, 1.30, 1.31을 사용할 수 있습니다.
- kubectl의 version skew policy에 대해서 다음 문서를 참고하세요. https://kubernetes.io/releases/version-skew-policy/#kubectl
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> #### 작성 필요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- 인증키 생성에 관한 자세한 내용은 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 timeoutAUTHKEY_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 인증에 성공한 경우
$ 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 10dAUTHKEY_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 scope1.3.2 - 인증 및 인가
Kubernetes Engine에는 쿠버네티스의 인증 및 RBAC 인가 기능이 적용되어 있습니다. 쿠버네티스의 인증 및 인가 기능과 Kubernetes Engine과 IAM의 연계 방법에 대해 설명합니다.
쿠버네티스 인증 및 인가
쿠버네티스의 인증 및 RBAC 인가 기능을 설명합니다.
인증
쿠버네티스 API 서버는 인증서나 인증 토큰으로부터 사용자(User)나 서비스어카운트(ServiceAccount)의 인증에 필요한 정보를 취득하여 인증 절차를 진행합니다.
인가
쿠버네티스 API 서버는 인증 과정을 통해 얻은 사용자 정보를 이용하여 RBAC 관련 오브젝트로부터 해당 사용자가 요청한 작업에 대한 권한이 있는지를 확인합니다. RBAC 관련 오브젝트는 다음과 같이 4가지 종류가 있습니다.
| 오브젝트 | 범위 | 설명 |
|---|---|---|
| 클러스터롤(ClusteRole) | 클러스터 범위(cluster-wide) | 클러스터의 모든 네임스페이스에 걸친 권한 정의 |
| 클러스터롤바인딩(ClusteRoleBinding) | 클러스터 범위(cluster-wide) | 클러스터롤과 사용자와의 연결 정의 |
| 롤(Role) | 네임스페이스(namespace) | 특정 네임스페이스에 대한 권한 정의 |
| 롤바인딩(RoleBinding) | 네임스페이스(namespace) | 클러스터롤 또는 롤과 사용자와의 연결 정의 |
롤
쿠버네티스에는 여러 클러스터롤이 기본 정의되어 있습니다. 그중 일부 클러스터롤에는 접두어(system:)가 포함되어 있지 않습니다. 이는 사용자용으로 사용할 것을 염두에 둔 클러스터롤입니다. 여기에는 클러스터롤바인딩을 사용하여 클러스터 전체에 적용할 슈퍼유저 롤(cluster-admin)과 롤바인딩을 사용하여 특정 네임스페이스에 적용할 롤(admin, edit, view)이 포함됩니다.
| 기본 클러스터롤 | 기본 클러스터롤바인딩 | 설명 |
|---|---|---|
| cluster-admin | system:masters 그룹 | 모든 리소스에 대한 모든 작업을 수행할 수 있는 슈퍼유저 액세스를 허용합니다.
|
| admin | 없음 | 롤바인딩을 사용하여 네임스페이스 내부에 적용되는 관리자 액세스를 허용합니다. 롤바인딩에서 사용하는 경우 네임스페이스 내에 롤 및 롤바인딩을 생성하는 기능을 포함하여 네임스페이스 내 대부분의 리소스에 대한 읽기/쓰기 액세스를 허용합니다. 이 롤은 리소스 할당량 또는 네임스페이스 자체에 대한 쓰기 액세스는 허용하지 않습니다. |
| edit | 없음 | 네임스페이스 내 대부분의 오브젝트에 대한 읽기/쓰기 액세스를 허용합니다.
|
| view | 없음 | 네임스페이스 내 대부분의 오브젝트를 조회하기 위한 읽기 전용 액세스를 허용합니다. 롤 또는 롤바인딩은 조회할 수 없습니다.
|
필요에 따라 기본 정의된 클러스터롤 이외에, 다음과 같이 별도의 롤(또는 클러스터롤)을 정의할 수도 있습니다.
# "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"]롤바인딩
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 사용자 그룹과 연결됩니다.
롤바인딩/클러스터롤바인딩의 subjects.name은 다음과 같이 지정할 수 있습니다.
- User인 경우: Samsung Cloud Platform 개별 사용자명 (예: jane.doe)
- Group인 경우: Samsung Cloud Platform IAM 사용자 그룹명 (예: ReadPodsGroup)
이러한 방식으로 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클러스터에 위와 같은 롤바인딩이 생성되면, 사용자명이 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클러스터에 위와 같은 롤바인딩이 생성되면, 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클러스터에 위와 같은 클러스터롤바인딩이 생성되면, IAM 사용자 그룹 ReadNodesGroup에 속한 사용자들에게 클러스터롤 node-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.
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-admin과 view는 쿠버네티스 클러스터 내부에 사전 정의되어 있습니다. 자세한 설명은 롤을 참고하세요.
| 클러스터롤바인딩 | 클러스터롤 | subjects (사용자) |
|---|---|---|
| scp-cluster-admin | cluster-admin | 클러스터 생성자 사용자명 (예: jane.doe) |
| scp-view | view | - |
| scp-namespace-view | scp-namespace-view | 해당 클러스터에 인증된 모든 사용자 |
- 클러스터롤바인딩 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.ioapiVersion: 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-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.ioapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: scp-view
roleRef:
kind: ClusterRole
name: view
apiGroup: rbac.authorization.k8s.io클러스터롤 및 클러스터롤바인딩 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.ioapiVersion: 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.ioIAM 사용자 그룹 RBAC 유스케이스
이 챕터에서는 주요 사용자 시나리오별로 권한을 부여하는 예시를 설명합니다. 여기에 제시된 IAM 사용자 그룹, 클러스터롤바인딩/롤바인딩, 클러스터롤의 이름은 이해를 돕기 위한 하나의 예시입니다. 관리자는 필요에 맞게 적절한 이름과 권한을 정의하여 적용하세요.
| 범위 | 유스케이스 | IAM 사용자 그룹 | 클러스터롤바인딩/롤바인딩 | 클러스터롤 | 비고 |
|---|---|---|---|---|---|
| 클러스터 | 클러스터 관리자 | ClusterAdminGroup | 클러스터롤바인딩 cluster-admin-group | cluster-admin | 특정 클러스터에 대한 관리자 |
| 클러스터 | 클러스터 편집자 | ClusterEditGroup | 클러스터롤바인딩 cluster-edit-group | edit | 특정 클러스터에 대한 편집자 |
| 클러스터 | 클러스터 조회자 | ClusterViewGroup | 클러스터롤바인딩 cluster-view-group | view | 특정 클러스터에 대한 조회자 |
| 네임스페이스 | 네임스페이스 관리자 | NamespaceAdminGroup | 롤바인딩 namespace-admin-group | admin | 특정 네임스페이스에 대한 관리자 |
| 네임스페이스 | 네임스페이스 편집자 | NamespaceEditGroup | 롤바인딩 namespace-edit-group | edit | 특정 네임스페이스에 대한 편집자 |
| 네임스페이스 | 네임스페이스 조회자 | NamespaceViewGroup | 롤바인딩 namespace-view-group | view | 특정 네임스페이스에 대한 조회자 |
클러스터 관리자
클러스터 관리자를 생성하려면 다음 절차를 따르세요.
- ClusterAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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과 연계되어, 해당 클러스터에 대한 관리자 권한이 부여됩니다.
클러스터 편집자
클러스터 편집자를 생성하려면 다음 절차를 따르세요.
- ClusterEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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와 연계되어, 해당 클러스터에 대한 편집자 권한이 부여됩니다.
클러스터 조회자
클러스터 조회자를 생성하려면 다음 절차를 따르세요.
- ClusterViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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와 연계되어, 해당 클러스터에 대한 조회자 권한이 부여됩니다.
네임스페이스 관리자
네임스페이스 관리자를 생성하려면 다음 절차를 따르세요.
- NamespaceAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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과 연계되어, 해당 네임스페이스에 대한 관리자 권한이 부여됩니다.
네임스페이스 편집자
네임스페이스 편집자를 생성하려면 다음 절차를 따르세요.
- NamespaceEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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와 연계되어, 해당 네임스페이스에 대한 편집자 권한이 부여됩니다.
네임스페이스 조회자
네임스페이스 조회자를 생성하려면 다음 절차를 따르세요.
- NamespaceViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
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.ioapiVersion: 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와 연계되어, 해당 네임스페이스에 대한 조회자 권한이 부여됩니다.
1.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를 작성해 적용하려면 다음 절차를 따르세요.
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: LoadBalancerapiVersion: 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 작성 예시 kubectl apply 명령어를 사용해 Service 매니페스트를 배포합니다.
배경색 변경kubectl apply -f my-lb-svc.yamlkubectl apply -f my-lb-svc.yaml코드 블럭. kubectl apply 명령어로 Service 매니페스트 배포
- type LoadBalancer Service가 생성되면, 그에 대응되는 Load Balancer 서비스가 자동으로 생성됩니다. 구성이 완료될 때까지 몇 분 가량 소요될 수 있습니다.
- 자동으로 생성된 Load Balancer 서비스 및 LB 서버그룹을 임의로 변경하지 마세요. 변경 사항이 원복되거나 예기치 않은 동작이 발생할 수 있습니다.
- 설정 가능한 상세 기능에 대해서는 어노테이션 상세 설정을 참고하세요.
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 # 타입 로드밸런서Kubernetes Engine의 type Load Balancer Service에서 지원하는 프로토콜(protocol과 appProtocol) 목록과 그에 따라 Load Balancer 서비스에 적용되는 설정은 다음과 같습니다.
| 구분 | (k8s) protocol | (k8s) appProtocol | (LB) 서비스 구분 | (LB) LB Listener | (LB) LB 서버그룹 | (LB) 헬스체크 |
|---|---|---|---|---|---|---|
| L4 TCP | TCP | (tcp) | L4 | TCP {port} | TCP {nodePort} | TCP {nodePort} |
| L4 UDP | UDP | - | L4 | UDP {port} | UDP {nodePort} | TCP {nodePort} |
| L7 HTTP | TCP | http | L7 | HTTP {port} | TCP {nodePort} | TCP/HTTP {nodePort} |
| L7 HTTPS | TCP | https | L7 | HTTPS {port} | TCP {nodePort} | TCP/HTTP {nodePort} |
- 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: LoadBalancerapiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app.kubernetes.io/name: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
type: LoadBalancerL7 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
어노테이션 상세 설정
서비스 매니페스트에 어노테이션을 추가해 상세 기능을 설정할 수 있습니다.
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-rules | All | false | true, false | false | 방화벽 규칙( LB source ranges → LB 서비스 IP )을 자동으로 추가 |
| service.beta.kubernetes.io/scp-load-balancer-snat-healthcheck-firewall-rules | All | false | true,false | false | 방화벽 규칙( LB Source NAT IP, HealthCheck IP → 멤버 IP:Port )을 자동으로 추가
|
| 어노테이션 | 프로토콜 | 기본값 | 허용값 | 예시 | 설명 |
|---|---|---|---|---|---|
| service.beta.kubernetes.io/scp-load-balancer-security-group-id | All | - | UUID | 92d84b44-ee71-493d-9782-3a90481ce5f3 | 지정한 ID에 해당하는 Security Group에 규칙을 자동으로 추가
|
| service.beta.kubernetes.io/scp-load-balancer-security-group-name | All | - | 문자열 | security-group-1 | 지정한 Name에 해당하는 Security Group에 규칙을 자동으로 추가
|
| 어노테이션 | 프로토콜 | 기본값 | 허용값 | 예시 | 설명 |
|---|---|---|---|---|---|
| service.beta.kubernetes.io/scp-load-balancer-layer-type | All | L4 | L4, L7 | L4 | Load Balancer의 서비스 구분을 지정
|
| service.beta.kubernetes.io/scp-load-balancer-subnet-id | All | - | ID | 7f05eda5e1cf4a45971227c57a6d60fa | Load Balancer의 Service Subnet을 지정
|
| service.beta.kubernetes.io/scp-load-balancer-service-ip | All | - | IP 주소 | 192.168.10.7 | Load Balancer의 Service IP를 지정
|
| service.beta.kubernetes.io/scp-load-balancer-public-ip-enabled | All | false | true, false | false | Load Balancer의 Public NAT IP 사용 여부를 지정
|
| service.beta.kubernetes.io/scp-load-balancer-public-ip-id | All | - | ID | 4119894bd9614cef83db6f8dda667a20 | Load Balancer의 Public NAT IP로 사용할 Public IP의 ID를 지정
|
| 어노테이션 | 프로토콜 | 기본값 | 허용값 | 예시 | 설명 |
|---|---|---|---|---|---|
| service.beta.kubernetes.io/scp-load-balancer-response-timeout | HTTP, HTTPS | 0 | 0 - 120 | 60 | LB Listener의 응답 시간 초과(초)를 지정
|
| service.beta.kubernetes.io/scp-load-balancer-session-duration-time | All | 120 | 0 - 120 | 120 | LB Listener의 세션 유지 시간(초)을 지정
|
| service.beta.kubernetes.io/scp-load-balancer-insert-client-ip | TCP | false | true, false | false | LB Listener의 Insert Client IP를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-x-forwarded-proto | HTTP, HTTPS | false | true, false | false | LB Listener의 X-Forwarded-Proto 헤더 사용 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-x-forwarded-port | HTTP, HTTPS | false | true, | false | LB Listener의 X-Forwarded-Port 헤더 사용 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-x-forwarded-for | HTTP, HTTPS | false | true, false | false | LB Listener의 X-Forwarded-For 헤더 사용 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-support-http2 | HTTP, HTTPS | false | true, false | false | LB Listener의 HTTP 2.0 지원 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-persistence | TCP, HTTP, HTTPS | "" | "", source-ip, cookie | source-ip | LB Listener의 지속성(선택 안함, 소스 IP, 쿠키 중 하나)을 지정
|
| service.beta.kubernetes.io/scp-load-balancer-client-cert-id | HTTPS | - | UUID | 78b9105e00324715b63700933125fa83 | LB Listener의 클라이언트 SSL 인증서의 ID를 지정
|
| service.beta.kubernetes.io/scp-load-balancer-client-cert-level | HTTPS | HIGH | HIGH, NORMAL, LOW | HIGH | LB Listener의 클라이언트 SSL 인증서의 보안 수준을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-server-cert-level | HTTPS | - | HIGH, NORMAL, LOW | HIGH | LB Listener의 서버 SSL 인증서의 보안 수준을 지정 |
| 어노테이션 | 프로토콜 | 기본값 | 허용값 | 예시 | 설명 |
|---|---|---|---|---|---|
| service.beta.kubernetes.io/scp-load-balancer-lb-method | All | ROUND_ROBIN | ROUND_ROBIN, LEAST_CONNECTION, IP_HASH | ROUND_ROBIN | LB 서버 그룹의 부하 분산 정책을 지정 |
| 어노테이션 | 프로토콜 | 기본값 | 허용값 | 예시 | 설명 |
|---|---|---|---|---|---|
| service.beta.kubernetes.io/scp-load-balancer-health-check-enabled | All | true | true, false | true | LB 헬스 체크의 사용 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-protocol | All | TCP | TCP, HTTP | TCP | LB 헬스 체크의 프로토콜을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-port | All | {nodeport} | 1 - 65534 | 30000 | LB 헬스 체크의 헬스 체크 포트를 지정
|
| service.beta.kubernetes.io/scp-load-balancer-health-check-count | All | 3 | 1 - 10 | 3 | LB 헬스 체크의 탐지 횟수를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-interval | All | 5 | 1 - 180 | 5 | LB 헬스 체크의 주기를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-timeout | All | 5 | 1 - 180 | 5 | LB 헬스 체크의 대기 시간을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-http-method | HTTP | GET | GET, POST | GET | LB 헬스 체크의 HTTP method를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-url | HTTP | / | 문자열 | /healthz | LB 헬스 체크의 URL을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-response-code | HTTP | 200 | 200 - 500 | 200 | LB 헬스 체크의 응답 코드를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-health-check-request-data | HTTP | - | 문자열 | username=admin&password=1234 | LB 헬스 체크의 요청 문자열을 지정
|
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-enabled | All | true | true, false | true | Service의 {port} 포트 번호에 대한 LB 헬스 체크 사용 여부를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-protocol | All | TCP | TCP, HTTP | TCP | Service의 {port} 포트 번호에 대한 LB 헬스 체크 프로토콜을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-port | All | - | 1 - 65534 | 30000 | Service의 {port} 포트 번호에 대한 LB 헬스 체크 헬스 체크 포트를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-count | All | 3 | 1 - 10 | 3 | Service의 {port} 포트 번호에 대한 LB 헬스 체크 탐지 횟수를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-interval | All | 5 | 1 - 180 | 5 | Service의 {port} 포트 번호에 대한 LB 헬스 체크 주기를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-timeout | All | 5 | 1 - 180 | 5 | Service의 {port} 포트 번호에 대한 LB 헬스 체크 대기 시간을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-http-method | HTTP | GET | GET, POST | GET | Service의 {port} 포트 번호에 대한 LB 헬스 체크 HTTP method를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-url | HTTP | / | 문자열 | /healthz | Service의 {port} 포트 번호에 대한 LB 헬스 체크 URL을 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-response-code | HTTP | 200 | 200 - 500 | 200 | Service의 {port} 포트 번호에 대한 LB 헬스 체크 응답 코드를 지정 |
| service.beta.kubernetes.io/scp-load-balancer-port-{port}-health-check-request-data | HTTP | - | 문자열 | username=admin&password=1234 | Service의 {port} 포트 번호에 대한 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 패턴("/")이 적용됨
| - |
1.3.4 - 사용 시 고려사항
관리형 포트 제약사항
다음 포트들은 SKE 관리를 위해 사용되므로 서비스 이용에는 사용할 수 없습니다. 또한 OS 방화벽 등으로 차단하는 경우, 노드 기능 또는 일부 기능이 정상 작동하지 않을 수 있습니다.
| 포트 | 설명 |
|---|---|
| UDP 4789 | calico-vxlan |
| TCP 5473 | calico-typha |
| TCP 10250 | kubelet |
| TCP 19100 | node-exporter |
| TCP 19400 | dcgm-exporter |
kube-reserved 리소스 제약사항
kube-reserved는 노드에서 파드로 실행되지 않는 시스템 데몬에 대한 리소스를 확보하기 위해 예약해두는 기능입니다.
- 파드로 실행되지 않는 시스테 데몬에는 kubelet, container runtime 등이 있습니다.
kube-reserved에 대한 자세한 사항은 다음 문서를 참고하세요.
Kubernetes Engine은 다음과 같은 기준으로 CPU 및 메모리를 예약합니다.
| 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 CPU | 70 m | 80 m | 90 m | 110 m |
- 예시: 메모리 크기에 따라 예약되는 리소스는 다음과 같습니다.
| 메모리 사양 | 리소스 사양1 | 리소스 사양2 | 리소스 사양3 | 리소스 사양4 | 리소스 사양4 | 리소스 사양4 | 리소스 사양4 |
|---|---|---|---|---|---|---|---|
| kube-reserved 메모리 | 1 GB | 1.8 GB | 2.6 GB | 3.56 GB | 5.48 GB | 9.32 GB | 11.88 GB |
1.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 EOL | SKE 출시 | SKE EoTS |
|---|---|---|---|---|
| v1.29 | 2023-12-13 | 2025-02-28 | 2024-10 | 2026-03-31 |
| v1.30 | 2024-04-17 | 2025-06-28 | 2025-02 | 2026-06-30 |
| v1.31 | 2024-08-13 | 2025-10-28 | 2025-07 | 2026-10-28 |
| v1.32 | 2024-12-11 | 2026-02-28 | 2025-10 | 2027-02-28 |
| v1.33 | 2025-04-23 | 2026-06-28 | 2025-12 | 2027-06-28 |
기술 지원 종료(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 Capacity | GPU |
|---|---|---|
| v1.29 |
|
|
| v1.30 |
|
|
| v1.31 |
|
|
| v1.32 |
|
|
| v1.33 |
|
|
1.4 - API Reference
1.5 - CLI Reference
1.6 - Release Note
Kubernetes Engine
- Kubernetes Engine 기능 변경
- Kubernetes v1.32 버전을 지원합니다.
- 노드 풀 고급 설정 기능을 제공합니다.
- 노드 풀 서버 그룹(Affinity or Anti-affinity) 설정 기능을 제공합니다.
- 관리자 Kubeconfig 다운로드 버튼에 이어 사용자 Kubeconfig 다운로드 기능을 제공합니다.
- 노드 풀 업그레이드 시, OS 버전을 고려한 업그레이드 로직을 추가로 제공합니다.
- ServiceWatch 연계 기반 로그 수집 기능을 제공합니다.
- Kubernetes Engine 기능 변경
- Kubernetes v1.31 버전을 지원합니다.
- 클러스터의 퍼블릭 엔드포인트를 제공합니다.
- 클러스터의 프라이빗 엔드포인트 접근제어 대상에 MNGC(Baremetal) 상품과 DevOps Service 상품이 추가됩니다.
- 노드 풀 Label 및 Taint 설정 기능을 제공합니다.
- Block Storage CSI 및 kubectl login 플러그인 기능을 제공합니다.
- kubeconfig 취약점이 개선되었습니다.
- Kubernetes Engine 기능 변경
- 프라이빗 엔드포인트 및 접근제어 기능을 제공합니다.
- type: LoadBalancer 기능을 제공합니다.
- Kubernetes Engine 기능 변경
- Kubernetes v1.30 버전을 지원합니다.
- 클라스터 및 노드 풀의 Kubernetes 버전 업그레이드 기능을 제공합니다.
- Multi-Security Group 기능을 제공합니다.
- Custom Image 노드 및 GPU 노드 생성 기능을 제공합니다.
- Samsung Cloud Platform 공통 기능 변경
- Account, IAM 및 Service Home, 태그 등 공통 CX 변경 사항을 반영하였습니다.
- 경량화된 가상 컴퓨팅인 Container와 이를 관리하기 위한 Kubernetes 클러스터를 제공하는 Kuberntes Engine 상품을 출시하였습니다.
- Container 노드 들을 생성하고 클러스터를 통해 통합 관리 하여 다양한 Container 애플리케이션 배포가 가능합니다.
- Kuberntes Engine 상품 Beta 버전을 출시하였습니다.
2 - Container Registry
2.1 - Overview
서비스 개요
Container Registry는 컨테이너 이미지와 OCI (Open Container Initiative) 표준 아티팩트를 보관하고 관리하는 레지스트리를 제공하는 서비스입니다. 사용자는 도커(Docker) CLI를 활용하여 손쉽게 이미지를 저장하고 관리, 공유할 수 있습니다.
특장점
- 간편한 레지스트리 관리 및 이미지 배포: Samsung Cloud Platform에서 프로젝트를 위한 컨테이너 레지스트리를 간편하게 생성할 수 있습니다. 표준 도커 CLI를 활용해 배포를 위한 이미지를 Container Registry에서 손쉽게 가져올 수 있어 개발 및 서비스 배포 흐름을 간소화할 수 있습니다.
- 효율적인 컨테이너 이미지 보관: 언제 어디서든 손쉽게 컨테이너 이미지 보관이 가능합니다. Object Storage와 연동하여 이미지를 보관하고 불러올 수 있어 효율적인 이미지 관리가 가능합니다. 또한 도커 레지스트리 V2 API 사양을 지원하여 편리하게 사용할 수 있습니다.
- 보안이 강화된 레지스트리 관리: Container Registry를 이용하여 이미지를 안전하게 보관하고 사용할 수 있습니다. Container Registry는 Object Storage에 이미지를 암호화하여 저장하고 HTTPS를 통해 이미지를 전송합니다. Samsung Cloud Platform의 IAM 리소스 기반 정책을 사용하여 리포지토리별 접근 권한을 설정하고, 설정한 권한에 따라 이미지를 사용할 수 있습니다.
- 컨테이너 이미지 취약점 분석: Container Registry는 저장된 컨테이너 이미지의 보안 취약점을 분석하는 기능을 제공합니다. 사용자가 이미지를 선택하고 스캔하는 간단한 방식으로 취약점 결과를 확인할 수 있으며, 분석 결과를 기반으로 취약점을 식별하고 제거할 수 있습니다.
서비스 구성도
제공 기능
Container Registry 는 다음과 같은 기능을 제공하고 있습니다.
- 레지스트리 관리: Container Registry 생성, 삭제, 레지스트리 접근제어 관리 (프라이빗), 가시성 기능을 제공합니다.
- 리포지토리 관리: Container Registry 하위에 생성되며 Repository 생성, 조회, 삭제, 보안정책 설정 기능을 제공합니다.
- 이미지 관리: Repository 안에 저장되는 Container Image 들이며, 이미지 Push, 이미지 Pull, 조회, 삭제, 적용된 태그 관리, 보안정책 설정 기능을 제공합니다.
- 이미지 취약점 점검: Container Registry에 저장된 이미지의 OS 패키지와 Language 패키지 보안 취약점과 이미지에 포함된 Secret을 수동 또는 자동으로 점검할 수 있습니다. 사용자는 점검 결과 기반으로 알려진 취약점(CVE)과 Secret을 식별하고 제거하여 안전하지 않은 이미지의 사용을 방지할 수 있습니다.
구성 요소
레지스트리
레지스트리(Registry)는 컨테이너 이미지를 저장하고 엑세스하고 관리하는데 사용되는 리포지토리 또는 리포지토리 컬렉션입니다. 컨테이너 레지스트리는 종종 개발 및 운영 프로세스의 일부로 컨테이너 기반 애플리케이션 개발을 지원할 수 있습니다. Docker와 Kubernetes 같은 컨테이너 오케스트레이션 플랫폼에 직접 연결할 수 있습니다. 레지스트리는 시스템 간에 컨테이너 이미지를 공유하는 중개자 역할을 하여 개발자가 클라우드 네이티브 애플리케이션을 생성하고 제공하는데 드는 시간을 절약해 줍니다. Samsung Cloud Platform의 경우 Object Storage와 연동하여 제공되며 HTTPS를 통해 이미지를 전송합니다.
리포지토리
리포지토리(Repository)는 이미지 태그의 논리적 관리 단위입니다. 리포지토리를 이용하면 이미지 태그를 효율적으로 관리할 수 있습니다. 리포지토리는 개발자가 애플리케이션 소스 코드를 변경 및 관리하는 데 사용하는 중앙화된 가상 스토리지입니다. 애플리케이션 개발 시 다양한 유형의 문서와 소스코드를 저장하고 공유가 필요한 상황일때, 개발자로 하여금 동일 Account 내에서 쉽게 협업하고 동시에 편집하며, 변경 사항을 추적/관리 할 수 있습니다.
이미지
이미지란 컨테이너 실행에 필요한 모든 파일과 설정값 등을 포함하고 있는 것을 의미합니다. 이미지는 컨테이너를 생성하는 클래스 같은 역할을 하고 컨테이너는 이미지를 실행하는 프로그램 또는 프로세스라고 볼 수 있습니다. 예시로 Ubuntu 이미지는 Ubuntu를 실행하기 위한 모든 파일을 가지고 있으며, MySQL 이미지는 MySQL를 실행하는데 필요한 파일, ID, 비밀번호, Port정보 등을 모두 가지고 있습니다.
선행 서비스
Container Registry는 선행 서비스가 없습니다.
2.1.1 - 모니터링 지표
Container Registry 모니터링 지표
아래 표는 Cloud Monitoring을 통해 확인할 수 있는 Container Registry의 모니터링 지표를 나타냅니다. 자세한 Cloud Monitoring 사용 방법은 Cloud Monitoring 가이드를 참고하세요.
| 성능 항목 | 상세 설명 | 단위 |
|---|---|---|
| container.registry.status.alive | Registry 상태 | status |
| containerregistry.statics.image.pull.count | 허용된 Image Tag(digest) Pull 수 | cnt |
| containerregistry.statics.image.denied_pull.count | 거부된 Image Tag(digest) Pull 수 | cnt |
| containerregistry.statics.image.push.count | 허용된 Image Tag(digest) Push 수 | cnt |
| containerregistry.statics.image.denied_push.count | 거부된 Image Tag(digest) Push 수 | cnt |
| containerregistry.statics.image.scan.count | 허용된 Image Tag(digest) Scan 수 | cnt |
| containerregistry.statics.image.denied_scan.count | 거부된 Image Tag(digest) Scan 수 | cnt |
| containerregistry.statics.tag.deleted.count | 삭제된 Image Tag(digest) 수 | cnt |
| containerregistry.statics.image.created.count | 생성된 Image 수 | cnt |
| containerregistry.statics.image.deleted.count | 삭제된 Image 수 | cnt |
| containerregistry.statics.login.count | 허용된 Registry Login 수 | cnt |
| containerregistry.statics.denied_login.count | 거부된 Registry Login 수 | cnt |
| containerregistry.statics.repository.created.count | 생성된 Repository 수 | cnt |
| containerregistry.statics.repository.deleted.count | 삭제된 Repository 수 | cnt |
2.1.2 - ServiceWatch 지표
Container Registry는 ServiceWatch로 지표를 전송합니다. 기본 모니터링으로 제공되는 지표는 1분 주기로 수집된 데이터입니다.
기본 지표
다음은 네임스페이스 Container Registry에 대한 기본 지표입니다.
| 지표명 | 상세 설명 | 단위 | 의미있는 통계 |
|---|---|---|---|
| Image Pull Count [Allowed] | 허용된 Image Tag(digest) Pull 수 | Count/Minute |
|
| Image Push Count [Denied] | 거부된 Image Tag(digest) Push 수 | Count/Minute |
|
| Repository Count [Deleted] | 삭제된 Repository 수 | Count/Minute |
|
| Repository Count [Created] | 생성된 Repository 수 | Count/Minute |
|
| Registry Login Count [Allowed] | 허용된 Registry Login 수 | Count/Minute |
|
| Image Scan Count [Denied] | 거부된 Image Tag(digest) Scan 수 | Count/Minute |
|
| Image Pull Count [Denied] | 거부된 Image Tag(digest) Pull 수 | Count/Minute |
|
| Registry Login Count [Denied] | 거부된 Registry Login 수 | Count/Minute |
|
| Image Push Count [Allowed] | 허용된 Image Tag(digest) Push 수 | Count/Minute |
|
| Image Scan Count [Allowed] | 허용된 Image Tag(digest) Scan 수 | Count/Minute |
|
| Image Count [Deleted] | 삭제된 Image 수 | Count/Minute |
|
| Image Count [Created] | 생성된 Image 수 | Count/Minute |
|
| Image Tag Count [Deleted] | 삭제된 Image Tag(digest) 수 | Count/Minute |
|
2.2 - How-to guides
사용자는 Samsung Cloud Platform Console을 통해 Container Registry 서비스의 필수 정보를 입력하고, 상세 옵션을 선택하여 서비스를 생성할 수 있습니다.
Container Registry 생성하기
Samsung Cloud Platform Console에서 Container Registry 서비스를 생성하여 사용할 수 있습니다.
Container Registry 서비스를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Registry 생성 버튼을 클릭하세요. Registry 생성 페이지로 이동합니다.
- Registry 생성 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 레지스트리명 필수 사용자가 생성하는 레지스트리 이름 - 영문 소문자로 시작하며 영문 소문자, 숫자를 이용하여 3~25자로 입력
엔드포인트 필수 레지스트리 엔드포인트에 대한 액세스 타입 설정 - 프라이빗을 선택하면 프라이빗 엔드포인트 접근 제어 항목만 설정 가능
- 프라이빗&퍼블릭을 선택하면 프라이빗 엔드포인트 접근 제어 항목과 퍼블릭 엔드포인트 접근 제어 설정 가능
프라이빗 엔드포인트 접근 제어 선택 프라이빗 엔드포인트 접근 제어 설정 - 사용을 선택하면 레지스트리와 같은 리전의 Account 내 특정 리소스만 접근할 수 있도록 설정 가능
- 프라이빗 접근 허용 리소스 추가를 클릭하여 프라이빗 엔드포인트를 사용하여 레지스트리에 접근 허용할 리소스를 추가
- 사용을 선택하지 않으면 같은 리전내 모든 서브넷의 리소스에서의 접근이 허용됨
퍼블릭 엔드포인트 접근 제어 선택 퍼블릭 엔드포인트 접근 제어 설정 - 사용을 선택하면 레지스트리와 같은 리전의 특정 IP만 접근할 수 있도록 설정 가능
- 퍼블릭 접근 허용 IP의 추가를 클릭하여 퍼블릭 엔드포인트를 사용하여 레지스트리에 접근 허용할 IP와 리소스를 추가
- 사용을 선택하지 않으면 같은 리전내 모든 서브넷의 리소스에서의 접근이 허용됨
가시성 선택 레지스트리의 읽기(Pull) 작업에 대한 익명 접근 설정 설정 - Public을 선택하면 인증되지 않은 익명의 사용자에게 레지스트리의 모든 컨텐츠에 대한 읽기 작업(Anonymous Pull)을 허용함
- 이 설정은 서비스 생성 시에만 Public으로 설정
표. Container Registry 서비스 정보 입력 항목주의- 프라이빗 엔드포인트 접근 제어의 사용을 선택하지 않으면 고객의 레지스트리가 Samsung Cloud Platform 내의 다른 리소스에 노출될 수 있습니다.
- 퍼블릭 엔드포인트 접근 제어의 사용을 선택하지 않으면 인터넷 환경에서 외부 IP 접근이 가능하므로, 사용자의 버킷이 인터넷을 통해 외부로 노출될 수 있습니다. 외부 접근이 필요하지 않다면, 사용 체크박스를 해제하여 보안 위협을 최소화하세요.
- 추가 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 태그 선택 태그 추가 - 자원 당 최대 50개까지 추가 가능
- 태그 추가 버튼을 클릭한 후 Key, Value 값을 입력 또는 선택
표. Container Registry 추가 정보 입력 항목
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
- 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
- 생성이 완료되면, Registry 목록 페이지에서 생성한 자원을 확인하세요.
Container Registry 상세 정보 확인하기
Container Registry 서비스는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. Container Registry 상세 페이지는 상세정보, 태그, 작업 이력 탭으로 구성되어 있습니다.
Container Registry 상세정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Registry 메뉴를 클릭하세요. Registry 목록 페이지로 이동합니다.
- Registry 목록 페이지에서 상세 정보를 확인할 자원(Registry)을 클릭하세요. Registry 상세 페이지로 이동합니다.
- Registry 상세 페이지에는 Registry의 상태 정보 및 상세 정보가 표시되며, 상세정보, 태그, 작업 이력 탭으로 구성됩니다.
구분 상세 설명 레지스트리 상태 레지스트리의 상태 - Creating: 생성 중
- Running: 생성 완료/정상 작동 중
- Editing: 설정 변경 중
- Terminating: 삭제 중
- Error: 에러 발생
- Unknown: 알 수 없음
이용 가이드 CLI기반 레지스트리 사용 가이드 서비스 해지 서비스를 해지하는 버튼 표. Container Registry 상태 정보 및 부가 기능
- Registry 상세 페이지에는 Registry의 상태 정보 및 상세 정보가 표시되며, 상세정보, 태그, 작업 이력 탭으로 구성됩니다.
상세 정보
Registry 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 서비스 | 서비스명 |
| 자원 유형 | 자원 유형 |
| SRN | Samsung Cloud Platform에서의 고유 자원 ID
|
| 자원명 | 자원 이름
|
| 자원 ID | 서비스에서의 고유 자원 ID |
| 생성자 | 서비스를 생성한 사용자 |
| 생성 일시 | 서비스를 생성한 일시 |
| 수정자 | 서비스 정보를 수정한 사용자 |
| 수정 일시 | 서비스 정보를 수정한 일시 |
| 레지스트리명 | 레지스트리 이름 |
| 버킷명 | 레지스트리의 데이터가 저장되는 Samsung Cloud Platform Object Storage 버킷 이름 |
| 사용량 | 해당 레지스트리용 Object Storage 버킷의 데이터 사용량 |
| 엔드포인트 | 레지스트리 엔드포인트에 대한 액세스 타입 |
| 프라이빗 엔드포인트 | Samsung Cloud Platform 네트워크 내에서 사용 가능한 프라이빗 엔드포인트 URL
|
| 퍼블릭 엔드포인트 | Samsung Cloud Platform 네트워크 내에서 사용 가능한 퍼블릭 엔드포인트 URL |
| 프라이빗 엔드포인트 접근 제어 | 프라이빗 엔드포인트 접근 제어 설정
|
| 퍼블릭 엔드포인트 접근 제어 | 퍼블릭 엔드포인트 접근 제어 설정
|
| 가시성 | 레지스트리의 읽기(Pull) 작업에 대한 익명 접근 설정
|
태그
Registry 목록 페이지에서 선택한 자원의 태그 정보를 확인하고, 추가하거나 변경 또는 삭제할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 태그 목록 | 태그 목록
|
작업 이력
Registry 목록 페이지에서 선택한 자원의 작업 이력을 확인할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 작업 이력 목록 | 자원 변경 이력
|
Container Registry 해지하기
사용하지 않는 Container Registry를 해지해 운영 비용을 절감할 수 있습니다. 단, 서비스를 해지하면 운영 중인 서비스가 즉시 중단될 수 있으므로 서비스 중단 시 발생하는 영향을 충분히 고려한 후 해지 작업을 진행하세요.
- Registry에 연결된 항목이 있는 경우 삭제할 수 없습니다. 서비스 해지 불가 팝업에 표시되는 연결 서비스를 해지한 후 Registry를 삭제하세요.
- 서비스 해지 시, Registry에 연결된 버킷을 포함하여 모든 데이터가 삭제됩니다. 데이터 삭제 후에는 복구할 수 없으니 주의하세요.
Container Registry를 해지하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Registry 메뉴를 클릭하세요. Registry 목록 페이지로 이동합니다.
- Registry 목록 페이지에서 상세 정보를 확인할 자원(Registry)을 클릭하세요. Registry 상세 페이지로 이동합니다.
- Registry 상세 페이지에서 서비스 해지를 클릭하세요.
- 해지 확인을 위해 체크박스를 클릭하고 삭제할 Registry명을 입력하세요.
- Registry명을 정확하게 입력하면, 확인버튼이 활성화됩니다. 확인버튼을 클릭하세요.
- 해지가 완료되면, Registry 목록 페이지에서 자원이 해지되었는지 확인하세요.
2.2.1 - 리포지토리 관리하기
리포지토리는 레지스트리 내 이미지들의 논리적인 관리 단위입니다. 리포지토리를 이용하면 하위에 생성되는 이미지의 기본 보안 정책을 설정할 수 있습니다.
리포지토리 생성하기
리포지토리를 생성하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Repository 메뉴를 클릭하세요. Repository 목록 페이지로 이동합니다.
- Repository 목록 페이지에서 Repository 생성 버튼을 클릭하세요. Repository 생성 페이지로 이동합니다.
- Repository 목록 페이지 상단에서 설정 아이콘을 클릭해 기존 레지스트리를 선택하거나, 신규 생성을 클릭해 레지스트리를 생성할 수 있습니다.
- Repository 생성 페이지에서 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 레지스트리 필수 리포지토리를 생성할 레지스트리 이름을 선택 - 생성된 레지스트리가 없을 경우 신규 생성 버튼을 통해 신규 생성 가능
리포지토리명 필수 생성할 리포지토리 이름 - 영문 소문자와 숫자, 특수문자(
-)를 사용하여 3~30자로 입력(시작과 끝은 영문 소문자, 숫자만 가능)
표. Repository 필수 정보 입력 항목 - Repository 기본 정책 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 이미지 스캔 옵션 리포지토리에 생성되는 이미지 취약점 자동 스캔과 스캔 제외 정책 설정 - 리포지토리에 이미지가 생성될 때 적용되는 기본 스캔 정책을 설정 가능
- 자동 스캔을 사용으로 설정하면 이미지가 Push될 때 이미지의 취약점을 자동으로 점검. 이 경우 취약점 점검 비용이 과금됨
- 스캔 제외 정책을 사용으로 설정하면 다음과 같이 이미지 스캔 시 제외하고자 하는 점검 대상과 취약점을 지정 가능
- 제외 설정 가능 점검 대상
- Language Package 점검 제외
- Secret 점검 제외
- Fix Version 없는 취약점 제외
- 제외 설정 가능 취약점: 다음 레벨 중 하나 선택 가능
- (None / Unknown / Negligible / Low / Medium / High / Critical) 레벨 이하 취약점 제외
- 제외 설정 가능 점검 대상
이미지 Pull 제한 옵션 리포지토리에 생성되는 이미지 Pull 제한 기능 사용 여부와 제한 값에 대한 정책 설정 - 리포지토리에 이미지가 생성될 때 적용되는 기본 Pull 제한 정책을 설정 가능
- 스캔되지 않은 이미지 Pull 제한을 사용으로 설정하면 취약점 점검되지 않은 이미지의 Pull이 허용되지 않음
- 취약한 이미지 Pull 제한 정책을 사용으로 설정하면 입력한 값 이상의 Critical 또는 High 레벨 취약점이 발견된 경우 이미지의 Pull이 허용되지 않음. 해당 정책에서 입력 및 선택 가능한 값은 다음과 같음
- Critical: 1(기본값) ~ 9,999,999
- High: 1(기본값) ~ 9,999,999
- Fix Version 없는 취약점 제외
- 사용으로 선택하는 경우 Fix Version이 없는 취약점(취약한 패키지/라이브러리의 패치 버전이 없는 경우)은 Pull 제한 정책에서 제외
이미지 잠금 여부 옵션 리포지토리 내부 모든 이미지를 삭제하거나 업데이트 할 수 없도록 잠금 설정을 할 수 있음 - 리포지토리의 이미지 잠금 여부가 Lock일 경우, 리포지토리 내 개별 이미지의 Lock/Unlock 기능이 비활성화됨
- Lock 상태인 리포지토리의 이미지 잠금 여부를 Unlock으로 변경하면 개별 이미지의 Lock/Unlock 기능이 활성화됨
- 새로운 이미지 Push는 가능
이미지 태그 삭제 옵션 리포지토리에 저장된 이미지 자동 삭제 정책을 설정할 수 있음 - 삭제 정책 활성화를 사용으로 선택하면 이미지 삭제 정책 적용됨
- Untagged Image 자동 삭제, 오래된 Image 자동 삭제 항목을 사용으로 선택하면 해당 이미지 삭제 정책 적용됨
- 삭제 정책에 자동 삭제 기간 입력, 이미지가 최초 push된 이후 설정한 기간이 지나면 자동 삭제됨
- 이미지 태그 삭제에 대한 자세한 설명은 이미지 태그 삭제 정책 관리 참고
표. Repository 기본 정책 입력 항목 - 추가 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
구분 필수 여부상세 설명 설명 선택 리포지토리 설명 - 리포지토리 설명을 입력
태그 선택 태그 추가 - 자원 당 최대 50개까지 추가 가능
- 태그 추가 버튼을 클릭한 후 Key, Value 값을 입력 또는 선택
표. Repository 추가 정보 입력 항목
- 서비스 정보 입력 영역에서 필요한 정보를 입력 또는 선택하세요.
- Repository 기본 정책 입력 항목은 Repository에 생성되는 Image의 기본(최초) 정책 설정에 사용됩니다. (Image 생성 시 적용되는 정책 설정 템플릿 역할)
- 이 설정은 Repository 생성 후 상세조회 화면에서 변경할 수 있으며, Repository 기본 정책 입력 항목 변경 후 생성되는 Image부터 변경된 정책으로 설정됩니다. 변경 전 생성된 Image 정책은 변경되지 않습니다.
- Image에 설정된 기본 정책은 Image 상세 화면에서 수정할 수 있습니다.
- 요약 패널에서 생성한 상세 정보와 예상 청구 금액을 확인하고, 완료 버튼을 클릭하세요.
- 생성이 완료되면 Repository 목록 페이지에서 생성한 자원을 확인하세요.
리포지토리 상세 정보 확인하기
Repository 서비스는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. Repository 상세 페이지에서는 상세정보, 태그, 작업 이력 탭으로 구성되어 있습니다.
리포지토리 상세정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Repository 메뉴를 클릭하세요. Repository 목록 페이지로 이동합니다.
- Repository 목록 페이지에서 상세 정보를 확인할 자원(Repository)을 클릭하세요. Repository 상세 페이지로 이동합니다.
- Repository 상세 페이지에는 Repository의 상태 정보 및 상세 정보가 표시되며, 상세정보, 태그, 작업 이력 탭으로 구성됩니다.
구분 상세 설명 리포지토리 상태 리포지토리의 상태를 표현 - Active: 사용 가능한 상태
- Deleting: 삭제 중인 상태
- Inactive: 삭제 중 실패하여 사용 가능하지 않은 상태(삭제 요청만 가능)
- Editing: 설정 수정 또는 이미지 내 하위 자원(이미지, 태그) 삭제 중인 상태
이용 가이드 리포지토리 이용 가이드 - CLI 기반으로 리포지토리 내 이미지를 사용하기 위한 명령어를 확인 가능
리포지토리 삭제 리포지토리를 삭제하는 버튼 표. 상태 정보 및 부가 기능
- Repository 상세 페이지에는 Repository의 상태 정보 및 상세 정보가 표시되며, 상세정보, 태그, 작업 이력 탭으로 구성됩니다.
상세 정보
Repository 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 서비스 | 서비스명 |
| 자원 유형 | 자원 유형 |
| SRN | Samsung Cloud Platform에서의 고유 자원 ID
|
| 자원명 | 자원 이름
|
| 자원 ID | 서비스에서의 고유 자원 ID |
| 생성자 | 리포지토리를 생성한 사용자 |
| 생성 일시 | 리포지토리 생성 일시 |
| 수정자 | 리포지토리를 수정한 사용자 |
| 수정 일시 | 리포지토리 수정 일시 |
| 리포지토리명 | 사용자가 생성한 리포지토리 이름 |
| 이미지 | 리포지토리 내 저장된 이미지 목록을 조회하는 링크 |
| 설명 | 생성된 리포지토리에 대해 사용자가 입력한 설명 |
| 이미지 스캔 | 리포지토리에 생성되는 이미지 취약점 자동 스캔과 스캔 제외 정책 설정
|
| 이미지 Pull 제한 | 리포지토리에 생성되는 이미지 Pull 제한 기능 사용 여부와 제한 값에 대한 정책 설정
|
| 이미지 잠금 여부 | 리포지토리 내부 모든 이미지를 삭제하거나 업데이트 할 수 없도록 잠금 설정 가능
|
| 이미지 태그 삭제 | 리포지토리에 저장된 이미지 자동 삭제 정책을 설정
|
태그
Repository 목록 페이지에서 선택한 자원의 태그 정보를 확인하고, 추가하거나 변경 또는 삭제할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 태그 목록 | 태그 목록
|
작업 이력
Repository 목록 페이지에서 선택한 자원의 작업 이력을 확인할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 작업 이력 목록 | 자원 변경 이력
|
리포지토리 삭제하기
Repository를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Repository 메뉴를 클릭하세요. Repository 목록 페이지로 이동합니다.
- Repository 목록 페이지에서 상세 정보를 확인할 자원(Repository)을 클릭하세요. Repository 상세 페이지로 이동합니다.
- Repository 상세 페이지에서 Repository 삭제를 클릭하세요.
- Repository 삭제 팝업창에서 Repository명을 입력하세요.
- Repository명을 맞게 입력하였다면, 확인 버튼이 활성화됩니다. 확인 버튼을 클릭하세요.
- 해지가 완료되면, Repository 목록 페이지에서 자원이 해지되었는지 확인하세요.
2.2.2 - 이미지 및 태그 관리하기
이미지는 태그의 논리적 관리 단위입니다. 사용자는 태그를 이용하여 이미지 버전을 효율적으로 관리할 수 있습니다.
이미지 생성하기
이미지를 생성하기 위해서는 리포지토리가 먼저 생성되어 있어야 합니다. 리포지토리를 생성에 대한 자세한 내용은 리포지토리 관리하기를 참고하세요. 이미지는 레지스트리 엔드포인트를 이용하여 CLI로 이미지 또는 OCI 표준 아티팩트를 Push하여 생성합니다. CLI로 이미지를 Push하는 방법은 사용하는 클라이언트 툴에서 제공하는 공식 문서나 CLI 사용하기를 참고하세요.
이미지 상세 정보 확인하기
Image는 전체 자원 목록과 상세 정보를 확인하고 수정할 수 있습니다. Image 상세 페이지에서는 상세 정보, 태그, 삭제 정책 테스트 탭으로 구성되어 있습니다
이미지 상세정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명을 각각 선택하세요.
- 원하는 항목이 없다면 신규 생성을 클릭해 Registry와 Repository를 등록한 후 선택할 수 있습니다.
- Image 목록 페이지에서 상세 정보를 확인할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지에는 Image의 상태 정보 및 상세 정보가 표시되며, 상세정보, Tags, 삭제 정책 테스트 탭으로 구성됩니다.
구분 상세 설명 이미지 상태 이미지의 상태를 표현 - Active: 사용 가능한 상태
- Deleting: 삭제 중인 상태
- Inactive: 삭제 중 실패하여 사용 가능하지 않은 상태 (삭제 요청만 가능)
- Editing: 설정 수정 또는 이미지 하위 자원(태그) 삭제 중인 상태
이용 가이드 CLI 기반 이미지 사용 가이드 Image 삭제 이미지를 삭제하는 버튼 표. 상태 정보 및 부가 기능
- Image 상세 페이지에는 Image의 상태 정보 및 상세 정보가 표시되며, 상세정보, Tags, 삭제 정책 테스트 탭으로 구성됩니다.
상세 정보
Image 목록 페이지에서 선택한 자원의 상세 정보를 확인하고, 필요한 경우 정보를 수정할 수 있습니다.
| 구분 | 상세 설명 |
|---|---|
| 생성자 | 이미지를 생성한 사용자 |
| 생성 일시 | 이미지를 생성한 일시 |
| 수정자 | 이미지를 수정한 사용자 |
| 수정 일시 | 이미지를 수정한 일시 |
| 이미지명 | 사용자가 생성한 이미지 이름 |
| 레지스트리 | 이미지가 저장된 리포지토리의 레지스트리 이름 및 조회 링크 |
| Pulls | 해당 이미지가 Pull 된 횟수 |
| 리포지토리 | 이미지가 저장된 리포지토리 이름 및 조회 링크 |
| 설명 | 이미지에 대해 사용자가 입력한 설명
|
| 이미지 스캔 | 이미지 취약점 자동 스캔과 스캔 제외 정책 설정
|
| 이미지 Pull 제한 | 이미지 Pull 제한 기능의 사용 여부와 제한값 설정
|
| 이미지 잠금 여부 | 선택한 이미지를 삭제하거나 업데이트 할 수 없도록 잠금 설정 가능
|
| 이미지 태그 삭제 | 리포지토리에 저장된 이미지 자동 삭제 정책을 설정
|
이미지 삭제하기
Image를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 삭제할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 삭제할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 삭제 버튼을 클릭하세요.
- Image 삭제 팝업이 표시되면 확인 버튼을 클릭하세요.
- 삭제가 완료되면 Image 목록 페이지에서 자원이 삭제 되었는지 확인하세요.
이미지 태그 상세 정보 확인하기
태그 상세정보를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 상세 정보를 확인할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지에는 Image의 상태 정보 및 상세 정보가 표시되며, 상세정보, Tags, 삭제 정책 테스트 탭으로 구성됩니다.
- Image 상세 페이지 상단의 상세정보 탭 오른쪽의 Tags 탭을 클릭하세요. Tags 목록 페이지로 이동합니다.
컬럼 필수상세 설명 Tags 필수 이미지 Digest의 태그 이름 - 하나의 이미지 Digest는 여러개의 태그명을 가질 수 있음
Digest 필수 이미지 Digest 값 크기 필수 이미지 Digest의 용량 수정 일시 필수 이미지 Digest(Tags) 수정 일시 점검 일시 필수 이미지 Digest(Tags) 취약점 점검 일시 취약점 점검 결과 필수 이미지 Digest(Tags) 취약점 점검 결과 - 취약점 갯수 요약 정보와 점검 결과보기 버튼이 표시
- 결과보기 버튼을 클릭하면 이미지 태그에 대한 취약점 상세 분석 결과를 확인
상태 필수 이미지 Digest(Tags)에 대한 상태 - Active: 정상 사용 가능한 상태
- Deleting: 삭제 중인 상태
- Inactive: 삭제 중 실패하여 사용 가능하지 않은 상태 (삭제 요청만 가능)
URL 복사 - 이미지 Digest를 이용하기 위한 엔드포인트 URL 복사 - 이미지 Digest를 이용하기 위한 명령어에 사용할 엔드포인트 URL을 복사할 수 있음
더보기 버튼 - 이미지 Digest(Tags)에 대한 삭제, 수정, 취약점 점검, 상세 이용 가이드를 선택하는 메뉴 - 삭제를 클릭하여 해당 이미지 Digest(Tags)를 삭제
- Tags 수정을 클릭하면 Tags 수정 창이 나타남. Tags 수정 창에서 이미지 Digest의 태그 이름을 수정 가능
- 취약점 점검을 클릭하여 이미지 Digest(Tags)에 대한 취약점 점검 가능
- 상세 이용 가이드를 클릭하여 CLI 기반으로 이미지 Digest(Tags)를 사용하는 가이드를 확인할 수 있음
- Tags Lock을 클릭하여 선택한 이미지 Tags를 삭제하거나 업데이트 할 수 없도록 잠금 설정을 할 수 있음
- Tags Unlock을 클릭하여 선택한 이미지 Tags를 삭제하거나 업데이트 할 수 있도록 잠금 설정을 해지할 수 있음
표. Tags 목록 항목
상세 정보
Image 상세의 Tags 목록에서 상세정보를 확인할 이미지 Digest의 Tags를 클릭하세요. 이미지 Digest(Tags)의 상세정보 창이 나타납니다.
| 컬럼 | 상세 설명 | |
|---|---|---|
| 태그정보 | 태그 이름, 다이제스트, 생성 일시, 수정 일시를 표시
| |
| 매니페스트 정보 | 매니페스트 타입과 상세 내용을 표시
|
- 태그 상세정보 창에서 정보를 확인하고 확인을 클릭하면 창이 닫힙니다.
이미지 태그 삭제하기
이미지 태그를 삭제하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 상세 정보를 확인할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지 상단의 상세정보 탭 오른쪽의 Tags탭을 클릭하세요. Tags 목록 페이지로 이동합니다.
- Tags 목록에서 삭제할 태그의 왼쪽에 위치한 체크박스를 선택한 후 삭제를 클릭하세요.
- 여러 항목의 체크박스를 선택하면 한 번에 여러 개의 태그를 삭제할 수 있으며, 한 번에 최대 50개까지의 태그를 선택하여 삭제할 수 있습니다.
- 삭제할 태그의 오른쪽 끝에 위치한 더보기 버튼 내 삭제 버튼을 클릭해 태그를 하나씩 삭제할 수 있습니다.
- Tags 삭제 팝업창이 열리면 확인을 클릭하세요.
- 삭제가 완료되면 Tags 목록 페이지에서 자원이 삭제되었는지 확인하세요.
이미지 태그 삭제 정책 테스트하기
설정한 이미지 태그 삭제 정책을 테스트하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 상세 정보를 확인할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지에는 Image의 상태 정보 및 상세 정보가 표시되며, 상세정보, Tags, 삭제 정책 테스트 탭으로 구성됩니다.
- Image 상세 페이지 상단의 상세정보 탭 오른쪽의 삭제 정책 테스트 탭을 클릭하세요. 삭제 정책 테스트 탭 페이지로 이동합니다.
- 삭제 정책 테스트 탭 페이지에서 삭제 대상 Tags 항목의 정책 테스트 버튼을 클릭하세요. 삭제 정책 테스트가 실행됩니다.
- 삭제 정책 테스트 수행 알림 팝업창이 열리면 확인 버튼을 클릭하세요.
- 테스트 실행 신청이 완료되면 삭제 정책 테스트 실행 신청을 완료하였습니다 문구가 표시됩니다.
- 삭제 정책 테스트가 완료되면 테스트 결과를 확인하세요.
- 삭제 대상 Tags 항목에 삭제 정책의 적용 대상인 이미지 태그(다이제스트)가 표시됩니다.
2.2.3 - 이미지 보안 취약점 관리하기
이미지 보안 취약점 점검 기능을 사용하면 Container Registry에 저장된 이미지의 OS 패키지 보안 취약점과 이미지에 포함된 Secret을 수동 또는 자동으로 점검할 수 있습니다. 사용자는 점검 결과 기반으로 알려진 취약점(CVE)과 Secret을 식별하고 제거하여 안전하지 않은 이미지의 사용을 방지할 수 있습니다.
취약점 점검 지원 정보
지원 OS
- 취약점 점검 기능은 다음 OS에서 패키지 매니저로 설치한 라이브러리에 대한 점검을 지원합니다.
| 지원 OS |
|---|
| Ubuntu |
| Cent OS |
| Oracle |
| Debian |
| Alpine |
| AWS Linux |
| RHEL |
| Suse |
| VMWare Photon |
지원 Language
- 취약점 점검 기능은 다음 Language에 대한 점검을 지원합니다.
| 지원 Language |
|---|
| Python |
| PHP |
| Node.js |
| .NET |
| Go |
| Dart |
| 지원 Language |
|---|
| Java |
지원 Secret
- 취약점 점검 기능은 이미지에 포함된 다음 유형의 Secret을 지원합니다.
| 지원 Secret |
|---|
| AWS access key |
| GitHub personal access token |
| GitLab personal access token |
| Asymmetric Private Key |
이미지 보안 취약점 점검하기 (수동)
이미지 보안 취약점을 점검하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 보안 취약점을 점검할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지 상단의 상세 정보 탭 오른쪽의 Tags탭을 클릭하세요. Tags탭 페이지로 이동합니다.
- Tags탭 페이지에서 보안 취약점을 점검할 태그의 오른쪽 끝에 위치한 더보기 버튼을 클릭한 후 취약점 점검을 클릭하세요.
- 취약점 점검 알림 팝업창이 열리면, 확인 버튼을 클릭하세요.
- 점검이 시작되면 취약점 점검을 실시합니다. 라는 문구가 표시됩니다.
- 점검이 끝나면 취약점 점검 결과 항목에 점검 결과 요약 정보와 결과보기 버튼이 표시됩니다. 결과보기 버튼을 클릭하면 이미지 Digest(Tags) 별 취약점 상세 분석 결과를 확인할 수 있는 팝업 창이 나타납니다.참고
- 결과보기 버튼을 클릭하면 이미지 태그에 대한 취약점 상세 분석 결과를 확인 할 수 있습니다. 취약점 점검 후 점검일시 항목에 빨간 느낌표 아이콘(!)이 표시되면, Container Registry 서비스의 취약점 점검 리스트가 업데이트되었다는 의미입니다.취약점 점검을 클릭하여 해당 이미지 Digest(Tags)에 대한 신규 취약점 항목 점검이 필요하므로 다시 점검하기를 권장합니다.
이미지 보안 취약점 점검 결과 확인하기
취약점 점검 결과를 확인하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 설정 아이콘을 클릭하여 상세 정보를 확인할 Image가 저장된 Registry명과 Repository명 을 각각 선택하세요.
- Image 목록 페이지에서 보안 취약점을 점검할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지 상단의 상세정보 탭 오른쪽의 Tags탭을 클릭하세요. Tags탭 페이지로 이동합니다.
- Tags탭 페이지에서 취약점 점검 결과를 확인할 태그의 취약점 점검 결과 항목의 결과보기 버튼을 클릭하세요.
- 이미지 Tags별 취약점 상세 분석 결과를 확인할 수 있는 팝업창이 나타납니다.
취약점 단위로 점검 결과 확인하기
취약점 탭에서 이미지 보안 취약점 점검 결과를 취약점별로 확인할 수 있습니다.
| 항목 | 상세 설명 |
|---|---|
| 취약점 점검 | 취약점 점검 버튼
|
| 점검 일시 | 취약점 점검 일시 |
| Distribution | 점검 대상 이미지 Digest(Tags) 의 OS 이름 및 버전
|
| 전체 취약점 수 | 취약점 점검 결과 요약
|
취약점 탭에서 전체 발견된 취약점 목록을 확인할 수 있습니다.
| 항목 | 상세 설명 |
|---|---|
| CVE | 탐지된 취약점 ID (CVE ID)와 해당 취약점 상세 정보를 확일할 수 있는 외부 링크
|
| 심각도 | 탐지된 취약점의 심각도 |
| CVSS | CVSS (Common Vulnerability Scoring System) 기준 취약점 점수 |
| Category | 탐지된 취약점의 점검 대상 유형
|
| OS/Language | 탐지된 취약점의 OS 또는 Language 패키지 유형
|
| 패키지 | 취약점이 발견된 패키지 명 |
| 현재 버전 | 취약점이 발견된 패키지의 현재 버전 (취약한 버전) |
| 수정 버전 | 취약점이 발견된 패키지의 취약점이 조치된 버전 |
| 수정 여부 | 취약점이 발견된 패키지의 취약점이 조치된 버전 존재 여부 (취약점 패치 버전 존재 여부) |
| 펼치기 버튼 | 취약점 상세 정보 조회
|
패키지 단위로 점검 결과 확인하기
이미지 보안 취약점 점검 결과를 패키지별로 확인할 수 있습니다. 이미지 Tag별 취약점 상세 페이지에서 패키지 탭을 클릭하면 패키지별 취약점 페이지로 이동합니다.
| 항목 | 상세 설명 |
|---|---|
| 취약점 점검 | 취약점 점검 버튼
|
| 점검 일시 | 취약점 점검 일시 |
| Distribution | 점검 대상 이미지 Digest(Tags)의 OS 이름 및 버전
|
| 전체 패키지 수 | 전체 패키지 정보 요약
|
패키지 탭에서 전체 패키지 목록과 취약점이 발견된 패키지와 취약점이 발견되지 않은 패키지 목록을 확인할 수 있습니다.
| 항목 | 상세 설명 |
|---|---|
| Category | 발견된 패키지의 유형
|
| OS/Language | 발견된 패키지의 OS 또는 Language 상세 유형
|
| 패키지 | 발견된 패키지 명 |
| 버전 | 패키지의 현재 버전 |
| 취약점 점검 결과 | 패키지에서 담지된 취약점 갯수 요약 정보 |
| 유형 | 발견된 패키지의 OS 또는 Language 유형과 세부 정보 |
시크릿 단위로 점검 결과 확인하기
이미지 보안 취약점 점검 결과를 시크릿별로 확인할 수 있습니다. 이미지 Tag별 취약점 상세 페이지에서 시크릿 탭을 클릭하면 시크릿별 취약점 페이지로 이동합니다.
| 항목 | 상세 설명 |
|---|---|
| 취약점 점검 | 취약점 점검 버튼
|
| 점검 일시 | 취약점 점검 일시 |
| Distribution | 점검 대상 이미지 Digest(Tags) 의 OS 이름 및 버전
|
| 전체 취약점 수 | 취약점 결과 요약
|
시크릿 탭에서
| 항목 | 상세 설명 |
|---|---|
| File | 시크릿이 탐지된 File 명 |
| Category | 탐지된 시크릿 유형
|
| Severity | 탐지된 시크릿 심각도 |
| Match | 탐지된 파일 내 시크릿 매치 정보 |
2.2.4 - 이미지 태그 삭제 정책 관리하기
사용자는 이미지 태그 삭제 정책을 등록하고 관리할 수 있습니다.
이미지 태그 삭제 정책 관리하기
이미지 태그 삭제 정책은 특정 이미지가 저장소에 처음으로 Push한 시점 이후 설정한 기간이 지나면 자동으로 삭제되는 정책을 말합니다. 이미지 태그 삭제 정책을 활성화하면 설정한 삭제 정책에 따라 Container Registry에 저장된 이미지 태그(다이제스트)가 자동으로 삭제됩니다.
- 삭제 정책 활성화를 사용 설정한 후 처음 삭제 정책이 적용되는 이미지 태그(다이제스트)는 최대 3일(72시간) 이내 삭제됩니다. 이후 삭제 정책이 적용되는 이미지 태그(다이제스트)는 최대 1일(24시간) 이내에 삭제됩니다.
- 삭제 정책이 적용되는 이미지 태그(다이제스트)는 영구 삭제되며 복구할 수 없습니다.
지원 삭제 정책 정보
이미지 태그 삭제를 지원하는 정책 정보를 설명합니다.
지원 정책
이미지 태그(다이제스트)에 대한 자동 삭제 및 기간을 설정할 수 있는 정책을 지원합니다.
| 지원 정책 |
|---|
| Untagged Image |
| 오래된 Image |
이미지 태그(다이제스트) 삭제 정책 설정하기
이미지 태그(다이제스트) 삭제 정책을 설정하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 톱니바퀴 버튼을 클릭하세요. Registry/Repository 설정 팝업창이 열립니다.
- Registry/Repository 설정 팝업창에서 삭제 정책을 설정할 Image가 저장된 Registry명과 Repository명을 선택하고 확인 버튼을 클릭하세요.
- Image 목록 페이지에서 삭제 정책을 설정할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지의 상세 정보 탭에서 이미지 태그 삭제 항목의 수정 아이콘을 클릭하세요. 이미지 태그 삭제 수정 팝업창이 열립니다.
- 이미지 태그 삭제 수정 팝업창에서 활성화 여부와 필요한 정보를 입력 및 선택하고 확인 버튼을 클릭하세요.
- 삭제 정책 활성화를 사용으로 선택하면 설정한 삭제 정책에 따라 이미지 태그(다이제스트)가 자동으로 삭제됩니다.
- 적용할 삭제 정책을 선택하고 이미지가 리포지토리에 첫번째 push된 시점부터 자동 삭제될 시점까지의 기간을 입력하세요.
- 수정 알림 팝업창이 열리면, 확인 버튼을 클릭하세요.
- 수정이 완료되면 이미지 태그 삭제 수정이 성공하였습니다 문구가 표시됩니다.
이미지 태그(다이제스트) 삭제 정책 테스트하기
이미지 태그(다이제스트) 삭제 정책을 테스트하려면 다음 절차를 따르세요.
- 모든 서비스 > Container > Container Registry 메뉴를 클릭하세요. Container Registry의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Image 메뉴를 클릭하세요. Image 목록 페이지로 이동합니다.
- Image 목록 페이지 상단의 톱니바퀴 버튼을 클릭하세요. Registry/Repository 설정 팝업창이 열립니다.
- Registry/Repository 설정 팝업창에서 삭제 정책을 설정할 Image가 저장된 Registry명과 Repository명을 선택하고 확인 버튼을 클릭하세요.
- Image 목록 페이지에서 삭제 정책을 테스트 할 자원(Image)을 클릭하세요. Image 상세 페이지로 이동합니다.
- Image 상세 페이지에서 삭제 정책 테스트 탭을 클릭하세요. 삭제 정책 테스트 탭 페이지로 이동합니다.
- 삭제 정책 테스트 탭 페이지에서 설정된 삭제 정책을 테스트하려면 삭제 대상 Tags 하단의 정책 테스트 버튼을 클릭하세요.
- 삭제 정책 테스트 수행 알림 팝업창이 열리면 확인 버튼을 클릭하세요.
- 테스트 실행 신청이 완료되면 삭제 정책 테스트 실행 신청을 완료하였습니다 문구가 표시됩니다.
- 테스트가 완료되면 삭제 대상 Tags 항목에 삭제 정책의 적용 대상인 이미지 태그(다이제스트)가 표시됩니다.
2.2.5 - CLI로 Container Registry 사용하기
CLI 명령을 이용하여 Container Registry에 로그인하고 Container 이미지, Helm 차트를 관리하는 방법을 설명합니다.
CLI로 Container 이미지 관리하기
CLI 명령을 이용하여 Container Registry에 로그인하고 Container 이미지를 Push하거나 Pull 할 수 있습니다.
Container Registry에 로그인하기
사용자는 인증키를 이용하여 Container Registry에 로그인할 수 있습니다.
정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
인증키로 로그인하기
인증키의 AccessKey, SecretKey와 레지스트리 엔드포인트를 사용하여 로그인합니다.
- 레지스트리 엔드포인트 : Container Registry 상세 페이지에서 확인할 수 있습니다.
- 프라이빗 엔드포인트 : [registryname-registryid].scr.private.[region].[offering].samsungsdscloud.com
1 docker login <registry_endpoint>
2 Username: <accessKey>
3 Password: <secretKey>
- 인증키로 로그인하려면 IAM > 인증키 관리 페이지에서 인증키를 생성하고, 보안 설정에서 인증 방식을 인증키 인증으로 설정해야 합니다.
- 보안 설정을 수정하기 전에 인증키 보안 설정 수정 팝업 상단에 인증키 인증 방식에 대한 안내 문구를 반드시 확인하세요.
- 인증키를 생성하고 인증키 인증을 설정하는 방법에 대한 자세한 내용은 Management > IAM > 인증키 관리하기를 참고하세요.
이미지 Push하기
레지스트리에 이미지를 Push하려면 다음 명령어를 참고하세요.
1 docker push [registryname]-[registryid].scr.private.[region].[offering].samsungsdscloud.com/[repository]/[image:tag]
- 레지스트리에 이미지를 Push하려면 사용할 레지스트리에 대한 LoginContainerRegistry 권한과 리포지토리에 대한 PushRepositoryImages 권한이 필요합니다.
- 정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
이미지 Pull하기
레지스트리에서 이미지를 Pull하려면 다음 명령어를 참고하세요.
1 docker pull [registryname]-[registryid].scr.private.[region].[offering].samsungsdscloud.com/[repository]/[image:tag]
- 레지스트리에서 이미지를 Pull 하려면 사용할 레지스트리에 대한 LoginContainerRegistry 권한과 리포지토리에 대한 PullRepositoryImages 권한이 필요합니다.
- 정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
CLI로 Helm 차트 관리하기
CLI 명령을 이용하여 Container Registry에 로그인하고 Helm 차트를 Push하거나 Pull 할 수 있습니다.
Container Registry에 로그인하기
사용자는 인증키를 이용하여 Container Registry에 로그인할 수 있습니다.
정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
인증키로 로그인하기
인증키의 AccessKey, SecretKey와 레지스트리 엔드포인트를 사용하여 로그인합니다.
- 레지스트리 엔드포인트 : Container Registry 상세 페이지에서 확인할 수 있습니다.
- 프라이빗 엔드포인트 : [registryname-registryid].scr.private.[region].[offering].samsungsdscloud.com
1 helm registry login <registry_endpoint>
2 Username: <accessKey>
3 Password: <secretKey>
- 인증키로 로그인하려면 IAM > 인증키 관리 페이지에서 인증키를 생성하고, 보안 설정에서 인증 방식을 인증키 인증으로 설정해야 합니다.
- 보안 설정을 수정하기 전에 인증키 보안 설정 수정 팝업 상단에 인증키 인증 방식에 대한 안내 문구를 반드시 확인하세요.
- 인증키를 생성하고 인증키 인증을 설정하는 방법에 대한 자세한 내용은 Management > IAM > 인증키 관리하기를 참고하세요.
차트 Push하기
레지스트리에 차트를 Push하려면 다음 명령어를 참고하세요.
1 helm push [hello-world-0.1.0].tgz oci://[registryname]-[registryid].scr.private.[region].[offering].samsungsdscloud.com/[mychart]
예시와 같이 명령어를 작성하여 실행하면 차트를 mychart 리포지토리 내 hello-world 이미지에 0.1.0 태그를 적용하여 저장(업로드)합니다.
- 레지스트리에 차트를 Push하려면 사용할 레지스트리에 대한 LoginContainerRegistry 권한과 리포지토리에 대한 PushRepositoryImages 권한이 필요합니다.
- 정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
차트 Pull하기
레지스트리에서 차트를 Pull하려면 다음 명령어를 참고하세요.
1 helm pull oci://[registryname]-[registryid].scr.private.[region].[offering].samsungsdscloud.com/[mychart/hello-world] -version [0.1.0]
예시와 같이 명령어를 작성하여 실행하면 mychart 리포지토리 내 hello-world 이미지에 0.1.0 태그로 저장된 차트를 다운로드합니다.
- 레지스트리에서 차트를 Pull하려면 사용할 레지스트리에 대한 LoginContainerRegistry 권한과 리포지토리에 대한 PullRepositoryImages 권한이 필요합니다.
- 정책 및 권한 설정에 대한 자세한 내용은 Management > IAM > 정책을 참고하세요.
2.3 - API Reference
2.4 - CLI Reference
2.5 - Release Note
Container Registry
- Container Registry 기능 변경
- 이미지 태그 삭제 항목의 삭제 정책 활성화 설정 기능을 제공합니다.
- ServiceWatch 연계 기반 로그 수집 기능을 제공합니다.
- Container Registry 기능 변경
- 자체 암호화 / S3 API 호환 이슈 패치가 적용 완료된 Object Storage를 기반으로 Container Registry 서비스를 제공합니다.
- Registry에 대한 퍼블릭 엔드포인트와 접근제어 기능을 제공합니다.
- Registry의 프라이빗 엔드포인트 접근제어 대상 중, Multi-Node GPU Cluster 상품을 추가 제공합니다.
- Repository 및 저장된 Image 와 각각 태그(다이제스트)들에 대한 자동 삭제 정책 설정 기능을 제공합니다.
- Container Registry 기능 변경
- Registry내 저장된 Image들에 대한 Lock 기능을 제공합니다.
- Cloud Monitoring 상품과의 연계하여 Registry에 대한 모니터링 기능을 제공합니다.
- VPC Endpoint와 연계 기능을 제공합니다.
- Samsung Cloud Platform 공통 기능 변경
- Account, IAM 및 Service Home, 태그 등 공통 CX 변경 사항을 반영하였습니다.
- Container Registry는 컨테이너 이미지와 OCI(Open Container Initiative) 표준 아티팩트를 손쉽게 저장, 관리 및 공유가 가능한 레지스트리 와 리포지토리를 제공하는 서비스입니다.
- 임시버전으로 출시되었으며, 암호화 방안이 업데이트 되면 정식버전으로 마이그레이션 예정입니다.

