請參閱範例,以使用容器網路介面、Proxy 伺服器和 TLS 憑證的全域組態設定來自訂 Tanzu Kubernetes Grid 服務

關於設定 Tanzu Kubernetes Grid 服務

可以透過變更預設 CNI、新增全域 Proxy 伺服器以及新增受信任的憑證來自訂 Tanzu Kubernetes Grid 服務。請參閱 Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數
注意: 編輯 Tanzu Kubernetes Grid 服務規格會導致對該服務所佈建的所有叢集進行全域變更,包括手動或自動升級的新叢集和現有叢集。

必要條件:設定 Kubectl 編輯

若要縮放 Tanzu Kubernetes 叢集,請使用命令 kubectl edit tanzukubernetescluster/CLUSTER-NAME 更新叢集資訊清單。kubectl edit 命令會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的文字編輯器中開啟叢集資訊清單。如需設定環境變數的相關指示,請參閱為 Kubectl 指定預設文字編輯器

儲存規格變更時,kubectl 報告已成功記錄編輯。若要取消,只需關閉編輯器而無需儲存。

設定預設 CNI

Tanzu Kubernetes Grid 服務 提供了 Tanzu Kubernetes 叢集的預設容器網路介面 (CNI)。可以透過預設組態來建立叢集,而無需指定 CNI。您可以透過編輯服務規格來變更預設 CNI。

Tanzu Kubernetes Grid 服務 支援兩個 CNI:Antrea 和 Calico,其中 Antrea 為預設值。如需詳細資訊,請參閱 Tanzu Kubernetes Grid 服務 叢集網路

您可以透過明確指定要使用的 CNI 來覆寫預設 CNI。或者,還可以透過編輯 CNI 的 TKG 服務控制器來變更預設 CNI。
  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換為目標 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 列出預設 CNI。
    kubectl get tkgserviceconfigurations
    範例結果:
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. 載入以編輯 Tanzu Kubernetes Grid 服務規格。
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    系統會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的預設文字編輯器中開啟 tkg-service-configuration 規格。

  5. 編輯 spec.defaultCNI 值。
    例如,從以下內容進行變更:
    spec:
      defaultCNI: antrea
    變更為:
    spec:
      defaultCNI: calico
  6. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    當您在文字編輯器中儲存變更時,kubectl 會更新 tkg-service-configuration 服務規格。

  7. 確認預設 CNI 已更新。
    kubectl get tkgserviceconfigurations
    預設 CNI 已更新。使用預設網路設定佈建的任何叢集都會使用預設 CNI。
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

設定全域 Proxy 伺服器

若要啟用全域 Proxy 伺服器,請將 Proxy 伺服器參數新增至 TkgServiceConfiguration。如需必填欄位的說明,請參閱 Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數
  1. 使用 主管叢集 進行驗證。
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 將內容切換為目標 vSphere 命名空間
    kubectl config use-context tkgs-cluster-ns
  3. 取得目前組態。
    kubectl get tkgserviceconfigurations
    範例結果:
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. 載入以編輯 Tanzu Kubernetes Grid 服務規格。
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    系統會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的預設文字編輯器中開啟 tkg-service-configuration 規格。

  5. 在每個必填欄位中新增 spec.proxy 子區段,包括 httpProxyhttpsProxynoProxy
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
    
  6. 使用相應的值填入每個 Proxy 欄位。如需每個欄位的說明,請參閱 Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數

    noProxy 欄位的所需值來自主管叢集上的工作負載網路。請參閱上述主題中有關從何處取得這些值的圖片。

    例如:
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://user:password@10.186.102.224:3128
        httpsProxy: http://user:password@10.186.102.224:3128
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
    
  7. 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。

    在文字編輯器中儲存變更時,kubectl 會使用 tkg-service-configuration 服務規格中定義的組態來更新 Tanzu Kubernetes Grid 服務

  8. 確認是否已使用 Proxy 設定更新 Tanzu Kubernetes Grid 服務
    kubectl get tkgserviceconfigurations -o yaml
  9. 若要驗證,請佈建 Tanzu Kubernetes 叢集。請參閱使用 TKGS v1alpha2 API 佈建 Tanzu Kubernetes 叢集的工作流程
    使用下列命令確認該叢集正在使用 Proxy。
    kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml

以憑證為基礎的 Proxy 組態

在某些環境中,使用 Proxy 伺服器路由網際網路流量是一項硬性要求。例如,在高度管制的產業公司 (例如金融機構) 中,要求所有網際網路流量都通過企業 Proxy。

可以設定 Tanzu Kubernetes Grid 服務,以將 Tanzu Kubernetes 叢集佈建為針對輸出 HTTP/S 流量使用 Proxy 伺服器。如需詳細資訊,請參閱 Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數

如範例所示,您可以將 Proxy 伺服器的受信任憑證新增至 TkgServiceConfiguration 規格。
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    httpProxy: http://user:password@10.186.102.224:3128
    httpsProxy: http://user:password@10.186.102.224:3128
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust:
    additionalTrustedCAs:
      - name: first-cert-name
        data: base64-encoded string of a PEM encoded public cert 1
      - name: second-cert-name
        data: base64-encoded string of a PEM encoded public cert 2

外部私人登錄組態

可以使用自訂憑證設定 Tanzu Kubernetes Grid 服務,以將 Tanzu Kubernetes 叢集與外部私人登錄連線。如需詳細資訊,請參閱 將外部容器登錄與 Tanzu Kubernetes 叢集搭配使用
 
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  trust:
    additionalTrustedCAs:
      - name: harbor-vm-cert
        data: <<<base64-encoded string of a PEM encoded public cert>>>>