Eu tenho uma configuração de cluster baremetal K8 usando Kubespray (Calico como CNI) e tenho pilha dupla habilitada. Posso ver que todos os pods implantados obtêm endereços IPv4 e IPv6, mas quando tento instalar o controlador nginx-ingress usando o nginx helm chart, os serviços só têm IPv4 habilitado e atribuído. Posso ver as seguintes especificações quando kubectl entro no serviço:
kubectl obtém svc ingresso-nginx-controller -n ingresso-nginx -o yaml
spec:
clusterIP: 10.233.34.249
clusterIPs:
- 10.233.34.249
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
Tentei adicionar manualmente a seguinte especificação ao arquivo values.yaml para o gráfico do leme do controlador de entrada:
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
e aplicá-lo usando o seguinte, mas sem sucesso:helm instalar ingresso-nginx ingresso-nginx/ingress-nginx -f valores.yaml -n ingresso-nginx
Não é apenas um problema de entrada, basicamente qualquer aplicativo que estou tentando implantar usando gráficos de leme tem Single Stack e IPv4 como especificações para serviços, o que me faz pensar que estou perdendo alguma configuração manual necessária nos arquivos de valores para esses gráficos.
Além disso, quando tentei criar um serviço básico e implantá-lo usando um arquivo de serviço diretamente com ipFamilyPolicy: PreferDualStack e ipFamilies: IPv6, IPv4, o serviço foi implantado com sucesso e recebeu endereços v6 e v4 atribuídos. Portanto, sei que, da perspectiva do cluster, minha configuração está correta e há algum parâmetro ausente nos gráficos que estão sendo implantados.