기술 이모저모/[k8s] kubernetes

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에 존재하는 ..
앞선 게시물에서 k8s Pod, Replicaset, Deployment에 대한 기본적인 개념을 배웠다. 그리고 이번에는 가장 중요한? Service에 대한 개념정리를 해보자!! 필자가 k8s에 대해 공부를 하면서, 가장 궁금한 내용은 Pod들끼리의 통신은 되는걸까? Pod를 외부에 노출해야 하는 경우가 반드시 생길텐데 이런 경우는 어떻게 해야될까? 이것에 대한 답이 Service Type이다!! 먼저 Service란? k8s 환경에서 Pod를 통해 실행되고 있는 Application을 네트워크에 노출하는 가상의 인터페이스이다. 네트워크에 노출한다는것이 내부 클러스터간의 네트워크일수도 있고, 외부 네트워크일수도 있다. 결론적으로는 Application이 다른 외부 Application 또는 사용자/Pod..
k8s를 공부를 하다보면 Deployment만 생성했음에도 Replicaset이 생성되고 이에 대해 pod가 생성된다. 나는 Deployment만 생성했는데, 어떻게해서 Replicaset도 생성이 되는걸까? 이를 알기 위해서는 이들의 역할을 알아야한다. Pod란? Pod는 k8s의 가장 작은 구성요소이다. 쉽게 말하자면 하나 이상의 Container를 보유하고 있는 리소스이다. Container = Application, Pod = Server라고 생각하면 쉽다. 즉, Container를 관리한다고 보면 된다. Pod는 1개의 Container로 구성될 수도 있지만, 다수의 Container로 구성할 수 있기에 이를 관리할 필요가 있다. Replicaset란? Label을 통해서 Replicaset에서..
Kobby
'기술 이모저모/[k8s] kubernetes' 카테고리의 글 목록 (2 Page)