コンテナ ネットワーク インターフェイス (CNI)、プロキシ サーバ、TLS 証明書などの主要な機能のグローバル設定を使用して、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 パラメータは httpProxy 、httpsProxy 、および 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 ブロックの配列( スーパーバイザー クラスタのワークロードネットワークから必要な値を取得します(
|
スーパーバイザー クラスタ上のワークロード ネットワークで使用されるサブネット(ポッド、Ingress、および Egress)をプロキシにすることはできません。
エンドポイント Tanzu Kubernetes クラスタのポッド CIDR およびサービス CIDR は、自動的にプロキシされません。これらを |
trust |
trust パラメータのセクション マーカー。 |
データを受け入れない。 |
additionalTrustedCAs |
name と data の証明書の配列をそれぞれ受け入れます。 |
データを受け入れない。 |
name |
文字列 | TLS 証明書の名前。 |
data |
文字列 | PEM でエンコードされたパブリック証明書の base64 エンコード文字列。 |
図に示すように、スーパーバイザー クラスタ の [ワークロード ネットワーク] から必要な noProxy
値を取得します。
グローバル構成オプションとクラスタ単位の構成オプションの使い分け
TkgServiceConfiguration
は、Tanzu Kubernetes Grid サービス インスタンスによってプロビジョニングされているすべての Tanzu Kubernetes クラスタに影響するグローバルな仕様です。
TkgServiceConfiguration
仕様を編集する前に、グローバル構成よりも、クラスタ単位の代替方法のほうが使用事例に適合する可能性について確認してください。
設定 | グローバル オプション | クラスタ単位のオプション |
---|---|---|
デフォルトの 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
でグローバル レベルの設定を行っても、既存のクラスタにはその設定が自動的に伝達されません。たとえば、TkgServiceConfiguration
で proxy
や trust
の設定を変更しても、すでにプロビジョニングされているクラスタには影響がありません。
既存のクラスタにグローバルな変更を伝達するには、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}}}}"