コンテナ ネットワーク インターフェイス (CNI)、プロキシ サーバ、TLS 証明書などの主要な機能のグローバル設定を使用して、Tanzu Kubernetes Grid サービス をカスタマイズできます。グローバル機能とクラスタ単位の機能を実装する場合は、トレードオフと考慮事項に注意してください。

必要に応じて、グローバル パラメータを使用して Tanzu Kubernetes Grid サービス を構成できます。

注意: Tanzu Kubernetes Grid サービス の構成は、グローバルに行われます。つまり、 TkgServiceConfiguration の仕様に対して行った変更は、そのサービスによってプロビジョニングされたすべての Tanzu Kubernetes クラスタに適用されます。ローリング アップデートが手動またはアップグレードによって開始された場合は、変更されたサービス仕様によってクラスタが更新されます。

TkgServiceConfiguration の仕様

TkgServiceConfiguration 仕様は、 Tanzu Kubernetes Grid サービス インスタンスを構成するためのフィールドを提供します。
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: <antrea or calico>
  proxy:
    httpProxy: http://<user>:<pwd>@<ip>:<port>
    httpsProxy: http://<user>:<pwd>@<ip>:<port>
    noProxy: [<array of CIDRs to not proxy>]
  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>

TkgServiceConfiguration 仕様のパラメータ

次の表に、 TkgServiceConfiguration 仕様の各パラメータとその説明を示します。例については、 Tanzu Kubernetes Grid サービス v1alpha1 API の構成の例を参照してください。
フィールド 説明
defaultCNI antrea or calico クラスタで使用するデフォルトの CNI。デフォルトは antrea です。サポートされているその他の CNI は calico です。
proxy proxy パラメータのセクション マーカー。 proxy パラメータは httpProxyhttpsProxy、および noProxy です。すべてのパラメータが必要です。proxy パラメータが指定されていない場合は、Tanzu Kubernetes クラスタを作成できません。
httpProxy http://<user>:<pwd>@<ip>:<port> 形式の URI https プロトコルを許可しません。https が使用されている場合は、Tanzu Kubernetes クラスタを作成できません。
httpsProxy http://<user>:<pwd>@<ip>:<port> 形式の URI https プロトコルを許可しません。https が使用されている場合は、Tanzu Kubernetes クラスタを作成できません。
noProxy

プロキシにしない CIDR ブロックの配列([10.246.0.0/16,192.168.144.0/20,192.168.128.0/20] など)。

スーパーバイザー クラスタのワークロードネットワークから必要な値を取得します(Pod CIDRsIngress CIDRs、および Egress CIDRs)。

noProxy 配列フィールドに含める値については、次の図を参照してください。

スーパーバイザー クラスタ上のワークロード ネットワークで使用されるサブネット(ポッド、Ingress、および Egress)をプロキシにすることはできません。

noProxy フィールドにスーパーバイザー クラスタのサービス CIDR を含める必要はありません。Tanzu Kubernetes クラスタは、これらのサービスと連携しません。

エンドポイント localhost127.0.0.1 は自動的にプロキシされません。これらを noProxy フィールドに追加する必要はありません。

Tanzu Kubernetes クラスタのポッド CIDR およびサービス CIDR は、自動的にプロキシされません。これらを noProxy フィールドに追加する必要はありません。

trust trust パラメータのセクション マーカー。 データを受け入れない。
additionalTrustedCAs namedata の証明書の配列をそれぞれ受け入れます。 データを受け入れない。
name 文字列 TLS 証明書の名前。
data 文字列 PEM でエンコードされたパブリック証明書の base64 エンコード文字列。

図に示すように、スーパーバイザー クラスタ[ワークロード ネットワーク] から必要な noProxy 値を取得します。

[ワークロード ネットワーク] ウィンドウ。[ポッド CIDR]、[Ingress CIDR]、[Egress CIDR] の値が強調表示されています。

グローバル構成オプションとクラスタ単位の構成オプションの使い分け

TkgServiceConfiguration は、Tanzu Kubernetes Grid サービス インスタンスによってプロビジョニングされているすべての Tanzu Kubernetes クラスタに影響するグローバルな仕様です。

TkgServiceConfiguration 仕様を編集する前に、グローバル構成よりも、クラスタ単位の代替方法のほうが使用事例に適合する可能性について確認してください。
表 1. グローバル構成オプションとクラスタ単位の構成オプション
設定 グローバル オプション クラスタ単位のオプション
デフォルトの CNI TkgServiceConfiguration 仕様を編集します。Tanzu Kubernetes Grid サービス v1alpha1 API の構成の例を参照してください。 クラスタ仕様で CNI を指定します。たとえば、デフォルトの CNI は Antrea です。Calico を使用するには、クラスタの YAML 内で指定します。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例を参照してください
プロキシ サーバ TkgServiceConfiguration 仕様を編集します。Tanzu Kubernetes Grid サービス v1alpha1 API の構成の例を参照してください。 クラスタ仕様にプロキシ サーバ構成パラメータを含めます。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例を参照してください。
証明書の信頼 TkgServiceConfiguration 仕様を編集します。外部コンテナ レジストリと証明書ベース プロキシ構成の 2 つの使用事例があります。Tanzu Kubernetes Grid サービス v1alpha1 API の構成の例を参照してください はい。カスタム証明書をクラスタ単位で含めることも、クラスタ仕様でグローバルに設定された trust 設定をオーバーライドすることもできます。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例を参照してください。
注: TkgServiceConfiguration でグローバル プロキシが構成されている場合、そのプロキシ情報は、クラスタの初期デプロイ後にクラスタ マニフェストに伝達されます。グローバル プロキシ構成は、クラスタの作成時にプロキシ構成フィールドがない場合にのみ、クラスタ マニフェストに追加されます。つまり、クラスタごとの構成が優先されるため、グローバル プロキシ構成は上書きされます。詳細については、『 Tanzu Kubernetes Grid サービス v1alpha1 API の構成パラメータ』を参照してください。

TkgServiceConfiguration 仕様を編集する前に、設定をグローバル レベルで適用する場合の影響を確認してください。

フィールド 適用 追加/変更した場合の既存のクラスタへの影響 クラスタ作成時のクラスタ単位のオーバーライド クラスタ更新時のクラスタ単位のオーバーライド
defaultCNI グローバル なし 可能。クラスタ作成時にグローバル設定をオーバーライドできます 不可能。既存のクラスタの CNI は変更できません。クラスタ作成時にグローバルに設定されたデフォルトの CNI を使用した場合は、変更できません
proxy グローバル なし 可能。クラスタ作成時にグローバル設定をオーバーライドできます 可能。U2+ を使用している場合は、クラスタ更新時にグローバル設定をオーバーライドできます
trust グローバル なし 可能。クラスタ作成時にグローバル設定をオーバーライドできます 可能。U2+ を使用している場合は、クラスタ更新時にグローバル設定をオーバーライドできます

既存のクラスタへのグローバル構成変更の伝達

TkgServiceConfiguration でグローバル レベルの設定を行っても、既存のクラスタにはその設定が自動的に伝達されません。たとえば、TkgServiceConfigurationproxytrust の設定を変更しても、すでにプロビジョニングされているクラスタには影響がありません。

既存のクラスタにグローバルな変更を伝達するには、Tanzu Kubernetes クラスタにパッチを適用して、TkgServiceConfiguration に対する変更をクラスタに継承させる必要があります。

例:
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"proxy\": null}}}}"
kubectl patch tkc <CLUSTER_NAME> -n <NAMESPACE> --type merge -p "{\"spec\":{\"settings\":{\"network\":{\"trust\": null}}}}"