티스토리 뷰
시험 준비
- 패스트캠퍼스 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 또는 직접 커맨드 사용
- Total
- Today
- Yesterday
- golang
- 컨트롤러
- Non-Blocking
- spring
- github actions
- docker
- go
- 우분투
- GitOps
- 카프카
- RDB
- CICD
- Kubernetes
- Java
- Controller
- helm
- 쿠버네티스
- Stream
- ubuntu
- container
- LFCS
- jvm
- rolling update
- Linux
- argocd
- db
- ci/cd
- 코틀린
- K8s
- kafka
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |