소개
쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 컨테이너 오케스트레이션 플랫폼입니다. 이번 챌린지에서는 쿠버네티스 클러스터를 구성하는 다양한 요소들과 그들 사이의 상호작용을 포함한 쿠버네티스 아키텍처를 살펴봅니다.
쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 컨테이너 오케스트레이션 플랫폼입니다. 이번 챌린지에서는 쿠버네티스 클러스터를 구성하는 다양한 요소들과 그들 사이의 상호작용을 포함한 쿠버네티스 아키텍처를 살펴봅니다.
쿠버네티스 제어 평면 (Control Plane) 은 클러스터의 전체 상태를 관리하며 애플리케이션의 배포와 확장을 담당합니다. 제어 평면의 주요 구성 요소는 다음과 같습니다.
제어 평면 구성 요소인 kube-apiserver, etcd, kube-scheduler, kube-controller-manager 의 상태를 조회하고 확인하십시오.
kubectl 명령어를 사용하여 제어 평면 구성 요소의 상태를 조회해야 합니다./home/labex/project 디렉토리에서 실행하십시오.제어 평면 구성 요소의 상태를 조회했을 때의 예상 출력 결과는 다음과 같습니다.
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
쿠버네티스 노드 (Node) 구성 요소는 컨테이너를 실행하고 애플리케이션을 위한 런타임 환경을 제공합니다. 노드의 주요 구성 요소는 다음과 같습니다.
쿠버네티스 클러스터에서 실행 중인 노드의 이름, 상태 및 기타 관련 세부 정보를 표시하십시오.
kubectl 명령어를 사용하여 쿠버네티스 클러스터의 노드 목록을 확인해야 합니다./home/labex/project 디렉토리에서 실행하십시오.노드 정보를 표시했을 때의 예상 출력 결과는 다음과 같습니다.
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 2m52s v1.26.1
쿠버네티스 포드 (Pod) 는 쿠버네티스에서 배포할 수 있는 가장 작은 단위로, 클러스터에서 실행되는 프로세스의 단일 인스턴스를 나타냅니다. 각 포드는 동일한 네트워크 네임스페이스와 스토리지 볼륨을 공유하는 하나 이상의 컨테이너로 구성됩니다.
simple-pod.yaml 파일을 생성하십시오.kubectl 명령어를 사용하여 포드를 배포하십시오./home/labex/project 디렉토리에 Nginx 이미지를 사용하는 simple-pod라는 이름의 포드 설정 파일 simple-pod.yaml을 생성하십시오.kubectl 명령어를 사용하여 해당 YAML 파일로부터 포드를 생성하십시오.kubectl 명령어를 사용하여 클러스터에서 실행 중인 포드 목록을 확인하십시오.포드 생성 및 조회 시의 예상 출력 결과는 다음과 같습니다.
pod/simple-pod created
NAME READY STATUS RESTARTS AGE
simple-pod 1/1 Running 0 29s
쿠버네티스 서비스 (Service) 는 포드 집합과 그 포드들에 접근하기 위한 정책을 정의하는 추상화된 개념입니다. 서비스의 주요 구성 요소는 다음과 같습니다.
nginx-service.yaml 파일을 생성하십시오.kubectl 명령어를 사용하여 서비스를 배포하십시오./home/labex/project 디렉토리에 80 번 포트를 노출하는 nginx-service라는 이름의 서비스 설정 파일 nginx-service.yaml을 생성하십시오.kubectl 명령어를 사용하여 해당 YAML 파일로부터 서비스를 생성하십시오.kubectl 명령어를 사용하여 클러스터에서 실행 중인 서비스 목록을 확인하십시오.서비스 정보를 표시했을 때의 예상 출력 결과는 다음과 같습니다.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m42s
nginx-service ClusterIP 10.96.184.71 <none> 80/TCP 4s
이번 챌린지에서는 제어 평면, 노드, 포드 및 서비스 구성 요소를 포함한 쿠버네티스의 전반적인 아키텍처를 살펴보았습니다. 다양한 구성 요소의 상태를 확인하는 방법, 간단한 포드와 서비스를 생성하는 방법, 그리고 외부 애플리케이션에 포드를 노출하는 방법을 학습했습니다. 쿠버네티스 클러스터를 구성하는 요소들과 그들 간의 상호작용을 이해하는 것은 컨테이너화된 애플리케이션을 배포하고 관리하는 데 있어 매우 중요한 기초가 됩니다.