Cloud/k8s-CKA 52

[CKA] 22. k8s cluster backup 방법

개요 k8s cluster의 설정을 backup 하는 방법을 알아보겠습니다 backup의 대상 1. Resource Configuration 2. ETCD Cluster 3. Persistent Volumes Resource Configuration backup 방법 1. Imperative (명령어 방식) 방식 일일이 수행한 명령어는 저장하는 방식 장점 없는 거 같음.. 단점 어떻게 생성했는지 까먹으면 골치가 아픕니다. 2. Declarative (선언적 방식) 방식 yaml file을 저장하는 방식 장점 github 같은 저장소에 보관해서 팀 내에서 공유하기 편합니다. 단점 Imperative로 만든 object는 관리가 안됩니다. 3. Resource configs backup 방식 kube-api..

Cloud/k8s-CKA 2023.05.07

[CKA] 21. k8s cluster upgrade

개요 k8s의 cluster의 버전을 upgrade 하는 방법을 알아보겠습니다. 유의 사항 1. 하나씩 올리면서 업데이트를 해야 합니다. 2. k8s와 kubelet과 kubectl은 수동으로 upgrade 해주어야 합니다. 3. upgrade작업 시 kubelet를 upgrade하기 전에 drain을 사용하여 모든 pod를 안전하게 다른 node에 옮겨 놓고 update후에 uncordon 해주어야 합니다. k8s의 버전 체계 k8s 모듈별 하위 호환성 정보 https://v1-26.docs.kubernetes.io/releases/version-skew-policy/ Version Skew Policy The maximum version skew supported between various Kube..

Cloud/k8s-CKA 2023.05.05

[CKA] 20. node operating system update

개요 worker node의 operating system을 update시 운영중인 service에 영향을 주지 않고 update하는 방법을 알아보겠습니다. Node가 갑자기 종료되었을 때 현상 k8s에서는 5분간 worker node가 살아나지 않으면 Node가 죽었다고 판단하여 해당 node에 할당되 pod를 종료 처리 합니다. 그리고 replicaset으로 생성된 pod는 다른 node에 다시 생성하고 replicaset으로 생성하지 않는 pod는 사라지게 됩니다. Node를 정상적으로 종료 하는 방법 drain 사용 #kubectl drain worker1 위 명령어는 worker1에 pod를 scheduling 할 수 없게 만듭니다. 그리고 할당된 pod를 정상 종료 시키고 pod를 다른 nod..

Cloud/k8s-CKA 2023.04.24

[CKA] 19. multi container pods

개요 pod를 생성할 때 다수의 container를 포함하는 Pod를 생성해 보겠습니다. 왜 필요한가? service를 개발하다 보면 항상 같이 다녀야 하는 service들이 존재합니다. 그래서 service들 한 개의 pod안에 모아서 구성하는 것이 multi conatiner pod입니다. 사용방법 간단하게 pod안에 container만 추가시켜 주면 끝입니다. 다만 유의할 점은 service 하는 port가 중복이 되면 안 된다는 것입니다. 추가 방법 container는 배열 형태로 추가되기 때문에 - 를 넣어서 container를 추가할 수 있습니다. apiVersion: v1 kind: Pod metadata: labels: run: multiple-container-pod name: multi..

Cloud/k8s-CKA 2023.04.20

[CKA] 18. Environment Variables

개요 k8s에서 Evrionment Variables들이 어떻게 관리되는지 또 어떻게 사용하는지 알아보겠습니다. : how to set environment and use environment in k8s Evironment Variables의 종류 1. Environment Variables in Application 2. ConfigMaps in Application 3. secretkey in Application Environment Variables in Application yaml 파일에 Environment Variables를 정의하여 container 내부에서 사용하는 방법입니다. 사용법 env: 필드를 사용하여 name : value 형식으로 Environment Variables를 넘..

Cloud/k8s-CKA 2023.03.28

[CKA] 17. command and argument

개요 deployment yaml 또는 Pod yaml 파일에서 command와 argument를 어떻게 전달하는 알아보겠습니다. 사전 지식 deployment / Pod yaml 파일에서 command와 argument를 어떻게 전달하는 알아보기 전에 Dockerfile에서 command와 argument를 어떻게 전달하는지 먼저 알아보겠습니다. 이걸 먼저 알아보는 이유는 Dockerfile에서 사용하는 command와 argument 전달 방식이 deployment / pod yaml 파일에서 동일한 개념으로 사용되기 때문입니다. Dockerfile에서 command와 argument 전달 방법 2가의 전달 방법이 있습니다. CMD 이용과 ETNRYPOINT 이용합니다. CMD 이용 CMD 정의 Do..

Cloud/k8s-CKA 2023.03.25

[CKA] 16. k8s Rolling update and Rollback

개요 k8s Rolling update와 Rollback 방식을 알아보겠습니다. 업데이트 방식 1. Recreate update 2. Rolling update Recreate Update 기존에 배포한 pod를 모두 내리고 새로운 pod를 배포하는 방식입니다. 그러나 이방식의 큰문제는 서비스가 중단된다는 것입니다. 그래서 무중단 서비스를 위해서 우리는 Rolling update를 해야 합니다. Rolling update란? depolyment를 update할 때 사용되는 update 방식입니다. k8s에서 기본적으로 사용하는 deployment update 방식 입니다. 검증 deployment yaml 파일을 수정해서 apply를 다시 하거나 배포된 deployment의 image를 아래 명령어로 교..

Cloud/k8s-CKA 2023.03.23

[CKA] 15. k8s Monitoring (METRIC SERVER) and log

개요 k8s의 cluster를 monitoring하는 방법과 Pod의 Log를 보는 방법을 알아보게습니다. Monitoring 제품 종류 많은 Monitoring 제품이 존재합니다. 그러나 k8s에서 제공하는 Metrics Server만 알아볼 것입니다. 추후에 다른 Monitoring이 필요하면 그때 다시 다루겠습니다. Metrics Server 정의 METRIC SERVER란 k8s cluster의 metric 정보를 수집할 수 있게 제공해 주는 API입니다. 여기서 metric이란 지표라는 뜻 하며 예를 들어 보면 CPU 사용량, 메모리 사용량등을 말합니다. https://kubernetes.io/ko/docs/tasks/debug/debug-cluster/resource-metrics-pipeli..

Cloud/k8s-CKA 2023.03.19

[CKA] 14. scheduler profile 설정

개요 scheduling의 진행 stage와 stage별 step 알아보고 각 step별 사용하는 plugin을 알아보겠습니다. 용어 정리 plugin : scheduling의 step을 상세하게 제어하기 위해 사용하는 설정 또는 object를 말합니다. Scheduling의 Stage 및 역활 Sheduling Queue Pod는 sheduling을 위해서 처음에 Scheduilng Queue에 들어가게 됩니다. 그리고 이 단계에서 PriorityClass(plugin)를 사용하여 Pod의 scheduling 우선순위를 정할 수 있습니다. Filtering Flitering 조건(plugin)에 따라서 Pod를 scheduling 할 후보 Node들을 선정합니다. fltering plugin - res..

Cloud/k8s-CKA 2023.03.07

[CKA] 13. multiple scheduler

개요 기본 scheduler가 아닌 사용자가 만든 scheduler를 생성 하고 사용하는 방법을 알아보겠습니다. 사용 이유 GPT가 아래의 경우에 사용한다고 알려줌..(좋다 GPT) Resource allocation customization: Kubernetes의 기본 스케줄러는 Pod을 가용한 리소스 (예: CPU, 메모리)에 따라 스케줄링합니다. 그러나 애플리케이션의 특성에 따라 다른 스케줄링 로직이 필요할 수 있습니다. 예를 들어, Batch Job의 경우 스케줄러는 가능한 빨리 완료되어야 하므로 다른 스케줄링 알고리즘이 필요합니다. 이러한 경우 multiple scheduler를 사용하여 리소스 할당에 대한 다양한 사용자 정의 규칙을 적용할 수 있습니다. Isolation: Multiple sc..

Cloud/k8s-CKA 2023.03.06