У меня есть кластер baremetal K8, настроенный с использованием Kubespray (Calico как CNI), и включен двойной стек. Я вижу, что все развернутые модули получают адреса как IPv4, так и IPv6, но когда я пытаюсь установить контроллер nginx-ingress с помощью nginx helm chart, службы получают только включенный и назначенный IPv4. Я вижу следующую спецификацию, когда я выполняю kubectl get на службе:
kubectl получить 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
Я попробовал вручную добавить следующую спецификацию в файл values.yaml для диаграммы Helm Ingress-Controller:
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
и применяя его, используя следующее, но безрезультатно:helm install ingress-nginx ingress-nginx/ingress-nginx -f значения.yaml -n ingress-nginx
Проблема не только с Ingress, по сути, любое приложение, которое я пытаюсь развернуть с помощью Helm Charts, имеет Single Stack и IPv4 в качестве спецификаций для служб, что наводит меня на мысль, что я упускаю какую-то ручную настройку, необходимую в файлах значений для этих Charts.
Также, когда я попытался создать базовую службу и развернул ее, используя файл службы напрямую с ipFamilyPolicy: PreferDualStack и ipFamilies: IPv6, IPv4, то служба была успешно развернута и получила оба адреса v6 и v4. Так что я знаю, что с точки зрения кластера моя конфигурация в порядке, и это какой-то отсутствующий параметр с развернутыми диаграммами.