コンテナ ネットワーク インターフェイス、プロキシ サーバ、および 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 サービス は、Antrea と Calico という 2 つの CNI をサポートしています。デフォルトは 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
tkg-service-configuration
仕様が、KUBE_EDITOR または EDITOR 環境変数によって定義されたデフォルトのテキスト エディタで開かれます。 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
グローバル プロキシ サーバの構成
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
tkg-service-configuration
仕様が、KUBE_EDITOR または EDITOR 環境変数によって定義されたデフォルトのテキスト エディタで開かれます。 httpProxy
、httpsProxy
、noProxy
などの必須フィールドをそれぞれ含むspec.proxy
サブセクションを追加します。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]
- 各プロキシ フィールドに適切な値をポピュレートします。各フィールドの説明については、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]
- 変更を適用するには、テキスト エディタでこのファイルを保存します。キャンセルするには、保存せずにエディタを閉じます。
テキスト エディタで変更を保存すると、
tkg-service-configuration
は kubectl サービス仕様で定義された構成を使用して Tanzu Kubernetes Grid サービス を更新します。 - Tanzu Kubernetes Grid サービス がプロキシ設定を使用して更新されていることを確認します。
kubectl get tkgserviceconfigurations -o yaml
- 確認するには、Tanzu Kubernetes クラスタをプロビジョニングします。TKGS v1alpha2 API を使用して Tanzu Kubernetes クラスタをプロビジョニングするためのワークフローを参照してください。
次のコマンドを使用して、クラスタがプロキシを使用していることを確認します。
kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml
証明書ベースのプロキシ構成
環境によっては、プロキシ サーバを使用してインターネット トラフィックをルーティングすることが困難な場合があります。たとえば、金融機関などの規制の厳しい業界の企業では、すべてのインターネット トラフィックが企業のプロキシを経由する必要があります。
Tanzu Kubernetes Grid サービス を構成すると、送信 HTTP/S トラフィックにプロキシ サーバを使用するように Tanzu Kubernetes クラスタをプロビジョニングできます。詳細については、『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>>>>