CKA 42

[CKA] 12. Static Pod

개요 Static Pod가 무엇인지 알아보겠습니다. Static Pod란? kubelet이 특정 경로("/etc/kubernets/manifests" )의 yaml 파일을 읽어서 실행하는 Pod를 말합니다. 그래서 API Server에 Pod생성되었는지 물어보지 않고도 Pod를 생성할 수가 있습니다. static Pod의 특징 특정 경로에 yaml을 생성 필요 kubelet은 "/etc/kubernets/manifests" directory에 Pod를 생성하는 Yaml 파일이 존재하면 해당 Yaml 파일을 사용하여 static Pod를 만듭니다. static pod 생성 경로 찾는 방법 /var/lib/kubelet/config.yaml 에서 staticPodPath를 참조 관리 생성, 재 시작, 삭제를..

Cloud/k8s-CKA 2023.03.05

[CKA] 11. DaemonSet

개요 k8s에서의 Deamon Sets이 무엇인지 그러고 어떻게 활용하는지 알아보겠습니다. DaemonSet Kubernetes에서 DaemonSet은 클러스터의 모든 Node 또는 일부 Node에 대해 하나의 Pod를 보장하는 역할을 합니다. 아래 그림을 보시면 Replicaset과 Deployments는 여러 개가 배포되는 것을 볼 수 있습니다. 그리고 신규 Node추가 시 자동으로 1개가 배포가 됩니다. 활용 방법 1. Monitoring Solution 2. Logs Viewer 실제 활용 1. kube-proxy가 DaemonSet로 배포가 됩니다. 2. CNI(Weabe-net)가 daemon sets로 배포가 됩니다. DaemonSet Yaml 형식 DeamonSet은 ReplicaSet과 ..

Cloud/k8s-CKA 2023.03.04

[CKA] 10. Namespace resource 제어 방법

개요 k8s에서 namespace에 pod를 생성할 때 기본적으로 사용할 resource를 명시적으로 제한할 수가 있습니다. 본 Post는 해당 방벙을 알아보고 검증하는 방법을 알아보겠습니다. 관련 설정 URL https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/ Configure Default Memory Requests and Limits for a Namespace Define a default memory resource limit for a namespace, so that every new Pod in that namespace has a memory resource limit ..

Cloud/k8s-CKA 2023.03.04

[CKA] 9. Pod resource 제어 방법

개요 k8s에서 resource(CPU, Memory, HugePages, Ephemeral storage)를 제어하는 방법에 대하여 알아보겠습니다. 그중 특히 CPU에 대한 것을 집중 적으로 알아보겠습니다. k8s에서의 resource 분류 Compressible resources cpu Incompressible resources Memory, HugePages, Ephemeral storage Compressible vs Incompressible resources 두 분류의 구분 기준? "resource 사용을 제한했을 때 pcoress를 실행 할 수 있는가"로 구분합니다. CPU의 경우 resource 사용을 제한했을 때 pcoress를 실행 할 수 있습니다. Memory, HugePages, ..

Cloud/k8s-CKA 2023.02.14

[CKA] 8. schedule (Node Selector, Node Affinity)

개요 Node Selector와 Node Affinity 기능에 대하여 알아보겠습니다. 용도 두 기능의 용도는 Pod를 내가 원하는 Node에 배치하고 싶을 때 사용합니다. Node Selector 동작 방식 특정 node에 Label을 설정 한 다음 node와 동일한 Label을 소유한 Pod만 특정 Node에 배치하는 것입니다. 다음 그림은 Node1에 size: Large라는 Label를 설정 후 size: Large를 가진 Pod만 Node1에 배포하는 그림입니다. Node에 Label 확인 #kubectl get nodes --show-labels #kubectl get node worker1 --show-labels Node에 Label 설정 kubectl label node = #kubect..

Cloud/k8s-CKA 2023.02.11

[CKA] 7. schedule (manual-schedule, labels, taint, toleration)

개요 k8s에서의 schedule 동작 방식과 scheduling 방법을 알아보겠습니다. https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/ manual scheduling 원리 pod를 만들때 배포할 node를 선택하는 방식 입니다. 필수 필드 : nodeName: worker1 nodeName을 지정하여 배포할 node를 선택 합니다. apiVersion: v1 kind: Pod metadata: labels: run: schedule-nginx-1 name: schedule-nginx-1 spec: containers: - image: nginx name: schedule-nginx-1 ports: - containerPo..

Cloud/k8s-CKA 2023.02.02

[CKA] 6. Object를 관리하는 방법 3가지

개요 "2가지의 Object 관리 접근 방법" 과 "3가지의 Object 관리 방법"을 알아보겠습니다. Object를 관리 접근 방법 2가지 방법에 대한 설명 명령형(Imperative) 접근법 원하는 상태를 얻기 위해서 "어떻게" 해야하는 지를 명령어로 정의하는 접근법 즉, 사용자가 "어떻게(명령)" 부분은 모두 입력해야 한다. 선언형(Declarative) 접근법 "원하는 상태"를 정의하면 시스템이 알아서 어떻게 해야 하는지 정의하는 접근법 즉, 사용자가 "원하는 상태(yaml)"만 입력하면 된다. 관리 방법 관리 기법 관리 대상 권장 환경 지원하는 작업자 수 명령형 커맨드(Imperative Command) 활성 오브젝트 개발 환경 1+ 명령형 오브젝트 구성(Imperative Object Conf..

Cloud/k8s-CKA 2023.01.29

[CKA] 5. namespace

개요 k8s에서 namespace의 용도를 알아보겠습니다. namespace k8s에서 namespace는 single cluster 내에서 리소스를 그룹화하여 분리하는 메커니즘을 제공합니다. k8s에서는 최소 설치 시 2개의 namespace가 존재하게 됩니다. 1. kube-system k8s system 관리를 외한 pod들이 존재하는 namespace 2. default 사용자가 pod를 배포 시 기본적으로 소속되는 namespace namespace 제약 사항 1. 동일 namespace에서의 resource name은 유일해야 합니다. namespace가 다르면 같아도 괜찮습니다. 2. namespace의 적용 법위는 namespace에 기반한 object에 한정됩니다. (예: deployme..

Cloud/k8s-CKA 2023.01.24

[CKA] 4. Service

개요 k8s에서의 service가 무엇인지 알아보겠습니다. 일단 그전에 k8s의 network 기초를 조금 설명하고 넘어가겠습니다. k8s의 network k8s에서의 network구조 물리적으로 구성한 node위에 overlay network라는 기술을 이용하여 Pod 간의 network를 구현하고 있습니다. 참고로. overlay network는 물리적으로 구성된 망위에 새로운 논리적인 network를 구성하는 하는 것입니다. 그림으로 설명 하면 다음과 같습니다. 1. 먼저 물리적인 network를 구성하여 node를 연결합니다. 2. 그리고 node안에 생성된 pod들을 overlay network를 이용하여 연결합니다. 이때 "overlay network를 이용하여 연결" 한다는 뜻은 Pod들을 ..

Cloud/k8s-CKA 2023.01.20

[CKA] 3. ReplicaSet & Deployments

Replicaset란? Pod의 High Availablity를 지원합니다. Pod에 문제가 생기면 새로운 Pod를 Cluster 내부에 생성 합니다. 즉, ReplicaSet은 지정된 수의 동일한 Pod의 실행을 유지하려는 목적으로 사용됩니다. Replication Controller VS Replicaset Replication Controller - 오래된 기술 - Replication Controller로 생성한 것만 관리 할 수 있습니다. Replicaset - 최신 기술 - Replicaset 생성의 일부로 생성되지 않은 Pod도 Replicaset에서 관리할 수 있기 때문입니다. 가장큰 차이점 selector를 사용 할 수 있냐 없냐가 제일 큰 차이점. Replicaset 설정 디플로이먼트로..

Cloud/k8s-CKA 2023.01.11