본문 바로가기

Kubernetes31

쿠버네티스 논리연산자 operator 필드를 사용하여 쿠버네티스가 규칙을 해석할 때 사용할 논리 연산자를 지정할 수 있다. In, NotIn, Exists, DoesNotExist, Gt 및 Lt 연산자를 사용할 수 있다. NotIn, Exists, DoesNotExist,보다 크면 Gt, 보다 작으면 Lt. 2023. 1. 2.
스케쥴링 https://kubernetes.io/ko/docs/concepts/scheduling-eviction/assign-pod-node/ 노드에 파드 할당하기 특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하는 것을 선호하도록 파드를 제한할 수 있다. 이를 수행하는 방법에는 여러 가지가 있으며 권장되는 접근 방식은 모두 레이 kubernetes.io 특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하는 것을 선호하도록 파드를 제한할 수 있다. 스케쥴러가 결정하던 노드/파드 배치를 관리자가 수동으로 조절 예를 들어 SSD가 장착된 머신에 파드가 배포되도록 하거나 또는 많은 통신을 하는 두 개의 서로 다른 서비스의 파드를 동일한 가용성 영역(availability zone)에.. 2023. 1. 2.
볼륨 볼륨 컨테이너 내의 디스크에 있는 파일은 임시적이기 때문에 문제가 발생할 수 있다. 한 가지 문제는 컨테이너가 크래시될 때 파일이 손실돼서 kubelet은 컨테이너를 다시 시작하지만 초기화된 상태이다. 두 번째 문제는 Pod에서 같이 실행되는 컨테이너간에 파일을 공유하고자 할 때 어렵다. 쿠버네티스 볼륨 추상화는 이러한 문제를 모두 해결한다. 일전에 docker 공부를 하면서 작성했던 볼륨 글을 참조하자 쿠버네티스에서도 이런 볼륨이란 개념이 더 고급화된 기능으로 존재한다. 도커 볼륨은 디스크에 있는 디렉터리이거나 다른 컨테이너에 있다. 이렇게 도커는 볼륨 드라이버를 제공하지만, 쿠버네티스의 볼륨 기능보다 다소 제한된다는 차이가 있다. https://raid-1.tistory.com/106 Volume /.. 2022. 12. 29.
pods 및 컨테이너 리소스 관리 https://kubernetes.io/ko/docs/concepts/configuration/manage-resources-containers/ 파드 및 컨테이너 리소스 관리 파드를 지정할 때, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있다. 지정할 가장 일반적인 리소스는 CPU와 메모리(RAM) 그리고 다른 것들이 있다. 파드에서 컨테이너에 대한 리소 kubernetes.io pods를 지정할 때, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있다. 지정할 가장 일반적인 리소스는 CPU와 메모리(RAM) 그리고 다른 것들이 있다. 파드에서 컨테이너에 대한 리소스 요청(request) 을 지정하면, kube-scheduler는 이 정보를 사용하여 파드가 배치될 노드를 결정한.. 2022. 12. 29.
스태틱(static) pods static pod 스태틱 pods 는 API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리된다. 컨트롤 플레인에 의해 관리되는 pods(예를 들어 디플로이먼트)와는 달리, kubelet 이 각각의 스태틱 pods를 감시한다. (만약 실패할 경우 다시 구동한다.) 스태틱 pods는 항상 특정 노드에 있는 하나의 Kubelet에 매여 있다. Kubelet 은 각각의 스태틱 pods에 대하여 쿠버네티스 API 서버에서 자동으로 mirror pod를 생성하려고 한다. 즉, 노드에서 구동되는 pods는 API 서버에 의해서 볼 수 있지만, API 서버에서 제어될 수는 없다. pods 이름에는 노드 호스트 이름 앞에 하이픈을 붙여 접미사로 추가된다. 만약 클러스터로 구성된 쿠버네티스를 구동하고.. 2022. 12. 29.
init container (초기화 컨테이너) Init container 초기화 컨테이너는 pods의 앱 컨테이너들이 실행되기 전에 실행되는 특수한 컨테이너이다. 초기화 컨테이너는 앱 이미지에는 없는 유틸리티 또는 설정 스크립트 등을 포함할 수 있다. 초기화 컨테이너와 일반 컨테이너 차이점 초기화 컨테이너는 항상 완료를 목표로 실행된다. 각 초기화 컨테이너는 다음 초기화 컨테이너가 시작되기 전에 성공적으로 완료되어야 한다. 만약 파드의 초기화 컨테이너가 실패하면, kubelet은 초기화 컨테이너가 성공할 때까지 반복적으로 재시작한다. 그러나, 만약 파드의 restartPolicy 를 절대 하지 않음(Never)으로 설정하고, 해당 파드를 시작하는 동안 초기화 컨테이너가 실패하면, 쿠버네티스는 전체 파드를 실패한 것으로 처리한다. https://kub.. 2022. 12. 28.