使用 Helm nginx-ingress 圖表安裝時如何為 ingress-controller 服務啟用 ipv6?

使用 Helm nginx-ingress 圖表安裝時如何為 ingress-controller 服務啟用 ipv6?

我有一個使用 Kubespray(Calico 作為 CNI)的裸機 K8 叢集設置,並啟用了雙堆疊。我可以看到部署的所有 pod 都獲得 IPv4 和 IPv6 位址,但是當我嘗試使用 nginx helm 圖表安裝 nginx-ingress 控制器時,服務只啟用並指派了 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

我嘗試手動將以下規格新增至入口控制器 helm 圖表的 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 安裝 ingress-nginx ingress-nginx/ingress-nginx -f value.yaml -n ingress-nginx

這不僅是入口問題,基本上我嘗試使用 helm 圖表部署的任何應用程式都具有單堆疊和 IPv4 作為服務規範,這讓我認為我缺少這些圖表的值檔案中所需的一些手動配置。

此外,當我嘗試建立基本服務並直接使用具有 ipFamilyPolicy: PreferDualStack 和 ipFamilies: IPv6, IPv4 的服務檔案來部署它時,該服務已成功部署並分配了 v6 和 v4 位址。所以我知道從叢集的角度來看,我的配置很好,並且在部署圖表時缺少一些參數。

相關內容