Tengo una configuración de clúster K8 baremetal que usa Kubespray (Calico como CNI) y tengo habilitada la pila dual. Puedo ver que todos los pods que se implementan obtienen direcciones IPv4 e IPv6, pero cuando intento instalar el controlador nginx-ingress usando nginx helm chart, los servicios solo tienen IPv4 habilitado y asignado. Puedo ver la siguiente especificación cuando ingreso kubectl al servicio:
kubectl obtiene svc ingreso-nginx-controlador -n ingreso-nginx -o yaml
spec:
clusterIP: 10.233.34.249
clusterIPs:
- 10.233.34.249
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
Intenté agregar manualmente la siguiente especificación al archivo value.yaml para el gráfico de timón del controlador de ingreso:
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
y aplicándolo usando lo siguiente pero sin éxito:helm instalar ingress-nginx ingress-nginx/ingress-nginx -f valores.yaml -n ingress-nginx
No es solo un problema con el ingreso, básicamente cualquier aplicación que intento implementar usando gráficos de timón tiene Single Stack e IPv4 como especificaciones para servicios, lo que me hace pensar que me faltan algunas configuraciones manuales requeridas en los archivos de valores para estos gráficos.
Además, cuando intenté crear un servicio básico y lo implementé usando un archivo de servicio directamente con ipFamilyPolicy: PreferDualStack e ipFamilies: IPv6, IPv4, el servicio se implementó correctamente y se asignaron las direcciones v6 y v4. Entonces, desde la perspectiva del clúster, sé que mi configuración está bien y falta algún parámetro en los gráficos que se están implementando.