請按照下列指示,在執行適用於 vSphere 8.x 的 TKr 的 TKG 服務 叢集上安裝 Contour with Envoy。

必要條件

建立 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

完成以下步驟以安裝 Contour Ingress with Envoy。
  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 位址從為工作負載網路 > 入口指定的 CIDR 範圍獲得。已為此 IP 位址建立新的負載平衡器執行個體。此負載平衡器的伺服器集區成員是 Envoy 網繭。由於 Envoy 網繭會假設執行這些 Envoy 網繭的 worker 節點的 IP 位址,因此可以透過查詢叢集節點 (kubectl get nodes -o wide) 來查看這些 IP 位址。

疑難排解

根據需要參閱以下主題。