Seguire queste istruzioni per installare Contour con Envoy in un cluster Servizio TKG che esegue TKr per vSphere 8.x.

Prerequisiti

Creazione dei valori dei dati di Contour

Preparare l'installazione di Contour creando il file dei valori dei dati.

  1. Recuperare l'elenco delle versioni dei pacchetti Contour disponibili.
    tanzu package available get contour.tanzu.vmware.com -n tkg-system

    Oppure, tramite kubectl:

    kubectl -n tkg-system get packages | grep contour
    Nota: In genere, è consigliabile utilizzare la versione più recente a meno che i requisiti non siano diversi.
  2. Generare il file 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
    dove:
    • 1.28.2+vmware.1-tkg.1 è la versione del pacchetto di destinazione
    • contour-data-values.yaml è il nome e il percorso del file dei valori dei dati da generare
  3. Modificare il file contour-data-values.yaml.

    Impostare il servizio Envoy su LoadBalancer in modo da consentire al traffico esterno al cluster di accedere ai servizi Kubernetes. Per istruzioni, fare riferimento all'esempio seguente.

    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
    

Installare Contour

Per installare Contour in ingresso con Envoy, eseguire i passaggi seguenti.
  1. Creare uno spazio dei nomi univoco per il pacchetto Contour.
    kubectl create ns tanzu-system-ingress
  2. Installare Contour.

    Modificare la versione in base ai propri requisiti.

    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. Verificare l'installazione di Contour.
    tanzu package installed list -n tanzu-system-ingress
  4. Verificare gli oggetti di Contour ed 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

    In questo esempio l'indirizzo IP esterno del servizio Envoy è 10.197.154.69. Questo indirizzo viene ricavato dall'intervallo CIDR specificato per Rete carico di lavoro > Ingresso. Per questo indirizzo IP viene creata una nuova istanza del bilanciamento del carico. I membri del pool di server per questo bilanciamento del carico sono i pod Envoy. Poiché i pod Envoy presuppongono gli indirizzi IP dei nodi di lavoro in cui vengono eseguiti, è possibile visualizzare questi indirizzi IP interrogando i nodi del cluster (kubectl get nodes -o wide).

Risolvere i problemi

Fare riferimento al seguente argomento in base alle necessità.