請參閱範例,以使用容器網路介面、Proxy 伺服器和 TLS 憑證的全域組態設定來自訂 Tanzu Kubernetes Grid 服務 v1alpha2 API。
使用 v1alpha2 API 設定 Tanzu Kubernetes Grid 服務
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TkgServiceConfiguration metadata: name: tkg-service-v2-configuration-example spec: defaultCNI: antrea proxy: #supported format is `http://<user>:<pwd>@<ip>:<port>` httpProxy: http://admin:[email protected]:80 httpsProxy: http://admin:[email protected]:80 noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] trust: additionalTrustedCAs: - name: CompanyInternalCA-1 data: LS0tLS1C...LS0tCg== #where "..." is the middle section of the long base64 string - name: CompanyInternalCA-2 data: MTLtMT1C...MT0tPg== defaultNodeDrainTimeout: 0
必要條件:設定 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 服務 叢集網路。
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換為目標 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 列出預設 CNI。
kubectl get tkgserviceconfigurations
範例結果:NAME DEFAULT CNI tkg-service-configuration antrea
- 載入以編輯 Tanzu Kubernetes Grid 服務規格。
kubectl edit tkgserviceconfigurations tkg-service-configuration
系統會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的預設文字編輯器中開啟
tkg-service-configuration
規格。 - 編輯
spec.defaultCNI
值。例如,從以下內容進行變更:spec: defaultCNI: antrea
變更為:spec: defaultCNI: calico
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
當您在文字編輯器中儲存變更時,kubectl 會更新
tkg-service-configuration
服務規格。 - 確認預設 CNI 已更新。
kubectl get tkgserviceconfigurations
預設 CNI 已更新。使用預設網路設定佈建的任何叢集都會使用預設 CNI。NAME DEFAULT CNI tkg-service-configuration calico
設定全域 Proxy 伺服器
TkgServiceConfiguration
。如需必填欄位的說明,請參閱
Tanzu Kubernetes Grid 服務 v1alpha1 API 的組態參數。
- 使用 主管叢集 進行驗證。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 將內容切換為目標 vSphere 命名空間。
kubectl config use-context tkgs-cluster-ns
- 取得目前組態。
kubectl get tkgserviceconfigurations
範例結果:NAME DEFAULT CNI tkg-service-configuration antrea
- 載入以編輯 Tanzu Kubernetes Grid 服務規格。
kubectl edit tkgserviceconfigurations tkg-service-configuration
系統會在 KUBE_EDITOR 或 EDITOR 環境變數所定義的預設文字編輯器中開啟
tkg-service-configuration
規格。 - 在每個必填欄位中新增
spec.proxy
子區段,包括httpProxy
、httpsProxy
和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>:<pwd>@<ip>:<port> httpsProxy: http://<user>:<pwd>@<ip>:<port> noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
- 使用相應的值填入每個 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:[email protected]:3128 httpsProxy: http://user:[email protected]:3128 noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
- 若要套用變更,請在文字編輯器中儲存該檔案。若要取消,請關閉編輯器而無需儲存。
在文字編輯器中儲存變更時,kubectl 會使用
tkg-service-configuration
服務規格中定義的組態來更新 Tanzu Kubernetes Grid 服務。 - 確認是否已使用 Proxy 設定更新 Tanzu Kubernetes Grid 服務。
kubectl get tkgserviceconfigurations -o yaml
- 若要驗證,請佈建 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 的組態參數。
TkgServiceConfiguration
規格。
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TkgServiceConfiguration metadata: name: tkg-service-configuration-example spec: defaultCNI: antrea proxy: httpProxy: http://user:[email protected]:3128 httpsProxy: http://user:[email protected]: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 defaultNodeDrainTimeout: 0
外部私人登錄組態
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>>>>