IT writer

Kubernetes(K8s) 학습 요약 노트

헬로제이콥 2026. 2. 24. 16:55

1. 쿠바네티스 커리큘럼 (K8s Curriculum)

우리는 '컨테이너 지휘자'인 쿠바네티스의 기초를 다음 순서로 학습했습니다.

  • 1단계: 정체와 구조 - 마스터(두뇌)와 워커(일꾼) 노드로 이루어진 클러스터 이해.
  • 2단계: 최소 단위 포드(Pod) - 컨테이너를 담는 일회용 봉투인 포드의 개념.
  • 3단계: 관리자 디플로이먼트 - 포드의 개수를 유지하고 업데이트를 관리하는 사령탑.
  • 4단계: 서비스(Service) - 포드가 바뀌어도 변하지 않는 고정된 접속 창구(간판).
  • 5단계: 설정과 저장 - 보안 정보(Secret)와 일반 설정(ConfigMap), 데이터 보존(Volume).

2. 핵심 요약 (Key Concepts) 💡

  • Desired State (원하는 상태): 사용자가 선언한 상태를 쿠바네티스가 24시간 감시하며 현실과 맞춤.
  • Self-healing (자가 치유): 포드가 죽으면 즉시 새 포드를 만들어 서비스 유지.
  • Zero Downtime: 업데이트 시 포드를 하나씩 교체하여 서비스 중단 없이 배포.

3. 주요 오브젝트 및 명령어 (Key Objects & Commands) ⌨️

오브젝트 역할 주요 명령어 (kubectl)
Pod 가장 작은 실행 단위 kubectl get pods (상태 확인)
Deployment 포드 개수 및 배포 관리 kubectl apply -f [파일명].yaml (실행)
Service 고정 주소 및 로드밸런싱 kubectl get service (접속 주소 확인)
Common 전체 상태 확인 kubectl get all

4. 예제 파일 (YAML) 📄

쿠바네티스는 모든 설정을 YAML 파일로 설명합니다.

[deployment.yaml] - "포드 3개를 유지해줘"

YAML
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deploy
spec:
  replicas: 3             # 원하는 포드 개수
  selector:
    matchLabels:
      app: my-web
  template:
    metadata:
      labels:
        app: my-web
    spec:
      containers:
      - name: my-python-app
        image: my-first-app:latest

[service.yaml] - "포드들에 접속할 고정 간판을 달아줘"

YAML
 
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-web           # 이 라벨이 붙은 포드들을 찾아 연결
  ports:
    - protocol: TCP
      port: 80            # 서비스의 포트
      targetPort: 8080    # 포드 내부의 포트
  type: LoadBalancer      # 외부에서 접속 가능하게 설정