追加の信頼できる CA 証明書を 1 つ以上含む v1beta1 クラスタをプロビジョニングするには、この例を参照してください。
v1beta1 の例:追加の信頼できる CA 証明書を含むクラスタ
クラスタ v1beta1 API は、追加の信頼できる CA 証明書を 1 つ以上含むクラスタをプロビジョニングするための
trust 変数を提供します。
フィールド | 説明 |
---|---|
trust |
セクション マーカー。データを受け入れない。 |
additionalTrustedCAs |
セクション マーカー。それぞれの name を示す証明書の配列が含まれます。 |
name |
double 型の base64 エンコードの PEM 形式の CA 証明書を含む Kubernetes シークレットの data マップ フィールドのユーザー定義名。
注: base64 二重エンコードは必須です。内容が double 型の base64 エンコード形式でない場合は、結果の 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
)であり、値は double 型の base64 エンコードの PEM 形式の CA 証明書です。 metadata
セクションでは、シークレットの名前をCLUSTER-NAME-user-trusted-ca-secret
にする必要があります。CLUSTER-NAME はクラスタの名前です。このシークレットは、クラスタと同じ vSphere 名前空間 で作成する必要があります。
CA 証明書の内容を double 型の base64 エンコード形式にします。
- Linux:
base64 -w 0 ca.crt | base64 -w 0
- Windows:https://www.base64encode.org/
手順:新しいクラスタ
新しい TKGS クラスタに追加の信頼できる CA 証明書を 1 つ以上含める場合は、次の手順を実行します。
- CA 証明書の内容を double 型の base64 エンコード形式にします。
- データ マップ名を含む Kubernetes シークレットを作成します。値は double 型の base64 エンコードの PEM 形式の CA 証明書です。
- クラスタ仕様で、
trust.additionalTrustedCAs
変数にデータ マップの名前をポピュレートします。 - 通常どおりクラスタをプロビジョニングします。
- クラスタが正常にプロビジョニングされると、追加した CA 証明書がクラスタによって信頼されます。
手順:既存のクラスタ
既存のクラスタに追加の信頼できる CA 証明書を 1 つ以上追加する場合は、次の手順を実行します。
- CA 証明書の内容を double 型の base64 エンコード形式にします。
- データ マップ名を含む Kubernetes シークレットを作成します。値は double 型の base64 エンコードの PEM 形式の CA 証明書です。
- kubectl の編集が構成されていることを確認します。
kubectl のテキスト エディタの構成を参照してください。
- クラスタ仕様を編集します。
kubectl edit tanzukubernetescluster/tkgs-cluster-name
trust.additionalTrustedCAs
セクションを仕様に追加します。- double 型の base64 エンコードの PEM 形式の CA 証明書を含むシークレット内のデータ マップの名前を
additionalTrustedCAs
フィールドにポピュレートします。 - テキスト エディタで変更を保存し、変更が kubectl によって登録されたことを確認します。
kubectl edit cluster/tkgs-cluster-name cluster.run.tanzu.vmware.com/tkgs-cluster-name edited
- クラスタのローリング アップデートが開始されると、信頼できる CA 証明書が追加されます。
TKG サービス クラスタのローリング アップデート モデルについてを参照してください。
追加の信頼できる CA 証明書の確認
クラスタに追加された信頼できる CA 証明書は、クラスタの kubeconfig ファイルに含まれています。
証明書のローテーション
証明書をローテーションするには、新しいシークレットを作成し、適切な値を使用してクラスタ仕様を編集します。これにより、クラスタのローリング アップデートがトリガされます。
注: システムは、
CLUSTER-NAME-user-trusted-ca-secret
への変更を監視しません。
data
マップ値が変更された場合は、クラスタに反映されません。新しいシークレットを作成して、そのデータ マップの
name
を
trust.additionalTrustCAs
にする必要があります。
追加の信頼できる CA 証明書のトラブルシューティング
追加の信頼できる CA に関するエラーのトラブルシューティングを参照してください。
使用事例
最も一般的な使用事例は、コンテナ レジストリに接続するための信頼できる CA を追加する場合です。TKG サービス クラスタとプライベート コンテナ レジストリの統合を参照してください。