LabHub
배우기 러닝패스 코스

CKAD — Kubernetesアプリケーション開発者

アプリケーションが実際に生きる姿を見る

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

이 실습은 애플리케이션이 실제로 도는 클러스터에서 합니다

VM 안에 진짜 k3s 가 떠 있습니다. kubelet 이 프로브를 실제로 돌리고, Job 이 실제로 완료되며, ConfigMap 이 실제로 마운트됩니다.

CKAD 과정의 다른 실습이 도는 가짜 클러스터에서는 이 중 어느 것도 일어나지 않습니다. 프로브를 걸어도 돌지 않고, Job 을 만들어도 완료되지 않습니다.

처음 뜨는 데 2분쯤 걸립니다.

목표

프로브 세 가지, Job 과 CronJob, QoS, 설정 주입을 동작으로 확인합니다.

왜 중요한가

CKAD 에서 자주 틀리는 것들은 문법이 아니라 동작의 차이입니다.

단계

모든 것은 ckad 네임스페이스에 만듭니다.

  1. slow-start — 기동이 20초쯤 걸리는 컨테이너에 짧은 livenessProbestartupProbe 를 함께 걸어, 재시작 없이 준비되는 것을 /root/ckad/startup.txt 에 담으세요.
  2. api Deployment(레플리카 3)와 Service 를 만들되 한 파드만 readiness 가 실패하게 하고, 엔드포인트에서 빠지는 것을 /root/ckad/endpoints.txt 에 담으세요.
  3. batch Job(completions: 3, parallelism 지정)이 실제로 완료되는 것을 /root/ckad/job.txt 에 담으세요.
  4. doomed Job 이 backoffLimit 을 다 쓰고 Failed 가 되는 것을 /root/ckad/backoff.txt 에 담으세요.
  5. tick CronJob 을 만들어 실제로 한 번 이상 돌게 하고 /root/ckad/cronjob.txt 에 담으세요. concurrencyPolicy 도 정합니다.
  6. qos-guaranteed·qos-burstable·qos-besteffort 세 파드로 QoS 등급 셋을 만들어 /root/ckad/qos.txt 에 담으세요.
  7. cfg-pod 로 ConfigMap 을 볼륨과 환경변수 둘 다 주입하고, 파드 안에서 어떻게 보이는지를 /root/ckad/config.txt 에 담으세요.
  8. /root/ckad/report.mdstartup_restarts=, job_completions=, evicted_first= 세 줄과 설명을 쓰세요.

참고

기동이 느릴 때

slow-start — 기동이 20초쯤 걸리는 컨테이너에 짧은 livenessProbestartupProbe 를 함께 걸어, 재시작 없이 준비되는 것을 /root/ckad/startup.txt 에 담으세요.

짧은 liveness 만 걸면 다 뜨기 전에 죽습니다. startupProbe 가 그것을 미뤄 줍니다.

준비되지 않은 파드는 빠진다

api Deployment(레플리카 3)와 Service 를 만들되 한 파드만 readiness 가 실패하게 하고, 엔드포인트에서 빠지는 것을 /root/ckad/endpoints.txt 에 담으세요.

레플리카 셋 중 하나만 readiness 가 실패하게 만들고, EndpointSlice 를 보세요.

completions 와 parallelism

batch Job(completions: 3, parallelism 지정)이 실제로 완료되는 것을 /root/ckad/job.txt 에 담으세요.

completions 는 몇 번 성공해야 하나, parallelism 은 몇 개를 동시에 돌리나 입니다.

잡은 언제 포기하는가

doomed Job 이 backoffLimit 을 다 쓰고 Failed 가 되는 것을 /root/ckad/backoff.txt 에 담으세요.

backoffLimit 만큼 재시도한 뒤 Failed 조건이 붙습니다. 작게 잡아야 기다리지 않습니다.

실행이 겹칠 때

tick CronJob 을 만들어 실제로 한 번 이상 돌게 하고 /root/ckad/cronjob.txt 에 담으세요. concurrencyPolicy 도 정합니다.

*/1 * * * * 로 1분마다 돌게 하고 한 번 이상 실행되기를 기다리세요. concurrencyPolicy 도 정합니다.

자원이 모자랄 때 누가 먼저 쫓겨나나

qos-guaranteed·qos-burstable·qos-besteffort 세 파드로 QoS 등급 셋을 만들어 /root/ckad/qos.txt 에 담으세요.

QoS 는 직접 지정하는 것이 아니라 requests/limits 의 조합으로 결정됩니다.

볼륨과 환경변수는 다르다

cfg-pod 로 ConfigMap 을 볼륨과 환경변수 둘 다 주입하고, 파드 안에서 어떻게 보이는지를 /root/ckad/config.txt 에 담으세요.

같은 ConfigMap 을 두 방식으로 주입하고, 파드 안에서 어떻게 보이는지 비교하세요.

무엇을 배웠나

/root/ckad/report.mdstartup_restarts=, job_completions=, evicted_first= 세 줄과 설명을 쓰세요.

startup_restarts=, job_completions=, evicted_first= 세 줄과 설명을 쓰세요.