Junior — Middle
Comment assurer le lancement de deux réplicas d'un conteneur de manière à ce qu'elles ne soient pas déployées sur le même nœud de travail?
sobes.tech IA
Réponse de l'IA
Чтобы запустить две реплики контейнера так, чтобы они не размещались на одной рабочей ноде, в Kubernetes можно использовать аннотации или спецификации, обеспечивающие распределение подов по разным нодам.
Один из способов — использовать podAntiAffinity в манифесте Deployment или StatefulSet. Пример:
spec:
replicas: 2
template:
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- my-app
topologyKey: "kubernetes.io/hostname"
Это гарантирует, что поды с меткой app: my-app не будут размещены на одной и той же ноде (узле) по ключу kubernetes.io/hostname.
Если речь не о Kubernetes, а о другом оркестраторе, принцип схож: нужно настроить правила распределения или ограничения на размещение, чтобы реплики не попадали на одну машину.