Kubespray(Calico as CNI)를 사용하는 베어메탈 K8 클러스터 설정이 있고 듀얼 스택이 활성화되어 있습니다. 배포된 모든 포드가 IPv4 및 IPv6 주소를 모두 가져오는 것을 볼 수 있지만 nginx helm 차트를 사용하여 nginx-ingress 컨트롤러를 설치하려고 하면 서비스에 IPv4만 활성화되고 할당되어 있습니다. kubectl get on the service를 수행하면 다음 사양을 볼 수 있습니다.
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
수신 컨트롤러 투구 차트의 value.yaml 파일에 다음 사양을 수동으로 추가해 보았습니다.
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 value.yaml -n ingress-nginx
수신 문제일 뿐만 아니라 기본적으로 Helm 차트를 사용하여 배포하려는 모든 애플리케이션에는 서비스 사양으로 단일 스택 및 IPv4가 있으므로 이러한 차트의 값 파일에 필요한 일부 수동 구성이 누락되었다고 생각하게 됩니다.
또한 기본 서비스를 생성하고 ipFamilyPolicy: PreferDualStack 및 ipFamilies: IPv6, IPv4를 사용하여 직접 서비스 파일을 사용하여 배포하려고 시도했을 때 서비스가 성공적으로 배포되었고 v6 및 v4 주소가 모두 할당되었습니다. 따라서 클러스터 관점에서 내 구성이 양호하고 배포되는 차트에 일부 누락된 매개변수가 있다는 것을 알고 있습니다.