샤인의 IT (막 적는) 메모장

[Kubernetes] 실무에서 NodeAffinity와 Toleration 활용 본문

Container/Kubernetes 처리

[Kubernetes] 실무에서 NodeAffinity와 Toleration 활용

신샤인 2021. 12. 30. 10:04
반응형

실제 실무에서는 해당 서비스에 따라 노드를 분류하여 사용한다

(예 type=ingress, , type=web, type=was ...)

 

그러나 실제로 개발이나 검증계 쪽에서는 테스트 용으로 사용하기 때문에 한 노드에 두 서비스를 올리고 싶다는 요청을 받았다. (lable/taint 설정 안하고 그냥 막 배포하면 되는거 아니냐고!)

 

실제 label/taint가 설정되어 있는 노드들이기 때문에 다음과 같은 작업이 필요하다.

실제로 Taint 값이 util이라고 설정되어 있다고 한다면

NodeAffinity를 나눠서 분리하여 사용한다.

실제로 Node에 Label값을 추가하는데 실제로 service1에 service2가 추가되어

label 값이 service1, service2인 모든 노드에 배포된다.

 

실제 DaemonSet으로 올라간 Workload의 설정 정보

#NodeAffinity 및 Toleration 동시에 사용하여 설정함
#동일하게 Taint 값으로 Util이라는 큰 분류로 정하고 NodeAffinity로 service1,service2 이런식으로 지정

#spec.templete.spec.toleration
tolerations:
- effect: NoSchedule
	key: node-type
	operator: Equal
	value: util

#spec.templete.spec.affinity
affinity:
	nodeAffinity:
		requiredDuringSchedulingIgnoreDuringExecution:
			nodeSelectorTerms:
			- matchExpressions:
				- key: node-type
					operator: in
					values:
					- service1
					- service2

끝.

반응형
Comments