Ich habe ein Baremetal-K8-Cluster-Setup mit Kubespray (Calico als CNI) und Dual Stack aktiviert. Ich kann sehen, dass alle bereitgestellten Pods sowohl IPv4- als auch IPv6-Adressen erhalten, aber wenn ich versuche, den Nginx-Ingress-Controller mithilfe des Nginx-Helm-Charts zu installieren, ist für die Dienste nur IPv4 aktiviert und zugewiesen. Ich kann die folgende Spezifikation sehen, wenn ich kubectl get für den Dienst ausführe:
kubectl get svc ingress-nginx-controller -n ingress-nginx -o yaml
spec:
clusterIP: 10.233.34.249
clusterIPs:
- 10.233.34.249
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
Ich habe versucht, die folgende Spezifikation manuell zur Datei values.yaml für das Ingress-Controller-Helm-Diagramm hinzuzufügen:
service:
enabled: true
annotations: {}
labels: {}
# clusterIP: ""
## List of IP addresses at which the controller services are available
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
ipFamilyPolicy: PreferDualStack
ipFamilies:
- IPv6
- IPv4
und wende es wie folgt an, jedoch ohne Erfolg:helm installiere ingress-nginx ingress-nginx/ingress-nginx -f values.yaml -n ingress-nginx
Es handelt sich nicht nur um ein Problem mit dem Ingress. Grundsätzlich verfügt jede Anwendung, die ich mithilfe von Helm-Charts bereitzustellen versuche, über Single Stack und IPv4 als Spezifikationen für Dienste. Daher vermute ich, dass mir einige erforderliche manuelle Konfigurationseinstellungen in den Wertedateien für diese Charts fehlen.
Auch als ich versuchte, einen Basisdienst zu erstellen und ihn mithilfe einer Dienstdatei direkt mit der ipFamilyPolicy: PreferDualStack und ipFamilies: IPv6, IPv4 bereitzustellen, wurde der Dienst erfolgreich bereitgestellt und bekam sowohl v6- als auch v4-Adressen zugewiesen. Aus Clustersicht weiß ich also, dass meine Konfiguration in Ordnung ist und dass bei den bereitgestellten Diagrammen einige Parameter fehlen.