請參閱此範例,使用一或多個其他受信任的 CA 叢集佈建 v1beta1 叢集。

v1beta1 範例:具有其他受信任的 CA 憑證的叢集

叢集 v1beta1 API 提供了 trust 變數,用於為叢集佈建一或多個其他受信任的 CA 憑證。
表 1. v1beta1 API Trust 變數
欄位 說明
trust 區段標記。不接受任何資料。
additionalTrustedCAs 區段標記。包括憑證陣列 (每個憑證都具有 name)。
name Kubernetes 密碼中 data 對應欄位的使用者定義名稱 ,該密碼包含採用雙 base64 編碼之 PEM 格式的 CA 憑證。
備註: 需要雙重 base64 編碼。如果內容未採用雙 base6 編碼,則無法處理產生的 PEM 檔案。
以下範例示範了如何將包含 CA 憑證的 Kubernetes 密碼新增到 v1beta1 API 叢集規格中。
#cluster-with-trusted-private-reg-cert.yaml
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: cluster01
  namespace: tkgs-cluster-ns
spec:
  clusterNetwork:
    services:
      cidrBlocks: ["198.52.100.0/12"]
    pods:
      cidrBlocks: ["192.101.2.0/16"]
    serviceDomain: "cluster.local"
  topology:
    class: tanzukubernetescluster
    version: v1.26.5+vmware.2-fips.1-tkg.1
    controlPlane:
      replicas: 3
    workers:
      machineDeployments:
        - class: node-pool
          name: node-pool-01
          replicas: 3
    variables:
      - name: vmClass
        value: guaranteed-medium
      - name: storageClass
        value: tkgs-storage-profile
      - name: defaultStorageClass
        value: tkgs-storage-profile
      - name: trust
        value:
          additionalTrustedCAs:
          - name: additional-ca-1
以下範例示範了包含其他受信任 CA 憑證的 Kubernetes 密碼。
#additional-ca-1.yaml
apiVersion: v1
data:
  additional-ca-1: TFMwdExTMUNSGlSzZ3Jaa...VVNVWkpRMEMwdExTMHRDZz09
kind: Secret
metadata:
  name: cluster01-user-trusted-ca-secret
  namespace: tkgs-cluster-ns
type: Opaque
其中:
  • 密碼 data 對應的值是使用者定義的字串,為 CA 憑證的名稱 (在本範例中為 additional-ca-1),其值為採用雙 base64 編碼之 PEM 格式的 CA 憑證。
  • metadata 區段中,必須將密碼命名為 CLUSTER-NAME-user-trusted-ca-secret,其中 CLUSTER-NAME 是叢集的名稱。必須在叢集所在的同一 vSphere 命名空間 中建立此密碼。
對 CA 憑證的內容進行雙 base64 編碼。

程序:新叢集

完成以下程序,以在新的 TKGS 叢集中包含一個或多個其他受信任的 CA 憑證。
  1. 對 CA 憑證的內容進行雙 base64 編碼。
  2. 建立包含資料對應名稱 (其值為採用雙 base64 編碼之 PEM 格式的 CA 憑證) 的 Kubernetes 密碼。
  3. 在叢集規格中,使用資料對應的名稱填入 trust.additionalTrustedCAs 變數。
  4. 像平常一樣佈建叢集。

    請參閱使用 Kubectl 佈建 TKG 叢集的工作流程

  5. 成功佈建叢集後,您新增的 CA 憑證將受叢集信任。

程序:現有叢集

完成以下程序,以將一或多個其他受信任的 CA 憑證新增到現有叢集。
  1. 對 CA 憑證的內容進行雙 base64 編碼。
  2. 建立包含資料對應名稱 (其值為採用雙 base64 編碼之 PEM 格式的 CA 憑證) 的 Kubernetes 密碼。
  3. 確認您已設定 kubectl 編輯。

    請參閱為 Kubectl 設定文字編輯器

  4. 編輯叢集規格。
    kubectl edit tanzukubernetescluster/tkgs-cluster-name
  5. trust.additionalTrustedCAs 部分新增到規格中。
  6. additionalTrustedCAs 欄位中填入密碼中資料對應的名稱 (包含了採用雙 base64 編碼之 PEM 格式的 CA 憑證)
  7. 在文字編輯器中儲存變更,並驗證 kubectl 是否已註冊這些變更。
    kubectl edit cluster/tkgs-cluster-name
    cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
  8. 為叢集啟動輪流更新時,將新增其他受信任的 CA 憑證。

    請參閱瞭解 TKG 服務 叢集的輪流更新模型

驗證其他受信任的 CA 憑證

新增到叢集的其他受信任的 CA 憑證包含在叢集的 kubeconfig 檔案中。

輪替憑證

若要輪替憑證,請建立新密鑰,並使用相應的值編輯叢集規格。這樣做將觸發對叢集進行輪流更新。
備註: 系統不會監控對 CLUSTER-NAME-user-trusted-ca-secret 的變更。如果其 data 對應值發生變更,則這些變更不會反映在叢集中。您需要建立新密碼以及 nametrust.additionalTrustCAs 的資料對應。

對其他受信任的 CA 憑證進行疑難排解

請參閱對其他受信任 CA 錯誤進行疑難排解

使用案例

最常見的使用案例是新增其他受信任的 CA 以連線至容器登錄。請參閱將 TKG 服務 叢集與私人容器登錄整合