CKA(Certified Kubernetes Administrator) 취득 후기

2023. 6. 19. 22:46[ 자격증 ]/[ CKA ]

 

 

 

시험 준비

- 패스트캠퍼스 Kubernetes 자격증 마스터 클래스
CKA/CKAD/CKS, https://fastcampus.co.kr/dev_online_kubemaster

 

 

 

문제에서 다룬 주제

1. ETCD 백업 / 복원

2. 클러스터 업그레이드

3. sidecar 컨테이너

- emptyDir 타입의 공유 볼륨 활용

4. Multicontainer-Pod 관련

5. Ingress Resouece

- Ingress Controller는 이미 구성된 상태에서 룰만 구성

6. 노드 NotReady 트러블슈팅

- 컨테이너 런타임, kubelet이 정상적으로 실행 중인지 확인

7. 디플로이먼트 scale out 관련

8. ServiceAccount 구성 및 RBAC 할당(ClusterRole, 바인딩)

9. Pod의 특정 로그 추출

10. PV 관련

11. CPU 사용량 모니터링 및 추출

12. 노드 스케줄링 제한 관련

13. Pod에 nodeSelector 지정

- Affinity나 nodeName을 활용하는 문제 아님

14. 네트워크 정책 구성

- 특정 네임스페이스 내 모든 Pod에 적용할 경우, podSelector: {}를 명시

15. 노드 taint 관련

16. 디플로이먼트 및 서비스 관련

- Pod의 port 및 Service의 targetPort 연결 시 포트 번호 기반이 아닌 name 기반 연결

17. 스토리지 클래스 통해 생성된 PV를 claim하는 PVC 생성 및 Pod 마운트

 

 

 

- 노트북을 사용하지 말자, 생각보다 PSI가 배터리를 빨리 먹고 굉장히 느려서 시험 시간을 많이 지체했다.

- 문제마다 클러스터 컨텍스트 전환 커맨드 사용을 까먹지 말자. 시험 중 1, 2번에서 이걸 하지 않아 두 문제를 그대로 날리고 85점을 받았다.

- 웬만하면 오브젝트 생성시 yaml manifest를 생성하는 것보다 k create, run, expose 등의 커맨드를 사용하는 것이 좋다. 커맨드를 사용하면 속도 측면에서 유리할 뿐만 아니라 필요한 필드들(ex. ClusterRole 및 Role의 apiGroups, Service의 selector 등)을 자동으로 지정해 준다.

- 기존 실행 중인 오브젝트를 변경할 때엔 k edit 또는 이게 실패할 경우 생성된 tmp yaml 파일을 k replace --force -f 커맨드로 빠르게 삭제 및 재구동시킬 수 있다.

- static pod를 변경할 땐 기존 static pod를 다른 디렉토리에 백업해 두고 변경하자. 변경 중 문제 발생 시 백업하기에 용이하다.

- Pod manifest의 command 작성시 첫 번째 인자는 반드시 실행 가능한 프로그램 명을 설정해야 한다. 예를들어 "sleep 1000"과 같은 형태는 잘못된 형식이며 "sleep", "1000"과 같이 지정해야 한다.

- 알아두면 좋은 커맨드:

    1) grep 커맨드의 i 및 e 옵션

    2) wc 커맨드로 라인 개수 세기

    3) cut 커맨드로 필요한 컬럼만 자르기

    4) apiGroup 확인하기: 'k explain <resource>' 또는 'k api-resources'

    5) Pod IP의 CIDR 확인: 구동 중인 CNI플러그인 pod에서 'ip'를 grep 해서 확인
    6) Service IP의 CIDR 확인: kube-apiserver에서 'service'를 grep해서 확인

    7) kubectl get의 -o custom-columns 옵션으로 출력할 컬럼 지정 및 컬럼 이름 변경

    8) kubelet과 같이 k8s 오브젝트가 아닌 프로세스 로그 확인: journalctl -u kubelet

    9) jsonpath에서 조건을 넣을 때에는 ?(@.변수명 == "값") 과 같이 사용(조건식은 ==외 필요한 조건식 지정)

    10) 다른 Pod에 잠시 접속해서 테스트할 임시 Pod 생성: k run test --image=alpine/curl --rm -it -- sh(또는 busybox 이미지 사용), 들어갈 커맨드에는 sh, /bin/sh, /bin/bash 또는 직접 커맨드 사용