2022 사이버먼데이 50프로 할인으로 CKAD 바우처를 샀지만 미루고 미뤄,, 돌아오는 2024년 2월에 만료된다.

만료되기 전, 친구와 점수내기를 하게 된다 (둘다 붙을건 알아서 취득내기가 아닌 점수내기임^^)

Untitled

이런 2점 차이로 졌다…

ckad_certification

아쉬움에 시험을 복기해 본다,,

Exam Preparation

시험 준비는 아래 링크를 참고하고 주로 뭄샤드형 강의에서 연결된 kodecloud에서 핸즈온위주로 준비하였다

https://github.com/dgkanatsios/CKAD-exercises

위 깃헙 링크는 회사에서만 보느라 c. Pod_design에서의 Labels and Annotations까지만 봤던..껄껄

아마 핸즈온은 87%를 12시간 미만으로 진행한듯하다

Untitled 1

사실 이 정도의 공부량으로 12시간까지는 안갈텐데 내가 시간을 많이 잡아먹었던 부분이 있었다. 바로 컨테이너 내의 커맨드 부분이었다.

  • 문제 : --command를 옵션으로 사용했을 때, 컨테이너 StartError 발생

      kubectl run time-check -n dvl1987 --image=busybox --dry-run=client -oyaml --command -- "while true; do date; sleep $TIME_FREQ;done > /opt/time/time-check.log" > time-check.yaml
    

    Untitled 2

      		State:          Waiting
            Reason:       CrashLoopBackOff
          Last State:     Terminated
            Reason:       StartError
            Message:      failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "while true; do date; sleep ;done > /opt/time/time-check.log": stat while true; do date; sleep ;done > /opt/time/time-check.log: no such file or directory: unknown
            Exit Code:    128
    
  • 해결방법1 : 해당 커맨드 앞에 sh -c를 붙여 준다.

      kubectl run time-check -n dvl1987 --image=busybox --dry-run=client -oyaml --command -- sh -c "while true; do date; sleep $TIME_FREQ;done > /opt/time/time-check.log" > time-check.yaml
    

    Untitled 3

  • 해결방법2 : docs에서 command를 검색하면 아래 링크를 찾을 수 있다. args 옵션을 추가하자!

    Define a Command and Arguments for a Container

    Untitled 4

    Untitled 5

  • 결론 : 해당 커맨드처럼 복잡한 쉘 스크립트나 여러 개의 쉘 명령어가 포함된다면 문제가 발생할 수 있다. 이런 경우 sh -c를 사용하게 되면 쉘을 인스턴스화하여 그 쉘에서 커맨드를 실행하게 해주므로 비로소 정상 동작하게 된다. 정확히는 쉘을 거치느냐 안거치느냐의 차이인데, 쉘 기반의 추가 처리나 파싱이 필요한 명령어일 경우에 sh -c를 사용하자!
  • 번외로, --command 옵션없이 실행해 보았다. 아래와 같이 args로 들어가게 된다!

      kubectl run time-check -n dvl1987 --image=busybox --dry-run=client -oyaml -- "while true; do date; sleep $TIME_FREQ;done > /opt/time/time-check.log" > time-check.yaml
    

    Untitled 6

생각보다 아는 듯한 문제도 시간을 잡아먹을 수 있으니, 핸즈온은 다 완료해 볼 것을 추천한다!!!!!

우리가 업무할 때는 시험 환경과는 다르니깐요!

Check System Requirements

[Kubernetes/CKA] 2022년06월28일 CKA 시험 후기(New Proctoring Platform PSI Bridge)

[Kubernetes/CKA] 2022년07월07일 CKA 시험 두 번째 후기(New Proctoring Platform PSI Bridge)

시험 환경은 위 링크에서 말한 환경과 동일하게 PSI 프로그램으로 본다

근데 체크인 할 때 작년에는 셀프 체크인 후 감독관이 확인 작업을 진행하는 방식이었는데

이번에는 모든 검사는 감독관이 직접 진행하였다.

책상위아래를 카메라로 보여주기 → 핸드폰 멀리 치웠는지(?) → 귀 보여주기 → 손목보여주기, 소매도 걷혀서 보여주기 → 물컵 투명한지 보여주기 → 편의 요청할 게 있는지?? 정도……?

이 모든 걸 영어로 채팅창으로 요구하니,, 이 때 필요한 것은 영문에 대한 집중과 문맥 파악정도만 가능하다면..! 눈치껏 ㅋㅋ ㅠ

생각보다는 간단하니 그냥 시험 시작 30분 전에 들어가서 천천히 진행하자!

Take Exam

나는 1년 전 7월에 CKA 시험을 봤고 현재는 쿠버네티스 환경에서 실무를 1년 넘게 하였다. 그래서 시험문제에서 무엇을 요구하는지는 알았지만 나에게 문제는 덜 익숙했던 툴 사용법이나 덜 익숙했던 리소스였다. 플러스로 yaml 파일 indent 정도..?

대부분의 문제는 CKA와 유사했다. 추가된 문제는 probe, docker 사용, 배포 전략, 리소스 버전 정도이다.

흔히들 CKA가 더 쉽다고 한다. 나 또한 그렇다고 생각한다.

왜일까 생각해 보면, 첫 번째로 CKA는 대부분 쿠버 시험으로 첫 시도하는 자격증으로 꼽힌다. 핸즈온 시험으로 감이 없기 때문이지 않을까? 두 번째로 CKA에서는 “클러스터 업그레이드”나 “ETCD 백업 및 복구”와 같은 시간이 좀 소요되거나 복잡하다고 느끼는 문제가 있다. 나에게는 이런 이유로 CKAD가 좀 더 수월한 시험이었다.

Untitled 7

후기를 좀 더 써보기 위해 Udemy Labs를 100프로 진행하고 왔다.

모든 핸즈온을 다 진행해 본 결과, 베이스로 쌓기 하나하나 도움이 되는 랩들이다. 시험문제에 출제되는 것도 아닌 것도 있었지만 시험이 최종목표가 다들 아니니까? 100프로 해 보기를 권장한다!

핸즈온을 다 진행해 보고 나면 --help 옵션으로 웬만한 커맨드는 다 커버된다고 본다!

물론 정말 찍먹이라 딥하게 들어가려면 뭔갈 하나 구축해 봐야겠다


후기를 마치고,, 영광스러운 CKAD 자격증과 함께 한해를 마무리하며,, 내년엔 CKS다!🤭

Leave a comment