次の手順に従って、vSphere 8.x 用の TKr を実行している TKG サービス クラスタに Envoy を使用する Contour をインストールします。
前提条件
次の前提条件を満たす必要があります。
Contour のデータ値の作成
Contour のインストールを準備するには、データ値ファイルを作成します。
- 使用可能な Contour パッケージのバージョンを一覧表示します。
tanzu package available get contour.tanzu.vmware.com -n tkg-system
または、kubectl を使用します。
kubectl -n tkg-system get packages | grep contour
注: 要件が異なる場合を除き、通常は最新バージョンを使用する必要があります。 contour-default-values.yaml
ファイルを生成します。tanzu package available get contour.tanzu.vmware.com/1.28.2+vmware.1-tkg.1 --default-values-file-output contour-data-values.yaml
ここで、- 1.28.2+vmware.1-tkg.1 はターゲット パッケージのバージョンです
- contour-data-values.yaml は、生成するデータ値ファイルの名前とパスです
contour-data-values.yaml
ファイルを編集します。Envoy サービスを
LoadBalancer
に設定して、クラスタ外からのトラフィックが Kubernetes サービスにアクセスできるようにします。手順については、次の例を参照してください。vi contour-data-values.yaml
--- infrastructure_provider: vsphere namespace: tanzu-system-ingress contour: configFileContents: {} useProxyProtocol: false replicas: 2 pspNames: "vmware-system-restricted" logLevel: info envoy: service: type: LoadBalancer annotations: {} externalTrafficPolicy: Cluster disableWait: false hostPorts: enable: true http: 80 https: 443 hostNetwork: false terminationGracePeriodSeconds: 300 logLevel: info certificates: duration: 8760h renewBefore: 360h
Contour のインストール
Envoy を使用する Contour Ingress をインストールするには、次の手順を実行します。
- Contour パッケージの一意の名前空間を作成します。
kubectl create ns tanzu-system-ingress
- Contour をインストールします。
要件を満たすようにバージョンを調整します。
tanzu package install contour -p contour.tanzu.vmware.com -v 1.28.2+vmware.1-tkg.1 --values-file contour-data-values.yaml -n tanzu-system-ingress
- Contour のインストールを確認します。
tanzu package installed list -n tanzu-system-ingress
- Contour オブジェクトと Envoy オブジェクトを確認します。
kubectl -n tanzu-system-ingress get all
NAME READY STATUS RESTARTS AGE pod/contour-777bdddc69-fqnsp 1/1 Running 0 102s pod/contour-777bdddc69-gs5xv 1/1 Running 0 102s pod/envoy-d4jtt 2/2 Running 0 102s pod/envoy-g5h72 2/2 Running 0 102s pod/envoy-pjpzc 2/2 Running 0 102s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/contour ClusterIP 10.105.242.46 <none> 8001/TCP 102s service/envoy LoadBalancer 10.103.245.57 10.197.154.69 80:32642/TCP,443:30297/TCP 102s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/envoy 3 3 3 3 3 <none> 102s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/contour 2/2 2 2 102s NAME DESIRED CURRENT READY AGE replicaset.apps/contour-777bdddc69 2 2 2 102s
この例では、Envoy サービスの外部 IP アドレスは 10.197.154.69 です。この IP アドレスは、
に指定された CIDR 範囲から取得されます。この IP アドレス用に新しいロード バランサ インスタンスが作成されます。このロード バランサ用のサーバ プールのメンバーは Envoy ポッドです。Envoy ポッドは、それらが実行されているワーカー ノードの IP アドレスを想定しているため、クラスタ ノードを照会する (kubectl get nodes -o wide
) ことで、その IP アドレスを確認できます。
トラブルシューティング
必要に応じて、次のトピックを参照してください。