[CKA] 취득후기 및 1년간의 DevOps 운영 후 느낀점
과거 개발자의 역할이 좋은 코드를 작성하는 것에 집중되어 있었다면, 현재는 그 산출물을 직접 배포하고 운영하는 것까지 포함하는 DevOps 엔지니어로 그 역할이 확장되고 있다.
CKA를 취득하고 1년간 AKS 기반의 DevOps 업무를 하면서 경험한 내용을 함께 정리해보았다.
CKA 취득 후기
CKA는 완전히 낯선 쿠버네티스를 처음 공부하기에 적절하다고 생각한다. 체감상 Spring보다 높은 추상도를 가진 쿠버네티스는 순전히 업무를 하면서 이해하기에는 답답한 부분이 많을 것이라 생각한다.
쿠버네티스 자체에 대한 이해를 높이기 위해서는 단순히 덤프를 푸는 것이 아니라 아래 강의가 매우 큰 도움이 되었다.
특히 강의 초반의 Control Plane(Master Node) 파트는 쿠버네티스가 어떤 식으로 동작하는지 이해를 잘 시켜주는데, 간략하게 정리하면 아래와 같다.
- kube-apiserver: Pod 생성을 비롯한 모든 요청의 진입점
- etcd: k8s의 데이터베이스로 오직 API Server와만 통신
- kube-scheduler: Pod를 어느 Node에 배치할지 결정
- kube-controller-manager: 여러 Controller의 모음 (Node, CronJob 등)
위 컴포넌트들은 실무에서 직접 구축할 일이 거의 없다. 대부분은 AWS의 EKS나 Azure의 AKS 같은 관리형 클러스터를 사용하기 때문이다.
Worker Node 영역도 강의에서 상당히 자세하게 다뤄준다.
- kubelet: Worker Node의 대장으로 Pod 생성 및 Control Plane에 상태 보고
- kube-proxy: Worker Node의 네트워크 라우팅 담당
- Container Runtime: 컨테이너 실행 담당
그 외에도 쿠버네티스 내의 다양한 리소스 이론을 설명해주는데 상당히 도움이 된다.
물론 실제 시험 점수를 올리기 위해서는 덤프 풀이만큼 효과적인 것도 없기에 아래 유튜브 덤프들도 큰 도움이 되었다.
결과적으로 88점으로 합격할 수 있었다.
CKA와 실무 쿠버네티스 (관리형 쿠버네티스)
실무에서 쿠버네티스를 직접 구축하고 사용하는 케이스는 적다. kubeadm으로 직접 구축하는 경우도 드물고, AWS의 EKS나 Azure의 AKS 같은 관리형 클러스터를 사용하는 것이 대부분이다.
관리형 쿠버네티스(AKS 기준)는 일반 쿠버네티스와 어떤 점이 다를까.
실제 마스터 노드인 Control Plane은 기본적으로 블랙박스다. 사용자는 Worker Node에만 접속이 가능하며, 해당 Node의 관리 권한만 가진다.
AKS(관리형 쿠버네티스)의 System Pool과 User Pool의 차이
System Pool에는 Control Plane과 통신하는 시스템 데몬들이 실행된다.
- kube-proxy → 각 노드에서 iptables 관리
- CoreDNS → Pod DNS 해석
- Azure CNI → 네트워크 할당
- metrics-server → HPA용 메트릭 수집
taint를 통해 일반 서비스 Pod들은 System Pool Node에 스케줄링되지 않도록 제한되어 있으며, 실제 서비스 워크로드는 User Pool에서 실행된다.
Control Plane과 어떻게 통신할까?
Worker Node와 관리형 Control Plane은 물리적으로 완전히 다른 위치에 있기 때문에 DNS 기반 통신이 필요하다.
이 DNS 정보는 Azure Private DNS Zone에서 관리되며, kubelet은 DNS 질의를 통해 자신이 속한 Control Plane의 API Server를 찾아간다.
그렇다면 실무에서 쿠버네티스 지식은 필요 없을까?
관리형 쿠버네티스는 Control Plane 운영(etcd 관리, 인증서 갱신, 업그레이드 등)을 클라우드 공급자가 담당하므로, 해당 영역의 직접적인 개입은 불필요하다.
하지만 Worker Node 영역은 전적으로 사용자의 책임이며, 장애 발생 시 디버깅 및 원인 분석은 쿠버네티스 내부 동작 원리에 대한 이해 없이는 불가능하다.
Pod의 생명주기 관리, requests/limits를 통한 리소스 최적화, PV/PVC를 활용한 스토리지 설계, RBAC 및 Secret 관리 등은 관리형 환경일지라도 동일하게 적용되는 핵심 지식이다.
결국 CKA에서 배운 쿠버네티스의 내부 동작 원리는 관리형 환경에서도 여전히 유효하다.
Control Plane이 블랙박스로 가려져 있어도, 장애 상황에서 “왜 kubelet이 API Server를 못 찾는가”, “왜 Pod가 Pending 상태인가”를 추적하는 능력은 결국 그 원리에 대한 이해에서 나온다.
1년간 AKS를 운영하면서 느낀 것은, 관리형 쿠버네티스는 운영의 부담을 줄여줄 뿐이지 쿠버네티스 지식 자체를 대체하지는 않는다는 것이다.
오히려 추상화된 레이어 뒤에서 무슨 일이 일어나는지 알고 있는 사람과 모르는 사람의 차이는 장애 상황에서 극명하게 드러난다.
DevOps를 시작하는 분들께는 단순히 시험 합격이 목적이 아니라, 쿠버네티스가 어떻게 동작하는지를 이해하는 도구로서 CKA를 활용하길 권장한다.


