쿠버네티스 시험 11

[CKAD] 자격증이란?

CKAD 자격증이란?CKAD 자격증은 Certified Kubernetes Application Developer를 의미하며, Kubernetes 플랫폼에 대한 숙련도를 Linux Foundation에서 검증해주는 자격증입니다. CKAD 자격시험은 실습형 시험으로 Kubernetes 시험 환경에서 명령어를 활용해 리소스를 다루는 형태로 문제가 출제됩니다. CKAD 자격 시험은 2시간 동안 진행되며, 100점 만점에 66점 이상이면 시험에 통과합니다.* Who Is It For이 인증은 Kubernetes를 사용하여 클라우드 네이티브 애플리케이션을 구축, 구축 및 구성하는 Kubernetes 엔지니어, 클라우드 엔지니어 및 기타 IT 전문가를 대상으로 합니다. CKAD 자격증을 준비하는 방법..

CKAD 2023.05.28

[CKAD] Application Environment, Configuration and Security

CKAD 시험 비중 (25%) Authentication, Authorization and Admission Control 1. 인증(Authentication) * User 또는 Application이 API에 접근을 허가 받는 과정(인증서/토큰) 2. 허가(Authorization) * RBAC 모델 기반 * 요청 ID에 적절한 Role이 있는지 확인 3. 승인 제어(Admission Control) * 요청이 올바른 형식인지 판별 * 요청 내용에 대한 검증이나 요청, 내용을 강제로 변경할 때 사용 * 쿠버네티스에서 특정 기능을 제한(validate) 또는 변경(mutate) 1. Admission Controller 플러그인 * Resourcequota: Namespace에서 사용할 수 있는 전체 ..

CKAD 2023.05.28

[CKAD] Application Observability and Maintenance

CKAD 시험 비중 (15%) Liveness Probe 1. self-healing 기능 * 건강한 컨테이너를 이용해 서비스 지원 2. liveness probe * 동작되는 컨테이너에 주기적으로 건강검진 명령을 주어 결과에 따라 건강한지 아닌지를 판단 * 건강하지 않은 컨테이너는 kill 시키고, 다시 동일 버전의 컨테이너를 다운로드 받아 실행 * 항상 건강한 컨테이너를 가지고 서비스 지원함을 보장 * Pod가 계속 실행할 수 있음을 보장 1. httpGet probe: 지정한 IP 주소, port, path에 HTTP GET 요청을 보내서 해당 컨테이너가 응답하는지를 확인한다. 반환 코드가 200이 아닌 값이 나오면 오류로 인식하고 컨테이너를 다시 시작한다. 2. tcpSocket probe: 지정..

CKAD 2023.05.27

[CKAD] Application Design and Build

CKAD 시험 비중 (20%) Docker Container Build 다음의 조건으로 appjs:latest 컨테이너를 빌드하세요. * 빌드 디렉토리: ~/app_build/appjs * /data/ckad/app.js 의 파일을 ~/app-build/appjs로 이동한 후 다음 조건에 맞게 컨테이너를 빌드하세요. 1. base image: node:12 2. app.js 파일을 컨테이너 / 디렉토리로 복사 3. 컨테이너 실행 시 node app.js가 동작되어야 한다. * 빌드한 컨테이너를 실행하세요. $ vi Dockerfile FROM node:12 COPY app.js / CMD ["node", "app.js"] or ENTRYPOINT $ docker build -t appjs:latest ...

CKAD 2023.05.27

[CKA] Storage

CKA 시험 비중 (10%)Kubernetes Volume* Volume은 kubernetes 스토리지의 추상화 개념컨테이너는 Pod에 바인딩 되는 볼륨을 마운트하고 마치 로컬 파일 시스템에 있는 것처럼 스토리지에 접근한다.* Kubernetes 스토리지volumes:- name: html   hostPath # node에 있는 로컬 디스크 또는 NFS, AWS EBS, Azure Disk 등       path: /hostdir or file* 컨테이너 단위로 mountvolumeMounts:- name: html   mountPath: /webdata Empty Volume* Volume을 통해 컨테이너 간 데이터 공유1. emptyDir 볼륨은 빈 디렉토리로 시작2. Pod 내부에서..

CKA 2023.05.14

[CKA] Workloads & Scheduling

CKA 시험 비중 (15%)Pod란* Pod란 컨테이너를 표현하는 k8s API의 최소 단위* Pod에는 하나 또는 여러 개의 컨테이너가 포함될 수 있음$ kubectl run web --image=nginx --port=80 실습1'cka-exam'이라는 네임스페이스를 만들고, 'cka-exam' 네임스페이스에 아래와 같은 Pod를 생성하세요.* pod Name: pod-01* image: busybox* 환경변수: CERT="CKA-cert"* command: /bin/sh* args: "-c", "while true; do echo $(CERT); sleep 10;done"$ kubectl create namespace cka-exam# docs 적극 참고$ vi pod-0..

CKA 2023.05.14

[CKA] Cluster Architecture, Installation & Configuration (2)

CKA 시험 비중 (25%) API 인증: RBAC * API 서버에 접근하기 위해서는 인증 작업이 필요 * Role-based Access Control(RBAC, 역할 기반 액세스 제어) * User: 클러스터 외부에서 쿠버네티스를 조작하는 사용자 인증 (kubectl 명령어) -> cat .kube/config * Service Account: Pod가 쿠버네티스 API를 다룰 때 사용하는 계정 kubectl get secrets -> 토큰을 확인할 수 있다. Role & RoleBinding * 특정 유저나 ServiceAccount가 접근하려는 API에 접근 권한을 설정 * 권한 있는 User만 접근하도록 허용 * 권한 제어 * Role 1. 어떤 API를 이용할 수 있는지의 정의 2. 쿠버네티..

CKA 2023.05.14

[CKA] Cluster Architecture, Installation & Configuration (1)

CKA 시험 비중 (25%)ETCD* 쿠버네티스 클러스터의 정보를 저장하는 곳 (메모리)* key: value 형태의 데이터 스토리지* 모든 ETCD 데이터는 ETCD 데이터베이스 파일에 보관 -> /var/lib/etcd* ETCD 관리 명령: etcdctl* 마스터 3대, ETCD 3대 -> 고가용성(HA) 실습1What is the version of ETCD running on the cluster?$ kubectl describe pod etcd-controlplane -n kube-system Image: registry.k8s.io/etcd:3.5.6-0 실습2At what address can you reach the ETCD cluster from the c..

CKA 2023.05.13

[CKA] Troubleshooting

CKA 시험 비중 (30%) 지정한 Pod 내의 특정 컨테이너 애플리케이션 로그 확인 $ kubectl logs {Pod Name} 실습 {Pod name}의 로그 모니터링 후 'file not found' 오류가 있는 로그 라인 추출(Extract)해서 custom-log 파일에 저장하세요. $ kubectl get pod {Pod name} $ kubectl logs {Pod name} | grep 'file not found' > custom-log 클러스터 리소스 Pod 모니터링 $ kubectl top pods $ kubectl top pods --sort-by=cpu, kubectl top pods --sort-by=memory $ kubectl top pods {Pod Name} $ kube..

CKA 2023.05.13

[CKA] Services & Networking

CKA 시험 비중 (20%)Pod NetworkCNI에서 관리하는 포드 간 통신에 사용되는 클러스터 전체 네트워크 Service NetworkService discovery를 위해 kube-proxy가 관리하는 Cluster-wide 범위의 Virtual IP(Cluster IP)부하분산, Web 단일진입점(LB) Kubernetes Network Proxy 각각의 Node에서 실행되고, Kubernetes Service API에 정의된 서비스를 각 노드에서 반영 (kube-proxy 역할: iptables rule을 설정하고 외부 네트워크와 Pod를 연결) Service Type - ClusterIP(default)* Pod 그룹(동일한 서비스를 지원하는 Pod 모음)의 단일 ..

CKA 2023.05.07