본문 바로가기

프로그래밍/kubernetes

CKA 시험 비중(2021년 3월 7일 기준)

원래 이 내용은 CKA 시험 관련 잡다한 정리에 적어 놓은 내용이었는데 이 내용이 의외로 좀 많은지라 이것만 따로 하나의 글로 뺐다. 이 주제 하나로도 따로 정보가 된다고 생각하여 별도로 정리했다.

 

시험비중(https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/)

시험비중에 대해선 CNCF 홈페이지에도 있지만 위에 링크를 걸어놓은 linux foundation 사이트쪽이 더 디테일해서 여기것을 가져왔다.

 

시험 비중에 대한 번역(작업중, 영어 그대로 곧이 곧대로 번역하기보다는 kubernetes의 의미를 곁들여서 번역하는게 맞을듯, 그러나 아직은 공부가 미진한 관계로 구글번역으로 먼저 번역 )

 

Udemy 강의 동영상을 통해 공부하다보면 이 항목은 CKA 범위에서 벗어난다고 말하는데 공부하면서 체크해보니 벗어난다는 항목이 포함되어 있어서 좀 맞춰봐야 할듯

Storage

Understand storage classes, persistent volumes

(Storage Class 와 Persistent Volumes(PV) 에 대한 이해, 시작하세요 도커 & 쿠버네티스 책에서는 PV에 대한 설명은 있었지만 Storage Class 에 대한 설명이 없어서 이에 대한 공부가 필요할듯 하다.

강의 동영상에서는 Storage Class가 CKAD 시험 항목이라고 해서 얘는 Skip 해도 된다고 언급하는데 Skip 하지 말것, 시험 범위에 포함되어 있음)


Understand volume mode, access modes and reclaim policies for volumes

(PV의 volume mode(AWS EBS, HostPath 등 어떤 타입의 Volume을 사용할지), Access Mode(READONLYMANY, READWRITEONCE, READWRITEMANY), Reclaim Policy(Retain, Delete, Recycle)에 대한 이해)


Understand persistent volume claims primitive

(PVC에 대한 이해)


Know how to configure applications with persistent storage

(영구 저장소로 어플리케이션을 구성하는 방법, kubernetes에서 설정한 volume을 이용하게끔 어플리케이션을 설정하는 방법에 대한 이해를 물어보는듯 하다)

Troubleshooting

Evaluate cluster and node logging

(Cluster와 Node Logging 평가, Cluster와 Node의 로그 출력을 통해 문제점을 해결하는 부분에 대한 평가로 보여진다. Cluster와 Node에서 출력되는 Log를 어떻게 볼 수 있는지에 대한 이해를 해야 할듯)


Understand how to monitor applications

(애플리케이션 모니터링 방법 이해, Pod에서 실행되는 어플리케이션을 모니터링 하는 것으로 보인다. 다만 이 모니터링을 로그를 통해 하는 것인지는 불분명하다. 이 부분은 공부해봐야 알듯)


Manage container stdout & stderr logs

(컨테이너의 기본 출력 로그와 기본 에러 로그 관리)


Troubleshoot application failure

(어플리케이션 실패 문제 해결, 관련 예제들을 몇개 보면 어플리케이션과 연결되는 DB의 서비스 이름이 잘못되어있다든가 하는 설정의 문제로 나오는 성향이 있어서 다른 Pod이나 또는 Service 로의 연결 이름을 올바르게 주었는지 이런 부분을 확인하면 될듯 하다. 그러나 네트워크적인 문제 뿐만 아니라 Storage 같은 것일 가능성도 있으니 이러한 분석력을 키우는 것이 좋을듯)


Troubleshoot cluster component failure

(클러스터 구성 요소 실패 문제 해결, 이것도 관련 예제를 보면 Master Node는 정상 동작하는데 Worker Node가 비정상적인 상황에 대해 어떻게 해결하는지에 대한 이런 류의 문제들이었다. 해당 요소(위의 예를 빌리자면 Node)의 describe 명령(ex: kubectl describe ...)를 통해 상세 내용을 보고 문제를 해결하는 형태였다.


Troubleshoot networking

(네트워킹 문제 해결..이거는 이런 류의 문제를 보지 못해서 아직 머라 못하겠다)

Workloads & Scheduling

Understand deployments and how to perform rolling update and rollbacks

(배포 및 롤링 업데이트 및 롤백을 수행하는 방법 이해, deployment를 이용해서 배포하면 리비전 관리가 가능하기 때문에 특정 버전으로의 롤백이 가능하다. 이 부분에 대한 이해로 보이고, 업데이트를 할때 전체 배포된 것중 몇 퍼센트를 죽이고 죽인 수 만큼 다시 업데이트 하는 이런식의 정책 설정이 가능하기 때문에 이런 부분에 대한 이해가 필요하다. 물론 전체를 죽이고 전체를 다시 살리면서 업데이트하는 이런 방법도 가능하다)


Use ConfigMaps and Secrets to configure applications

(ConfigMap 및 Secrets를 사용하여 어플리케이션 구성, ConfigMap 및 Secrets를 이용해서 어플리케이션의 환경 구성이 가능한데 이 부분에 대한 이해가 필요하다)


Know how to scale applications

(어플리케이션 확장 노하우, ReplicaSet, Deployment의 spec.replicas 옵션을 통해 스케일 조정이 가능한데 이것을 의미하는 것인지는 모르겠다. 그러나 만약 이것이라면 이것을 사용할때 yaml 파일을 이용해서 할 수도 있고 명령어를 이용해서도 할 수 있기 때문에 이 부분에 대한 다양한 방법들을 습득해 두는 것이 좋을듯 하다)


Understand the primitives used to create robust, self-healing, application deployments

(강력한 자가 치유 애플리케이션 배포를 만드는데 사용되는 기본 요소 이해, replicaset이나 deployment를 통해 pod을 배포했을때 pod에 문제가 발생하였을 경우 이러한 pod을 제거하고 다시 생성하는 방법에 대한 이해로 해석했다. 근데 이게 사실 실습을 해보면 별다른 설정없이 지가 알아서 하는지라 이것에 대해 먼가 좀더 원리적인 측면을 봐야 하는건지..하는 생각이 든다..머 공부해보면 정리될듯

강의 동영상에서 Self Healing에 대한 언급이 있긴 한데 CKAD 시험 항목이라고 따로 설명을 한 것이 없다. 그냥 문서 형태로만 짤막하게 다뤄서 이 부분은 봐야 할듯)

 

Understand how resource limits can affect Pod scheduling

(리소스 제한이 Pod Scheduling에 어떤 영향을 미치는지에 대한 이해, 아직 스케줄링에 대한 공부가 부족하여 이게 무엇을 의미하는지를 모르겠다..)


Awareness of manifest management and common templating tools

(메니페스트 관리 및 일반적인 템플릿 도구에 대한 인식. 이것도 아직 공부 부족이라 무엇을 의미하는지를 모르겠다)

Cluster Architecture, Installation & Configuration

Manage role based access control (RBAC)

(역할기반 액세스 제어(RBAC) 관리. 이거는 RBAC를 공부하다보면 알게 될듯)


Use Kubeadm to install a basic cluster

(kubeadm을 이용하여 기본 클러스터 설치. kubeadm을 이용해서 master node 설치하고 worker node를 조인시키는 방법을 알아두면 될듯. 이거는 Vagrant로 Kubernetes 클러스터를 직접 구축해봤기 땜에 어렵지는 않으나 다만 문제를 봐야 할듯 하다. 방화벽 끄고, docker 설치하고 하는 이런 부분도 포함되는건지 아니면 kubeadm에만 촛점을 맞추면 되는건지..)


Manage a highly-available Kubernetes cluster

(고가용성 Kubernetes 클러스터 관리. 이거는 공부해봐야 무슨 의미인지 알듯)


Provision underlying infrastructure to deploy a Kubernetes cluster

(기본 인프라를 프로비저닝하여 Kubernetes Cluster를 배포. 구글 번역은 이렇게 되어 있는데 내가 해석해보면 기존의 Legacy 인프라에 배포되어 있는 것을 Kubernetes Cluster에 배포하는 이런거 아닐까 싶다. 이것도 공부하다보면 정리될듯)


Perform a version upgrade on a Kubernetes cluster using Kubeadm

(Kubeadm을 사용하여 Kubernetes Cluster에서 버전 업그레이드 수행)


Implement etcd backup and restore

(etcd 백업 및 복원 구현. Kubernetes Cluster의 각종 정보들이 etcd에 저장되기 때문에 이를 백업하고 복원 하는 방법을 통해 Kubernetes Cluster 구성을 재사용할 수 있다.)

Services & Networking

Understand host networking configuration on the cluster nodes

(클러스터 노드의 호스트 네트워킹 구성 이해. 클러스터 노드란 Master Node와 Worker Node로 구성되기 때문에 이에 대한 네트워킹 구성 이해로 현재는 보고 있다. 즉 공부하다보면 바뀔수도 있다는 뜻)


Understand connectivity between Pods

(Pod 간의 연결성 이해. 이 부분은 같은 노드에 있는 Pod 뿐만 아니라 다른 노드에 있는 Pod 간의 연결성도 알아둬야 할듯 하다)

 

Understand ClusterIP, NodePort, LoadBalancer service types and endpoints

(ClusterIP, NodePort, LoadBalancer Service 유형 및 엔드포인트 이해. Kubernetes의 Service에 해당되는 ClusterIP, NodePort, LoadBalancer에 대한 이해가 필요하다. 다만 LoadBalancer의 경우는 실제 이것을 실습할려면 Cloud 환경 하에서만 가능한지라(Bare Metal 일 경우 MetalLB 여야 가능) 실제 이게 나올지는 의문이지만..이거는 기존 문제들을 봐야 할듯 하다..)


Know how to use Ingress controllers and Ingress resources

(Ingress Controller 및 Ingress Resource를 어떻게 사용하는지..)


Know how to configure and use CoreDNS

(CoreDNS를 어떻게 설정하고 사용하는지..근데 CoreDNS를 몰라서 현재로서는 모르겠다)


Choose an appropriate container network interface plugin

(적절한 컨테이너 네트워크 플러그인을 선택, 이 부분은 Calico, Weave, Flannel 같은 Kubernetes 설치시 같이 설치하는 네트워크 플러그인에 대한 내용인듯 한데 어떤 상황에서 어떤걸 선택하는건지에 대해 물어보는건지 그 의도를 모르겠다. 이 부분도 구체적인 문제를 봐야 정리가 될듯..)

 

근데 이렇게 정리해보니 약 40% 정도의 내용은 이 시험 비중이 무엇을 의미하는지는 알겠더라. 나머지는 내가 공부를 하지 않아 모르는 부분이라서..나머지 60%가 무엇을 말하는지를 알기 위해서라도 열심히 공부해야겠다. 

 

중요

이 내용은 나의 해석일뿐 이게 정답은 아님을 밝혀둔다. 구글 번역에 기존에 내가 공부한 내용을 바탕으로 작성된 것이기에 불확실한 요소가 있음을 분명히 밝혀둔다. 참고만 하라는 말씀!!!