affinity 2

topologySpreadConstraints - matchLabelKeys 옵션

Why Kubernetes에서 파드를 동일한 노드에 배치하지 않기 위해 Anti-Affinity를 설정하는 경우가 많습니다. 하지만, 새로운 버전의 파드(예: 1.0.0 → 1.0.1) 배포 시 기존 노드에 실행하지 않고 새로운 노드에 배치되는 경우가 발생합니다. 이는 동일한 Deployment라 레이블이 같기 때문입니다. 기존 파드와 새로운 파드는 서로 다른 버전이라 같은 노드에 실행해도 문제없지만, 같은 레이블을 사용하기 때문에 서로 다른 노드에 배치됩니다. 이는 일반적인 상황에서는 문제가 없지만, Karpenter 환경에서는 새로운 노드가 생성되면서 기존 노드에 실행 중이던 파드들이 새로운 노드로 불필요하게 이동하는 문제가 발생합니다. (Karpenter의 consolidation 기능으로 인한 파..

13. Kube 교육 - Label & Affinity

실습 label 이용 NGINX service, pod 연결 동일 노드에 MySQL Application 동시에 실행되지 않도록 설정(advanced scheduling) Why Label & Affinity Kube 환경은 Object 중 특정 Object(예: 여러 NGINX POD 중 특정 NGINX POD)만 선택을 해야하는 경우가 많습니다. 예를 들어 Service에서 특정 POD를 선택하고 여러 노드 중 GPU 노드에서만 특정 POD를 실행해야 하는 경우가 대표적입니다. 이러한 경우 사용자가 임의로 지정한 Label(상표 정도로 번역) 기준으로 선택합니다. 예를 들어 POD에 app=nginx, app=tomcat 등으로 label을 지정하고 해당 label 기준으로 다른 Object에서 해당..