분류 전체보기 70

[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 Deployment

CKAD 시험 비중 (20%) Pod를 배포(업데이트)하는 방법 1. Blue-Green Update 2. Canary Deployment 3. Rolling Update Blue/Green Update 1. 구 버전과 신 버전이 모두 동작한 상태에서 트래픽만 신 버전으로 전환 2. Rollback이 쉽고, 업데이트 과정에서 소요되는 시간 절약 3. 하드웨어 리소스 소비: 구, 신 버전의 애플리케이션이 동시 동작해야함 실습1 다음과 같은 deployment, service를 동작하세요. blue라는 이름으로 smlinux/nginx:blue 이미지를 가진 Pod 2개 배포하세요. 1. Label은 version=blue을 사용하며 port는 8080 포트를 사용한다. * app-svc 서비스를 versi..

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] 자격증 취득 후기 (2023.05.22)

2023년 5월 22일, CKA 시험 합격! 준비 기간 * 약 2달 Kubernetes 사용 기간 및 배경 저는 3년차 백엔드 개발자이며, 현 회사에서 Kubernetes를 처음 사용하면서 접하게 되었습니다. 약 3개월 정도 기본적인 기능을 사용하면서 더 깊게 공부해보고 싶은 마음이 들어서 CKA를 준비하며 공부를 시작하게 되었습니다. CKA란 CKA에 대한 설명은 다른 좋은 글들이 많으니 생략하도록 하겠습니다. 제가 이전에 쓴 글도 참고하시면 좋을 것 같습니다. CKA 자격증이란? 공부 방법 1. Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests, TTABAE-LEARN - 이성미 강사 강의를 들었습니다. 두 강의 모두 다 듣진 ..

CKA 2023.05.24

[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