Kubernetes에는 많은 형태의 Pod 배포 방법이 존재한다. 그렇기에 많은것을 공부해야되고 아직까지도 새로운것이 많다. 이번에는 DaemonSet 과 StaticPod에 대해서 알아보자!! 먼저 DaemonSet이란? DaemonSet은 노드별로 Pod를 배포할 때 사용하는 서비스이다. 예를들어서 클러스터에 5개의 Node가 존재한다면 Daemonset이 있다면 각 노드별로 Pod가 배포되고 총 5개의 Pod가 배포된다. 일반적으로 Node별로 Pod 정보를 수집하거나, Node 정보를 수집하거나 또는 각 Node에 필수로 실행되어야하는 Pod가 있을 때 DaemonSet을 많이 사용한다. 현재 재직중인 회사에서도 Node의 상태를 모니터링하는 오픈소스 플랫폼을 사용하는데, 이를 DaemonSet으..
All Posting
아래의 연습문제를 풀다보니 configmap에 대한 개념이 필요했다. 공부해보자 [k8s] KodeKloud Practice test -Multiple Schedulers Q1. What is the name of the POD that deploys the default kubernetes scheduler in this environment? A1. Q2. What is the image used to deploy the kubernetes scheduler? Inspect the kubernetes schedule.. dobby-isfree.tistory.com 일단 쿠버네티스 configmap이란 뭘까? 공식 사이트의 내용을 인용하면 기밀의 아닌 정보를 key-value 쌍으로 저장하는 API 오..
Q1. How many static pods exist in this cluster in all namespaces? A1. 4 일반적으로 Static Pod는 /etc/kubernetes/mainfests 하위에 yaml 파일을 위치하게 된다. 일반적으로 pod를 만드는 yaml을 두면 되고, 일반적으로 pod는 name 뒤에 의문의 문자열이 생기는데 static pod는 name 뒤에 node name이 붙게된다. static pod의 개수는 /etc/kubernetes/mainfests의 yaml 파일 개수를 확인해도 도고, pod의 name에 node가 붙어있는것을 확인하면 된다. Q2. Which of the below components is NOT deployed as a static pod..
k8s를 사용하는 구조에서는 많은 Container pod가 배포되고 이에 따라 적절하게 Resouces를 관리해야 한다. 그리고 pod를 schedule 할 때, pod 내의 application이 동작할 수 있을만큼의 자원(CPU, Memory)가 확보되어야 한다. 물론, 별도 Limit 없이 무제한으로 할당할 수 있지만 이는 특정 pod가 문제가 되면 다른 pod도 모두 영향을 받으므로 제한하는것이 좋은 방법이다. - k8s 1.9 버전에서는 CPU, Memory 자원에 대해서만 제한이 가능하다. k8s Resouces 단위 k8s에서 Resouces를 정의하는 기본 단위는 ms(밀리 세컨드)이다. 대략 1000ms = 1vCPU이다. CPU, Limit Resources 자원 할당 방법 k8s를..
Q1. A pod called rabbit is deployed. Identify the CPU requirements set on the Pod in the current(default) namespace A1. 1 Q2. Delete the rabbit Pod. Once deleted, wait for the pod to fully terminate. A2. kubectl delete pod rabbit Q3. Another pod called elephant has been deployed in the default namespace. It fails to get to a running state. Inspect this pod and identify the Reason why it is not r..
나는 아래 게시물에서 특정 node에는 특정 values값만 가지는 pod를 배포하는것에 대해서 공부하였다. [k8s] Node Taint 와 Tolerations의 개념 CKA 실습을 하다보면, 특정 Node에는 Pod이 배포되지 않도록 요구하는 문제를 많이 볼 수 있다. 그때마다 설정하는 내용을 보면 Taint / Tolerations을 설정하여 특정 Node에 대한 사용을 제한한다. 오늘은 dobby-isfree.tistory.com 근데 결과적으로 말하면 Taint는 특정 node에 특정 values값을 가지는 pod만 배포한다는것이지, 해당 pod가 항상 특정 node에 배포되는것을 보장하지는 못한다. 이런 문제점을 해결하기 위해 바로 nodeAffinity 존재한다. nodeAffinity는 ..
CKA 실습을 하다보면, 특정 Node에는 Pod이 배포되지 않도록 요구하는 문제를 많이 볼 수 있다. 그때마다 설정하는 내용을 보면 Taint / Tolerations을 설정하여 특정 Node에 대한 사용을 제한한다. 오늘은 Taint, Tolerations에 대한 내용을 알아보자!! k8s Node Taint이란? Taint에 대한 사전적인 내용을 보면 "오염"으로 풀이된다. 즉, Node가 오염되었기 때문에 Pod의 Schedule을 제한한다. 보통 Taint는 특정 Node에 대해 특정 Pod만 실행할 수 있도록 역할을 제한하기 위한 목적으로 많이 사용된다. - 예를들어) Batch Node에는 System batch pod만 Schedule되어야한다. 모든 Pod 별로 Nodename을 지정하면..
k8s를 공부하다보면 어떤 경우는 kubectl create 로 yaml 파일을 실행하고, 어떤 경우는 kubectl apply로 실행하는 경우가 있다. 예전에는 무슨 차이가 있는지도 몰랐고, 대다수 kubectl create로 리소스를 생성했었는데, 간혹가다 replicas를 변경하거나 어떤 특수한 경우에 대해서는 kubectl create로만 작업을 했었는데 Udemy 강의를 보니 명령형/선언형 접근방법의 차이가 있다고 한다. 명령형 접근방법 vs 선언형 접근방법 선언방법 리소스가 없을 경우 리소스가 없을 경우 비고 create 리소스를 생성한다. 에러가 발생한다. 명령형 접근방법 apply 리소스를 생성한다. 리소스가 업데이트 된다,. 선언형 접근방법 replace 에러가 발생한다. 리소스를 삭제(..
기본적으로 Cluster의 각 오브젝트는 해당 유형의 리소스에 대해 고유한 이름을 가지며, 이를 컨트롤러 매니저에서 관리하기 위해 UID를 부여한다. 하지만 이는 동일한 Namespace에서만 유일하면 된다. 다시말하면 동일한 리소스가 A Namespace / B Namespace에 존재할 수 있다. 왜냐하면 이것은 서로 다른 UID를 가지기 때문이다. 그렇다면 Namespace란 무엇일까? Namespace란? Namespace란 동일한 Cluster에서 다시 한번 논리적으로 가상 Cluster의 개념으로 분리하기위한 리소스이다. 즉, A Namesapce와 B Namespace는 모두 동일한 물리 Cluster에 존재하나, 서로 논리적으로 분리되어 있다. 일반적으로 다른 Namespace에 존재하는 ..