次の手順に従って、vSphere 8.x 用の TKr を実行している TKG サービス クラスタに Envoy を使用する Contour をインストールします。

前提条件

Contour のデータ値の作成

Contour のインストールを準備するには、データ値ファイルを作成します。

  1. 使用可能な Contour パッケージのバージョンを一覧表示します。
    tanzu package available get contour.tanzu.vmware.com -n tkg-system

    または、kubectl を使用します。

    kubectl -n tkg-system get packages | grep contour
    注: 要件が異なる場合を除き、通常は最新バージョンを使用する必要があります。
  2. 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 は、生成するデータ値ファイルの名前とパスです
  3. 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 をインストールするには、次の手順を実行します。
  1. Contour パッケージの一意の名前空間を作成します。
    kubectl create ns tanzu-system-ingress
  2. 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
  3. Contour のインストールを確認します。
    tanzu package installed list -n tanzu-system-ingress
  4. 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 アドレスは、[ワークロード ネットワーク] > [Ingress] に指定された CIDR 範囲から取得されます。この IP アドレス用に新しいロード バランサ インスタンスが作成されます。このロード バランサ用のサーバ プールのメンバーは Envoy ポッドです。Envoy ポッドは、それらが実行されているワーカー ノードの IP アドレスを想定しているため、クラスタ ノードを照会する (kubectl get nodes -o wide) ことで、その IP アドレスを確認できます。

トラブルシューティング

必要に応じて、次のトピックを参照してください。