LabHub

CKA — 쿠버네티스 관리자 · 클러스터 아키텍처·설치·설정 · 실습

클러스터 조사하고 다루기

LabHub 에서 이어서 보기

목표

클러스터에 처음 들어갔을 때 하는 일 일곱 가지를 손에 익힙니다. 조사, 네임스페이스, 라벨과 애너테이션, 컨텍스트 전환, 노드 라벨링, kubectl explain, dry-run 매니페스트 생성입니다.

왜 중요한가

CKA 는 120분에 17문제입니다. 문제당 7분입니다. 매니페스트를 처음부터 손으로 쓰면 시간이 모자랍니다. 그래서 --dry-run=client -o yaml 로 뼈대를 뽑고 필요한 필드만 고치는 방식이 사실상 표준 전략입니다.

kubectl explain 은 그 다음 반쪽입니다. 시험장에서 볼 수 있는 문서는 쿠버네티스 공식 문서뿐인데, 필드 하나의 정확한 철자와 위치를 확인하는 데는 explain 이 훨씬 빠릅니다. 라벨과 애너테이션의 차이도 같은 맥락입니다. 라벨은 셀렉터가 고를 수 있는 식별자라 서비스와 컨트롤러가 참조하고, 애너테이션은 고를 수 없는 부가 정보라 도구들이 메타데이터를 실어 나릅니다. 둘을 바꿔 쓰면 조용히 아무것도 연결되지 않습니다.

단계

1. 네임스페이스 cka-basics 를 만들고 라벨 env=lab 을 붙인다.
2. 클러스터의 모든 노드 이름을 한 줄에 하나씩 /root/cka-basics/nodes.txt 에 저장한다. 파일에는 이름만 있어야 하고 헤더나 node/ 접두어가 있으면 안 된다.
3. cka-basics 에 ConfigMap app-meta 를 만든다. 데이터는 env=lab, 라벨은 tier=backend, 애너테이션은 owner=cka-student.
4. 현재 쓰고 있는 cluster 와 user 를 그대로 재사용하면서 기본 네임스페이스가 cka-basics 인 컨텍스트 cka-basics-ctx 를 만들고, 그 컨텍스트로 전환한다.
5. 노드 lab-node-1 에 라벨 disktype=ssdtopology.kubernetes.io/zone=rack-a, 애너테이션 owner=cka-student 를 붙인다.
6. 파드 톨러레이션의 effect 필드 설명을 kubectl explain 으로 뽑아 /root/cka-basics/explain.txt 에 저장한다.
7. dry-run 으로 Deployment web (이미지 nginx:1.27, 레플리카 3) 매니페스트를 만들어 /root/cka-basics/web.yaml 에 저장한다. 이 단계에서는 아직 적용하지 않는다.
8. 그 매니페스트를 cka-basics 에 적용하고, 디플로이먼트 오브젝트에 라벨 tier=backend 를 붙인 뒤 3/3 Ready 를 확인한다.

참고

단계 8개

  1. 네임스페이스 만들고 라벨 붙이기
  2. 노드 목록 파일로 뽑기
  3. 라벨과 애너테이션 구분해서 붙이기
  4. kubeconfig 컨텍스트 만들고 전환하기
  5. 노드에 라벨과 애너테이션 붙이기
  6. kubectl explain 으로 필드 설명 뽑기
  7. dry-run 으로 매니페스트 만들기
  8. 적용하고 라벨까지 마무리하기