1

Ich betreibe einen Kubernetes Cluster von 3 Knoten mit GKE. Ich frage Kubernetes nach 3 Repliken von backend Pods. Die 3 Pods werden nicht gut zwischen den Knoten verteilt, um einen Hochverfügbarkeitsdienst bereitzustellen, sie befinden sich normalerweise alle auf 2 Knoten. Ich möchte Kubernetes die Pods so viel wie möglich zu versenden, um einen Pod auf jedem Knoten zu haben, aber nicht die Bereitstellung/Scale-up, wenn sie mehr als backend Pods als Knoten sind.Lieber Replikate unter Knoten bevorzugen

Ist es möglich, das mit preferredDuringSchedulingIgnoredDuringExecution zu tun?

Antwort

1

Versuchen Sie, eine preffered antiAffinity Regel wie so einrichten:

affinity: 
    podAntiAffinity: 
     preferredDuringSchedulingIgnoredDuringExecution: 
     - labelSelector: 
      matchExpressions: 
       - key: "app" 
       operator: In 
       values: 
       - "my_app_name" 
      topologyKey: "kubernetes.io/hostname" 

Dies wird versuchen Schoten auf Knoten zu planen, die bereits keine Schote des gleichen Etiketts auf ihnen laufen haben. Danach ist es für alle frei (also wird es nicht gleichmäßig verteilt, nachdem sichergestellt wurde, dass mindestens 1 auf jedem Knoten läuft). Das bedeutet, dass Sie nach dem Hochskalieren möglicherweise einen Knoten mit 5 Pods und andere Knoten mit jeweils einem Pod haben.

+1

Danke. Ich musste '- Gewicht: 100 podAffinityTerm: labelSelector:' hinzufügen – Sony

Verwandte Themen