본문 바로가기

kubernetes

(24)
[k8s] 파드의 우선순위(Pod QoS, Quality of Service) 쿠버네티스는 하나의 클러스터에서 여러 개의 컨테이너 애플리케이션을 실행할 수 있습니다. 하지만 예를 들어 '온라인 처리를 제공하는 컨테이너으 우선순위를 높이고 싶다', '배치 처리를 하는 리소스의 우선순위를 낮추고 싶다' 와 같은 조건을 주고 싶은 경우 QoS 클래스를 사용하여 파드에 우선순위를 붙일 수 있습니다. 파드의 QoS 클래스 조건 쿠버네티스에서는 파드에 대해 3개의 Quality of Service(QoS) 클래스를 제공하고 있습니다. 이 QoS는 Resource Requests와 리소스의 상한을 정하는 Resource Limits 조건을 바탕으로 우선순위가 다음과 같이 정해집니다. BestEffort 파드 안의 어떤 컨테이너에도 Resource Requests와 Resource Limit이 ..
[k8s] Probe - Pod Health Checks(readiness Probe vs liveness Probe) 쿠버네티스 클러스터 상에는 많은 파드가 가동됩니다. 이것들이 정상적으로 움직이고 있는지 아닌지를 체크해서 만일 문제가 있으면 재빨리 복구해야 합니다. 쿠버네티스에서는 컨테이너 애플리케이션이 올바르게 움직이고 있는지 아닌지를 항상 감시하여 문제가 있으면 파드를 자동으로 재시작하는 장치가 있습니다. 위 장치를 Probe라고 합니다. 즉 프로브(Probe)는 컨테이너에서 kubelet에 의해 주기적으로 수행되는 진단(diagnostic)입니다. 진단 방식(Probe)에는 다음 두가지 가 있습니다. livenessProbe 컨테이너가 실행됐는지 확인합니다. 이 진단이 실패하면 kubelet은 컨테이너를 종료시키고, restart 정책에 따라 컨테이너를 재시작합니다. 컨테이너에 liveness Probe를 어떻게..
[k8s] 데몬셋(Daemonset) 데몬셋(Daemonset) 데몬셋은 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러입니다. 클러스터 안에 새롭게 노드가 추가되었을 때 데몬셋이 자동으로 해당 노드에 파드를 실행시킵니다. 반대로 노드가 클러스터에서 빠졌을 때는 해당 노드에 있던 파드는 그대로 사라질 뿐 다른 곳으로 옮겨가서 실행되지는 않습니다. 따라서 데몬셋은 보통 로그 수집기를 실행하거나 노드를 모니터링하는 데몬 등 클러스터 전체에 항상 실행해두어야 하는 파드에 사용합니다. 데몬셋(Daemonset) 사용해보기 매니페스트 파일 작성 로그 수집을 실행하는 데몬셋의 예시는 다음과 같습니다. apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch nam..
[k8s] RelicaSet(레플리카셋) 정리 ReplicaSet 레플리카셋은 클러스터 안에서 움직이는 파드의 수를 유지하는 장치입니다. 클러스터의 파드의 실행을 항상 안정적으로 유지하는 것을 목표로 명시된 파드 개수에 대한 가용성을 보증하는데 사용됩니다. 만약 애플리케이션 오류나 노드 장애 등으로 파드가 정지된 경우 레플리카셋이 자동으로 새로운 파드를 시작합니다. 레플리카셋은 labelSelector의 조건에 따라 파드를 검색하여 가동 중인 파드의 수가 매니페스트 파일의 replicas의 수와 일치하는지 아닌지를 확인합니다. 만약 가동중인 파드의 수가 부족한 경우 새로 파드를 추가하고, 파드의 수가 많을 때는 여분의 파드를 정지시킵니다. 따라서 가동 중인 애플리케이션의 파드 수를 변경하고 싶을 때는 레플리카셋의 replicas의 값을 수정하기만 하..