일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PETERICA
- AI
- AWS EKS
- kotlin
- Kubernetes
- Linux
- Pinpoint
- Java
- kotlin querydsl
- 정보처리기사실기 기출문제
- minikube
- Spring
- 티스토리챌린지
- kotlin spring
- 공부
- 오블완
- mysql 튜닝
- 기록으로 실력을 쌓자
- 코틀린 코루틴의 정석
- MySQL
- APM
- 정보처리기사 실기 기출문제
- CKA 기출문제
- 정보처리기사 실기
- CKA
- kotlin coroutine
- IntelliJ
- aws
- CloudWatch
- Elasticsearch
- Today
- Total
피터의 개발이야기
[CKA] 자격증 합격 후기 및 공부방법 정리 본문
ㅁ 후기 핵심
시험을 합격하고 효율적인 공부방법이 이것이구나 정리가 되었다.
1. 실습에 우선하는 공부방법
ㄴ 이론적 이해도 중요하지만 시험의 특성상, 실습을 우선 시작하면 장점이 있다.
ㅇ 일단, CLI환경에서 작업속도를 향상시킬 수 있다. 아무리 이해를 잘해도 손이 느리면 시간이 부족하다.
ㅇ 오픈된 문서를 토대로 문제 유형에 따라 빠른 해결 방법을 찾는 연습이 필요하다. 실제 내가 운영하는 AWS EKS 환경에서 시스템을 운영도 해보고 볼륨 증설 작업이나 EKS 버젼업 과정을 실운영환경에서 수행해 보았다. 이런 작업을 수행할 때에는 그때 그때 문서를 보고 해결점을 찾는게 중요하였다. 수행 방법을 찾고 반복적 테스트를 통해 이해를 해나아갔었다.
ㅇ 이론적 접근은 쿠버네티스가 구동하기 위한 아키텍처 구조와 이 구조 위에서 어떤 리소스들을 어떻게 관리하는지 큰 그림으로 이해하고 세부적인 이해는 실습을 통해 문제를 해결하면서 공식문서를 보고 이해하게 더 효율적인 공부방법이라 생각한다.
2. 기출문제를 집중적으로 공략해라.
ㄴ 기출문제가 있는 줄도, 찾을 생각도 하지 못했다. 누군가 이런 이야기를 해 주었다면, 공부방법이 아주 많이 달라졌을텐데, 혼자 공부하면서 미쳐 깨닫지 못하였다. 기출문제를 꼭 확인하고 유형별로 정리를 하는게 가장 효율적이다.
3. killer.sh는 시험환경 적응용이다.
ㄴ killer.sh 보고 많이 긴장하게 된 것 같다. 시험이 어렵게 채감되면서 무의식적으로 긴장한 것 같다. 그래서 killer.sh가 제공하는 풀이 과정에 집중하였는데, 문제는 killer.sh보다 훨씬 쉽게 나온다. 중요한 포인트는 killer.sh가 제공하는 VDI 환경이 실환경과 유사하여 실 환경을 경험하기 위해 시험을 보는 게 맞다. 시험 자체가 어렵고, 난이도가 있어서 미쳐 경험해보지 못한 어려운 상황을 경험하는데는 좋은 환경이 될 수는 있다. 하지만 시험을 준비할 때, 너무 어려워서 긴장해서는 안된다.
아래의 글은 위에서 말한 실습 위주, 기출문제 위주의 공부방법에 대해서 풀어서 정리하였다.
## 목차 ##
ㅁ 나의 시험 경험들은?
- AWS 시험과 비교
ㅁ 공부 잘할 수 있는 방법은?
- 추천하는 공부방법
- 기출문제 풀이 예시
- 시험을 잘 치르는 방법- 환경설정 및 치트키
- 시험을 잘 치르기 위한 마음가짐
ㅁ 공부는 어떻게 할까?
- CKA 커리큘럼
- 기출문제
- 공부 시간은 얼마나?
ㅁ 이제 진짜 시험준비
- 시험 결제
- 시험환경
ㅁ 마무리
ㅁ 합격 후기- AWS 시험과 비교
2023. 3. 8, AWS DevOps Engineer Professional 자격증을 취득하고, 2024.1.30, CKA에 합격하고 느껴진 두 시험의 차이를 정리하였다.
AWS 공부는 초반이 쉽고, 후반으로 갈수록 지치고 어렵다면, CKA 공부는 초반에 어렵지만, 후반으로 갈수록 쉽다.
AWS 시험은 객관식이라 초반이 쉬웠지만 문제유형이 많고 공부량이 많아 후반에 힘들어졌다면,
CKA는 주관식이라 초반에 어려움이 있지만 문제유형이 상대적으로 적어 후반부에 공부가 쉬웠다.
AWS 시험은 실습이 아닌 이론적인 내용이라 많은 문제와 답을 기억하는 방식으로 시험공부를 했다면,
CKA 시험은 클러스터 관리라는 카테고리에 정해져 있어 문제 유형이 AWS에 비해 많지 않았다.
어찌보면 CKA도 문제가 정해져 있고, 그 풀이 과정도 비슷하여 알면 알수록 쉬워졌다.(물론 개념 이해가 쉬운게 아니다.)
시험은 2시간 부분점수가 있어서 모르는 것은 쿨하게 넘어가는 마인드 컨트롤이 중요하다.
시험을 치르는 동안 내가 부족했던 건, 마인드컨트롤이었다. 실습문제을 반복해서 오류없이 풀 수 있었지만, 실제 시험에서 오류가 발생하고 나도 모르게 한문제를 오래 잡고 있어서 알고 있는 문제도 다 풀지 못하였다. CKA 시험은 오픈북이며, 개념을 잘 이해하고 클러스터의 오브젝트를 잘 관리하는지 테스트 하는게 목적이다보니 문제 하나에 부분점수가 있다.
내가 시험을 치고 느낀 후기는 크게 두가지였다. 시험공부를 2달동안 효율적으로 공부할 수 잇는 추천 방법을 정리해 보았다.
ㅁ 추천하는 공부 방법
시험공부를 어떻게 가장 효율적으로 할 수 있을 지 그 방법을 정리하였다.
ㅇ Udemy 강의의 Mock Exam 1,2,3, Lighting Lab를 실습처럼 반복해서 보세요.
시험의 문제는 Udemy 강의의 Mock Exam 1,2,3, Lighting Lab과 거의 흡사하였습니다. 이 4개를 시험처럼 쿠베 문서를 찾아 빠르게 적용하는 연습을 반복적으로 하는 것을 추천한다.
ㅇUdemy는 실습을 위해 꼭 필요하지만, 개념정리는 실습을 통해 공식문서나 다른 한글 블러그를 참조하면 공부 시간을 단축할 수 있다.
Udemy 강의는 리소스를 이해하는 정도로 듣고, Practice Test를 실습하면서 hint와 Solution으로 문제 풀이방법과 개념들을 숙지하고 이와 연관하여 공식문서를 읽는 것이 좋다. Udemy 강의는 좋은 예시로 친절하게 설명해 주어 좋았지만, 너무 길고 제공하는 번역이 어색하여 혼란스러웠다. 그냥 영어를 선택하고 크롬 번역를 돌리는 편이 좋다.
특히 네트워크쪽은 정말 자세하게 설명해 주시는데, 이걸 꼭 이해해하면 큰 도움이 되겠다 싶어 많이 공부했지만, 안그래도 된다. 어차피 17문제 중 하나이고 지금 이해다 안되도 괜찮다.
공부 시간을 단축하고 싶다면, "udemy cka 강의 정리" 구글 검색하여 이미 친절하게 정리해주신 블러그님들의 글을 참조하면 좋다. 이미 CKA 시험 커리큘럼별로 기술문제나 시험유형들의 풀이과정과 개념을 정리해 놓아서 오히려 많은 도움이 되었다.
그래서 다시 한번 이야기 하지만, Udemy는 실습을 위해 꼭 보고 개념 정리는 공식문서나 블러그를 보는 것을 추천한다.
개인적으로는 쿠버네티스 입문이라는 책이 정리가 잘 되어 있어서 개념정리하는데 도움을 많이 받았다.
ㅇ CKA 기출문제를 찾아보고 풀어보아라.
구글에 CKA 기출문제를 찾아보고 푸고 가면 시험에 많은 도움이 되었다. 태런님 블러그의 기출문제 목록은 내가 보았던 시험 내용과 똑같았다. 그래서 다른 dump나 블로그 글을 보면 실질적인 시험을 치르는데 큰 도움이 된다.
ㅁ 기출문제 풀이 예시
위의 내용을 잘 이해하기 위해 내가 풀었던 기출문제 풀이과정을 예로 들어보자.
CKA 커리큘럼 > 클러스터 아키텍처, 설치 및 구성 > etcd 백업 및 복원 구현 문제이다.
1. kube doc에서 etcd backup 검색
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
snapshot save <backup-file-location>
2. 문서에서 백업 명령어를 복사하여 vi etcd.sh를 만든다.(vi는 편집용)
ㄴ endpoints, trusted-ca-file... 정보는 이미 문제에 정보가 주어져 있다.
3. 문제에서 정보만 복사 붙여서 실행하면 문제는 해결된다.
복원도 마찬가지 생략...
이것을 공부할 때는,
첫번째 글인, [CKA] 문제풀이 - 따배쿠 01. ETCD Backup & Restore에 텍스트로 풀이과정이 정리가 잘 되어 있고,
두번째 따배씨, 이성미 강사의 강의도 도움이 된다.
이 문제를 처음 개념을 이해하고 명령어 문법을 이해하려면 어렵게 느껴질 수 있다. 하지만, 출제 문제 중에 한가지 형태이고 어디서 복사해서 어떻게 붙이고 실행하는 과정을 한두번 겪고 나면, 위의 문제는 그냥 2분컷이어야 한다.
ㅁ 시험을 잘 치르는 방법- 환경설정 및 치트키
시험공부를 잘하는 것과 시험을 잘 보는 것은 다르다. 공부 열심히 한들 시험을 잘못보면 아무 소용이 없다.
ㅇ 시험 가이드와 시험 환경에 대한 글을 미리 숙지해야한다.
- Important Instructions: CKA and CKAD
- ExamUI: Performance Based Exams
ㅇ killer.sh 시험은 시험환경에 익숙하기 위해 꼭 봐야한다.
ㄴ 복붙환경 적응 필요
시험환경은 가상컴퓨터에서 치루어 지기 때문에 복사/붙이기 작동방식이 차이가 있다. 시험 중에 복붙에 혼란으로 인해 정신이 분산되고 실수가 발생하지 않도록 미리 시험 환경에 적응할 필요가 있다.
편집을 위해서는 VI를 사용하였고, 복사 붙이기는 혼돈을 줄이기 위해서 마우스 우클릭을 주로 사용하였다. 나는 맥을 사용하고 있는데, 나의 경우 터미널 복붙은 control+shift+c,v가 작동하고, 문제에서는 control+c,v가 잘 작동되는 편(?)이었다. 예상컨테 가상컴퓨터로 인해 랙이 일시적으로 발생하여 키가 잘 전달되지 않는 경우 복사 붙이기가 불규칙적이었다. 나의 경험상 80%정도 먹혔다.
ㅇ 문제마다 공식문서 링크가 제공된다.
몰랐던 사실로 인해 좀 당황했는데, 문제마다 공식문서 링크가 있다. VDI이전에는 북마크를 사용하는 경우가 있었는데, VDI 이후 북마크는 사용할 수 없게 되었지만, 문제 마다 상단에 공식문서 링크를 제공해 주고 있었다. 내 컴에서는 URL로 ku만 치면 링크가 떴는데, 막상 북마크 없는데서는 풀URL이 필요해서 잠시 당황했다.
ㅇ kubectl을 잘 활용하자
복잡한 작업은 YAML 파일로 해야겠지만, 간단한 작업은 kubectl으로 수행하면 빠르다.
ㅇ kubectl 사용 예문을 활용해라
kubectl 명령어 예시를 빠르게 검색할 수 있도록 다음 2페이지는 미리 띄워놓았다.
command line tool로 검색하여 Command line tool (kubectl) 페이지에 들어가면 왼쪽에서
- kubectl Quick Reference
- kubectl commands
메뉴를 찾아 띄어놓고 필요 시 웹검색을 통해 찾을 수 있다.
참고로 시험환경에서 웹 페이지 내 검색은 Ctrl+f이고 검색 단어는 브라우저 하단에 나타난다.
ㅇ 기본 패키지 활용하기
# (기본설정) kubectl을 k로 줄여주어서 타자 시간을 멀어줌. 되어 있음
alias k=kubectl # will already be pre-configured
# (설정필요) sample yaml 얻거나 yaml 문법 정상 테스트 시 자주 사용
export do="--dry-run=client -o yaml" # k create deploy nginx --image=nginx $do
# (설정필요) pod 삭제 시 즉시 수행됨
export now="--force --grace-period 0" # k delete pod x $now
작지만 큰 타자 시간을 줄일 수 있는 팁이다. 설정하여 명령어를 빠르게 수행할 수 있다.
ㅇ vimrc 트릭으로 discuss 검색이 가능하다.
vimrc + 검색키워드를 입력하면 명령어 샘플들이 일부 검색된다. 해당 링크로 들어갈 수 없지만, 공식문서 검색을 통해 해답을 찾지 못하면 트릭으로 discuss을 검색하면 힌트를 얻을 수 있다.
ㅁ 시험을 잘 치르기 위한 마음가짐
모르는 문제는 아는 만큼만 풀어라! 부분 점수도 있고 커트라인도 66점이다.
Udemy에서 제공하는 Practice들을 자주 풀면서 실습에 더 집중해라. 기본적인 문제유형만 잘 풀어도 충분히 시험에 통과할 수 있다. 2분컷 이상되는 문제들은 문제 하단에 Flag 표시하고 우선 쉬운 문제부터 풀어야 한다. 이후 시간이 걸리는 문제더라도 명령어를 수행한 이력을 통해 부분 점수가 주어진다.
진짜 실력은 자신감에서 시작한다고 생각한다. 커리큘럼에 따라 실습 연습 풀면서 공식문서 자주 보다 보면 명령어가 손에 익숙해 지고, 쿠버네티스의 리소스들이 조금씩 이해가 되기 시작하면 자신감이 생기게 된다. 실습을 우선 열심히 하는 것이 지름길이다.
그래서 우선 커리큘럼을 인지해야 한다.
ㅁ CKA 커리큘럼
주제 | 비중 |
Cluster Architecture, Installation & Configuration | 25% |
Workloads & Scheduling | 15% |
Services & Networking | 20% |
Storage | 10% |
Troubleshooting | 30% |
# 클러스터 아키텍처, 설치 및 구성
- 역할 기반 액세스 제어(RBAC) 관리
- Kubeadm을 사용하여 기본 클러스터 설치
- 고가용성 Kubernetes 클러스터 관리 기본
- 인프라를 프로비저닝하여 Kubernetes 클러스터 배포
- Kubeadm을 사용하여 Kubernetes 클러스터에서 버전 업그레이드 수행
- etcd 백업 및 복원 구현
# Workloads & Scheduling
- 배포 및 롤링 업데이트 및 롤백 수행 방법 이해
- ConfigMap 및 비밀을 사용하여 애플리케이션 구성
- 애플리케이션을 확장하는 방법 알아보기
- 강력한 자가 복구 애플리케이션 배포를 생성하는 데 사용되는 기본 요소 이해
- 리소스 제한이 Pod 일정에 미치는 영향 이해
- 매니페스트 관리 및 공통 템플릿 도구에 대한 인식
# 서비스 및 네트워킹
- 클러스터 노드의 호스트 네트워킹 구성 이해
- 포드 간 연결 이해
- ClusterIP, NodePort, LoadBalancer 서비스 유형 및 엔드포인트 이해
- Ingress 컨트롤러 및 Ingress 리소스 사용 방법 파악
- CoreDNS를 구성하고 사용하는 방법 알기
- 적절한 컨테이너 네트워크 인터페이스 플러그인 선택
# Storage
- 스토리지 클래스, 영구 볼륨 이해
- 볼륨 모드, 액세스 모드 및 볼륨 회수 정책 이해
- 영구 볼륨 클레임 프리미티브 이해
- 영구 스토리지로 애플리케이션을 구성하는 방법 알아보기
# Troubleshooting
- 클러스터 및 노드 로깅 평가
- 애플리케이션 모니터링 방법 이해
- 컨테이너 stdout 및 stderr 로그 관리
- 애플리케이션 오류 문제 해결
- 클러스터 구성 요소 오류 문제 해결
- 네트워킹 문제 해결
ㅁ 기출문제
% 난이도 대중소 표시
## 트러블 슈팅 관련
* (대) 특정 Node가 NotReady 상태인데 Ready가 되도록 TroubleShooting
## Cluster 관련
* (중) Cluster Upgrade (Controlplane Node만 진행)
* (중) ETCD snapshot save & restore
## Resource 관련
* (중) PVC 생성 후 Pod와 PVC 연동 (PV는 이미 존재), PVC 용량 수정
* (중) sidecar multi containers로 sidecar의 log 확인하기
* (중) Pod에 nodeSelector (disktype=ssd) 추가
* (중) 이미지 nginx 1.16으로 Deployment 생성 후 이미지를 nginx 1.17로 업그레이드 하기
## 네트워크
* (중) Pod(port 80)생성하고 NodePort타입 Service 생성
* (중) Ingress를 생성해서 이미 생성 되어 있는 서비스와 연결하고 확인
* (중) Networkpolicy를 생성해서 특정 namespace의 Pod만 특정 경로로 연결
## 권한 관련
* (중)ServiceAccount 생성, Role 생성, Role Binding 생성 후 확인
## 스케줄 관련
* (초) Node를 drain하여 해당 노드는 SchedulingDisabled상태로 변경하고 Pod를 다른 Node로 옮기기
* (초) 특정 Deployment에 대해 replicas 수정
## 필터를 통한 데이터 추출
* (초) Pod에서 log grep해서 파일로 추출
* (초) Taint가 없는 Node의 개수를 파일로 저장
* (초) Node의 상태가 ready 개수를 파일로 저장
* (초) 사용률이 가장 높은 Pod를 특정 label로만 조회해서 파일로 저장
위의 글은 태런님의 블러그에서 참조하였다. 기출문제 검색해보면 알겠지만, 유형이 비슷하여 기출문제 위주로 공부해도 시험 합격률이 높아진다.
기출문제 풀이과정을 [CKA] 기출문제 정리에 정리하였습니다.
ㅁ 공부 시간은 얼마나?
20~25일은 강의수강 및 연습문제 실습, 5일정도는 Mock Exam,Lightning Lab 반복 연습,
30일 시험을 목표로 삼길 바란다.
Udemy 강의는 총 23시간 정도 된다. 한달 중 20~25일은 강의를 보고, 실습을 하면서 기출문제를 함께 푼다.
Mock Exam-1,2,3 -> Lightning Lab 순서로 5~10일 정도 실습 손연습을 한다.
그리고 한달정도 후 시험을 보면 된다.
내가 후회하는 점은 공부시간이 길다고 해서 공부가 잘되지 않는 다는 것이다. 사실 나는 공부한다는 명목으로 udemy의 내용을 블로그로 정리하면서 차일 피일 시험을 미루었다. 하지만 효율적 측면에서 시험날짜를 픽스하고 일단 시험에 도전해 보길 권한다. 시험기회는 2번이다.
ㅁ 시험 결제
시험 신청은 이곳이다. 시험 결제 시 50% 할인을 받아 197.5$에 결제 했다. 구글에서 검색을 하니 할일코드를 쉽게 검색할 수 있었다.
ㅁ 시험환경
ㅇ 응시장소
나는 맥북프로로 다른 기기가 없는 애들 침실에서 의자와 책상을 가져다 놓고 시험을 치루었다.
ㅇ 시험 시작 페이지
시작시간 30분 전에 Take Exam버튼이 활성화 된다.
ㅇ VID 설치
시험 입장 후, 컴퓨터 환경 체크 (카메라, 마이크), 각종 동의서를 확인하고 넘어가면 가상 데스크톱 인프라(VDI)를 설치 파일을 다운받는다. 설치 중에 에러가 발생하여 당황했는데, 종료하고 다시 시도하니 해결되었다. 왜인지는 모르겠지만, 다른 사람도 비슷한 경험의 후기를 볼 수 있었다.
ㅇ 본인확인
본인확인을 위해 여권을 준비하였다. 여권을 촬영하고 나의 얼굴도 촬영하였다.
ㅇ 응시 환경 체크
감독관이 영어 채팅으로 천장, 바닥, 벽, 책상 위/아래, 손목을 보여달라고 요구한다. 맥북 카메라를 통해 이곳 저곳을 촬영하였다.
라벨이 없는 투명 물병은 허락된다고 하였다.
ㅁ 마무리
CKA 시험을 통해 미쳐 알지 못했던 쿠버네티스의 기능들을 알게 되었고, 공식문서와 다양한 사용방법에 대해서 시험공부를 통해서 알게 되었다. 초기 udemy 강의의 자세한 설명이 리소스 이해하는데 많은 도움이 되었다. 클러스터를 직접 관리하는 실습형 자격증 시험은 처음이었는데 이론과 실습을 병행하여 실질적인 쿠버네티스 관리 스킬을 향상 시킬 수 있었던 좋은 시간이었고, 재미도 있었다.
ㅁ 함께 보면 좋은 사이트
ㅇ 다른 분들 후기
'Kubernetes > CKA&CKAD' 카테고리의 다른 글
[CKA] Udemy 실습문제풀이 - Mock Test 3 (1) | 2024.02.18 |
---|---|
[CKA] 기출문제 정리 (4) | 2024.02.05 |
[CKA] 개념정리 - nodePort, port, targetPort 정리 (0) | 2024.01.29 |
[CKA] Udemy 실습문제풀이 - Trouble shooting (0) | 2024.01.28 |
[CKA] Udemy 실습문제풀이 - Networking2 (0) | 2024.01.28 |