1. 관리형 쿠버네티스 OKE(Oracle Container Engine for Kubernetes) 사용하기
본 문서에서는 Docker, Kubernetes 등 컨테이너 관련 기본 지식이 있다는 전제하에, OKE(Oracle Container for Kubernetes)를 시작할 때 참고할 만한 내용을 설명하고자합니다.
Oracle Container Engine for Kubernetes는 OCI에서 제공하는 관리형 쿠버네티스 서비스 입니다. 줄여서 OKE라고 부며 CNCF 인증된 Kubernetes 버전을 사용하고 있습니다.
Kubernetes Cluster
쿠버네티스 클러스터는 노드의 그룹으로 구성되어 있습니다. 각 노드는 물리 머신 또는 가상 머신이며, 클러스터는 두 개의 노드 형태로 이루어져 있습니다.
- Control Plane Nodes: 이전에는 Master Node라고 얘기하였습니다. 애플리케이션 컨테이너 Pod를 Worker Nodes에 실행하고 관리하는 것이 주요 역할로, 가용성을 위해 OKE에서는 3중화하고 있습니다.
- Worker Nodes: 애플리케이션 컨테이너 Pod가 실행되는 노드입니다. Node Pools로 구성되어 있으며, 각 Node Pool은 동일한 Shape의 Worker Node들로 구성되어 있습니다.
Basic Cluster vs Enhanced Cluster
OKE 클러스터를 만들때 두 가지 클러스터 타입중에서 선택해서 만들 수 있습니다.
Basic Cluster: Enhanced Cluster 출시 이전에 유형 선택 옵션없이 만들어 지던 기본 클러스터 유형으로 Kubernetes, OKE의 코어 기능을 모두 지원합니다.
Enhanced Cluster: 2023년 3월 14일 - Enhanced clusters now available에 따라 출시되었습니다.
Basic Cluster에서 제공하지 않는 다음 기능들을 제공합니다.
- Virtual Nodes: Worker Nodes로 Virtual Nodes를 사용할 수 있습니다. Serverless로 Worker Nodes에 대한 스케일, 업그레이드, 트러블슈팅 등 관리에 대한 부담이 감소하게 됩니다.
- Cluster Add-On: Basic Cluster 에도 필수 애드온(예, CoreDNS, cube-proxy, CNI)이 설치됩니다. 여기에 추가하여 Enhanced Cluster에서는 추가 애드온들을 제공하며, 사용자가 선택하여 설치하고, 오라클이 자동 업그레이드 하는 기능을 제공합니다. 추가 애드온들은 점차 확대해 간다고 합니다.
- Workload Identity: 애플리케이션 컨테이너 Pod에서 OCI 자원에 대해 API Call을 하는 경우, OCI Policy로 권한 설정이 필요합니다. 기본적으로는 애플리케이션내에서 User 인증을 사용하는 방법 또는 Worker Nodes 그룹에 대해 권한 설정하는 방법이 있습니다. 여기에서 추가해 Workload Identity는 Pod 단위로 권한 설정을 지원합니다.
- More Worker Nodes: Basic Cluster는 클러스터당 최대 1000개의 Managed Nodes를 지원합니다. Enhance Cluster에서는 클러스터당 최대 2000개까지, 더 많은 노드를 지원합니다.
- SLA: Oracle Cloud Infrastructure Service Level Agreement (SLA)에 따라 Kubernetes API Server의 Availiability가 만족하지 않는 경우 보상합니다.
- Node cycling when updating or upgrading node pools: Worker Node 속성 변경시, 버전 업그레이드시 서비스 무중단을 위해 기존 Worker Nodes를 순차적으로 교체해 주는 작업이 필요합니다. Enhance Cluster에서는 관리 편의를 위한 자동화된 Node Cycling 기능을 제공합니다.
Basic Cluster는 Cluster에 대한 비용, Control Plane Nodes에 대한 비용이 발생하지 않습니다. Enhanced Cluster는 Cluster 당 비용이 발생합니다. Enhanced Cluster의 Kubernetes API Server(on Control Plane)에 대한 SLA에 제공과 추가 기능 제공에 대한 비용으로 생각할 수 있습니다.
참조
- Working with Enhanced Clusters and Basic Clusters
- Comparing Enhanced Clusters with Basic Clusters
- Container Engine for Kubernetes Limits
이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.