Kubernetes 기본

Kubernetes 기본 사항을 학습합니다. 이 모듈은 클러스터 액세스, Pod 이해, Pod 와 상호 작용, 확장 (Scaling) 을 위한 배포 (Deployments), 서비스 (Services) 를 사용한 앱 노출을 다룹니다. 실습 랩과 실제 환경 문제를 통해 이러한 필수적인 Linux 기술을 숙달하게 됩니다.

DevOps EngineerKubernetesDevOpsPython

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

Kubernetes에서는 개별 컨테이너를 직접 관리하는 대신 리소스를 선언하고, 클러스터가 실제 상태를 계속 원하는 상태에 맞춥니다. 이 실습 과정에서는 로컬 Kubernetes 클러스터에서 Nginx 워크로드를 실행하며 이러한 핵심 사고방식을 익힙니다.

kubectl과 YAML을 직접 사용해 클러스터 접근을 확인하고, Pod를 생성·점검하고, 실행 중인 컨테이너를 디버깅하고, Deployment로 복제본을 관리하고, Service를 통해 트래픽을 전달합니다. 마지막 챌린지에서는 애플리케이션을 배포하고 노출한 뒤 롤링 이미지 업데이트를 수행하고, 롤백으로 안정 버전을 복원합니다.

학습 내용

  • 단일 노드 Minikube 클러스터를 시작하고 현재 kubectl 컨텍스트, 컨트롤 플레인, 노드 상태 확인하기
  • YAML로 Nginx Pod를 정의하고 적용한 뒤 상태, 준비 여부, 상세 정보, 이벤트 해석하기
  • kubectl logs, kubectl exec, 임시 포트 포워딩으로 실행 중인 Pod 조사하기
  • 셀렉터와 Pod 레이블이 일치하는 Deployment를 만들고 ReplicaSet이 관리하는 복제본 관찰하기
  • 관리되는 Pod를 삭제해 자가 치유를 확인하고 Deployment를 새 복제본 수로 확장·축소하기
  • NodePort Service를 구성하고 셀렉터를 수정한 뒤 노드 포트에서 Nginx Pod까지의 트래픽 경로 추적하기
  • 마지막 챌린지에서 상태 비저장 애플리케이션을 배포, 노출, 업데이트, 모니터링, 롤백하기

추천 대상

첫 Kubernetes 실무 흐름을 경험하려는 DevOps 학습자, 개발자, Linux 관리자에게 적합합니다.

선수 지식: Linux 터미널을 편안하게 사용할 수 있어야 합니다. 컨테이너와 YAML 기초 지식은 도움이 되지만 필수는 아닙니다.

학습 환경: Docker, kubectl, Minikube, nano, curl이 설치된 브라우저 기반 Linux 터미널입니다. 랩은 Docker 드라이버를 사용하는 로컬 단일 노드 Minikube 클러스터에서 진행되므로 클라우드 계정이 필요하지 않습니다.

자주 묻는 질문

이 과정은 실제 Kubernetes 클러스터를 사용하나요, 아니면 명령만 시뮬레이션하나요?

로컬 단일 노드 Minikube 클러스터에서 실제 Kubernetes 리소스를 실행합니다. 랩에서 Pods, Deployments, ReplicaSets, Services를 만들고 kubectl로 실시간 상태를 확인합니다.

실행 중인 Pod를 문제 해결하는 방법도 배우나요?

예. 컨테이너 로그를 읽고, kubectl exec로 셸을 열고, 이미지의 운영체제 정보를 확인하고, Pod 이벤트를 검토하며, 포트 포워딩으로 Nginx 엔드포인트를 테스트합니다.

프로덕션 클라우드 배포나 고급 Kubernetes 관리도 다루나요?

아니요. Minikube에서의 기본 워크로드 운영에 집중합니다. 관리형 클라우드 클러스터, 다중 노드 관리, 영구 스토리지, Ingress 컨트롤러, 프로덕션 보안은 범위에 포함되지 않습니다.

마지막 챌린지는 무엇을 검증하나요?

복제본 3개인 Nginx Deployment와 포트 80의 Service를 만들고, 이미지를 nginx:1.19.0에서 nginx:1.19.1로 업데이트한 뒤 롤아웃을 모니터링합니다. 이후 롤백하여 최종적으로 Deployment가 안정 버전 1.19.0을 다시 사용하도록 합니다.

강사

labby
Labby
Labby is the LabEx teacher.