Kubernetes 클러스터 관리

Kubernetes 클러스터 관리를 학습합니다. 이 모듈은 노드 유지보수, 네임스페이스 및 쿼터, RBAC 권한 부여, Secrets 및 ConfigMaps, 워크로드 문제 해결을 다룹니다. 실습 랩과 실제 과제를 통해 이러한 필수 Linux 기술을 숙달하게 됩니다.

DevOps EngineerKubernetesDevOpsPython

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

소개

Kubernetes 관리는 공유 클러스터를 스케줄 가능하고, 리소스가 제한되고, 올바르게 권한이 부여되고, 구성과 진단이 가능한 상태로 유지하는 일입니다. 이 과정은 기본 워크로드 배포를 넘어 클러스터 유지보수와 비정상 애플리케이션 복구에 사용하는 운영 제어를 다룹니다.

로컬 Minikube 클러스터에서 노드 유지보수를 수행하고, Namespace와 할당량으로 워크로드를 분리하고, 최소 권한 RBAC를 시험하고, Pod에 런타임 구성과 Secret을 제공하며, 상태와 이벤트를 근거로 장애를 진단합니다. 마지막 구조 미션에서는 전용 Namespace에서 로그 분석과 Service 검색 복구를 함께 수행합니다.

학습 내용

  • 노드를 cordon, drain, 점검, uncordon하고 각 작업이 스케줄링에 미치는 영향 설명하기
  • Namespace를 만들고 ResourceQuota로 CPU 및 메모리 요청량과 한도의 합계를 제한하기
  • 리소스가 제한된 Pod를 배포하고 Namespace 범위와 할당량 사용량 확인하기
  • Namespace 범위의 읽기 전용 Role을 정의해 사용자에게 바인딩하고 가장으로 허용·거부 작업 시험하기
  • ConfigMap과 Secret을 만들고, 구성을 파일로 마운트하고, Secret 키를 환경 변수로 주입하기
  • Pod 상태와 이벤트로 잘못된 컨테이너 이미지를 진단하고 정확히 수정한 뒤 복구 관찰하기
  • 충돌하는 Deployment와 잘못된 Service 셀렉터를 수정하여 워크로드 준비 상태와 엔드포인트 복구하기

추천 대상

기본 Kubernetes Pods, Deployments, Services와 kubectl 사용법을 이미 이해하는 DevOps 학습자, 초급 플랫폼 엔지니어, Linux 관리자에게 적합합니다.

선수 지식: Linux 터미널과 YAML 기초 및 Kubernetes 워크로드 입문 지식이 필요하며, Kubernetes 기초 과정을 먼저 이수하는 것이 좋습니다.

학습 환경: Docker, Minikube, kubectl, nano와 로컬 단일 노드 Kubernetes 클러스터가 제공되는 브라우저 기반 Linux 터미널이며 클라우드 계정은 필요하지 않습니다.

자주 묻는 질문

단일 노드 Minikube에서도 노드 drain을 현실적으로 실습할 수 있나요?

명령과 스케줄링 결과는 정확히 확인하지만, 축출된 워크로드를 받을 두 번째 노드는 없습니다. 유일한 노드를 drain하면 uncordon할 때까지 대체 Pod가 Pending 상태로 남습니다.

RBAC 랩에서 실제 사용자 계정을 만들고 인증하나요?

아니요. jane ID를 위한 Namespace 범위 Role과 RoleBinding을 만든 뒤 kubectl auth can-i --as jane으로 Pod 읽기는 허용되고 생성과 삭제는 거부되는지 확인합니다.

이 과정의 Kubernetes Secret은 암호화되나요?

아니요. 표시되는 값은 Base64 인코딩일 뿐 암호화가 아님을 명확히 다룹니다. Secret 참조와 환경 변수 주입을 소개하며 저장 데이터 암호화와 외부 비밀 관리자는 범위 밖입니다.

마지막 챌린지에서는 무엇을 고치나요?

rescue-mission Namespace에 기존 Deployment와 Service를 적용하고, 로그에서 잘못된 command 재정의를 찾아 제거한 뒤 Service 셀렉터를 app: backend와 일치시킵니다. Deployment의 준비된 복제본 1개와 Service 엔드포인트 1개 이상이 검증됩니다.

강사

labby
Labby
Labby is the LabEx teacher.