Was sind Affinität und Anti-Affinität in Kubernetes?
sobes.tech KI
Antwort von AI
Affinity und Anti-Affinity in Kubernetes sind Mechanismen, die die Platzierung von Pods auf den Knoten des Clusters unter Berücksichtigung bestimmter Regeln und Präferenzen steuern.
-
Affinity (Affinität) legt Regeln fest, nach denen Pods versuchen, in der Nähe anderer Pods oder auf Knoten mit bestimmten Labels platziert zu werden. Dies hilft beispielsweise, verwandte Dienste zu gruppieren, um Latenzen zu verringern.
-
Anti-affinity (Anti-Affinität) sorgt im Gegenteil dafür, dass Pods die Platzierung in der Nähe bestimmter Pods oder auf Knoten mit bestimmten Labels vermeiden. Dies ist nützlich, um die Ausfallsicherheit zu erhöhen, sodass Kopien eines Dienstes nicht auf demselben Knoten landen.
Beispiel für die Verwendung von Affinität in einem Pod-Manifest:
apiVersion: v1
kind: Pod
metadata:
name: beispiel-pod
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- frontend
topologyKey: "kubernetes.io/hostname"
containers:
- name: beispiel-container
image: nginx
Hier wird der Pod auf einem Knoten platziert, auf dem bereits ein Pod mit dem Label app=frontend vorhanden ist.