Affinity 2

Node Selector & Affinities

특정 pod를 특정 node에 띄우기 위한 방법은 두 가지 NodeSelector spec.nodeSelector로 pod 의 definition에 정의. node에 정의된 label로 key:value 선언 kubectl label nodes =: node에 label 주는 방법 node Selectors로는 or 조건이나 not 조건을 추가할 수 없음 Node Affinity 더욱 복잡하고 다양한 조건을 위한 기능 operator을 In과 NotIn으로 설정할 수 있고, 이의 대상은 values 내의 label value array이다. operator이 exists는 affinity에 선언한 key값이 있는 node들을 대상으로 적용됨. value section은 값을 비교하지 않기 때문에 필요 없..

CKA 2021.09.05

Pod Affinity를 적용하여 Pod 분산 배포하기

0. Kubernetes 환경 현재 프로젝트에서 구축한 Kubernetes 환경은 Kubernetes 1.15 버전이고, Node Autoscaling과 Pod Autoscaling 이 적용되어 있다. Worker Node가 AZ별로 이중화되어 있는 환경에서 Pod가 분산 배포되지 않고 한 Node에 몰려있으면, 그리고 그 Node가 Down 상태가 되면 Pod 의 서비스가 같이 Down되게 된다. 이러한 문제점을 피하기 위해 Pod에 Affinity 옵션을 설정하여 Pod을 분산 배포한다. 1. Pod Affinity 파드간 어피니티와 안티-어피니티를 사용하면 노드의 레이블을 기반으로 하지 않고, 노드에서 이미 실행 중인 파드 레이블을 기반으로 파드가 스케줄될 수 있는 노드를 제한할 수 있다. 규칙은 ..

Kubernetes 2021.09.01