Reportez-vous à ces instructions pour installer des modules standards sur un cluster TKG provisionné avec une TKr pour vSphere 7.x.

Conditions requises

Reportez-vous à la section Workflow d'installation de modules standard sur TKr pour vSphere 7.x.

Installer Contour avec Envoy

Installez l'entrée Contour avec le service Envoy.
  1. Répertoriez les versions de Contour disponibles dans le référentiel.
    kubectl get packages -n tkg-system | grep contour
  2. Créez la spécification contour.yaml.

    Reportez-vous à la section #GUID-ED287018-E690-4993-9D34-F10BCFEE7609__GUID-CC995CF8-0F4B-4D92-A782-A3832C0EA5AE.

  3. Si nécessaire, personnalisez contour-data-values pour votre environnement.

    Reportez-vous à la section Référence du module Contour.

  4. Installez Contour.
    kubectl apply -f contour.yaml
    serviceaccount/contour-sa
    createdclusterrolebinding.rbac.authorization.k8s.io/contour-role-binding created
    packageinstall.packaging.carvel.dev/contour created
    secret/contour-data-values created
  5. Vérifiez l'installation du module Contour.
    kubectl get pkgi -A
  6. Vérifiez les objets Contour.
    kubectl get all -n contour-ingress
    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

    Le module Contour installe 2 espaces Contour et 3 espaces Envoy. Contour et Envoy sont exposés en tant que services. Dans cet exemple, le service Envoy dispose d'une adresse IP externe 10.197.154.69. Cette adresse IP est allouée à partir de la plage CIDR spécifiée pour Réseau de charge de travail > Entrée. Une instance d'équilibrage de charge est créée pour cette adresse IP. Les membres du pool de serveurs pour cet équilibreur de charge sont les espaces Envoy. Les espaces Envoy supposent les adresses IP des nœuds worker sur lesquels ils s'exécutent. Vous pouvez voir ces adresses IP en interrogeant les nœuds de cluster (kubectl get nodes -o wide).

contour.yaml

Utilisez le fichier contour.yaml suivant pour installer Contour avec Envoy. Mettez à jour la variable de version pour qu'elle corresponde à la version du module cible.
apiVersion: v1
kind: ServiceAccount
metadata:
  name: contour-sa
  namespace: tkg-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: contour-role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: contour-sa
    namespace: tkg-system
---
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageInstall
metadata:
  name: contour
  namespace: tkg-system
spec:
  serviceAccountName: contour-sa
  packageRef:
    refName: contour.tanzu.vmware.com
    versionSelection:
      constraints: 1.26.1+vmware.1-tkg.1 #PKG-VERSION
  values:
  - secretRef:
      name: contour-data-values
---
apiVersion: v1
kind: Secret
metadata:
  name: contour-data-values
  namespace: tkg-system
stringData:
  values.yml: |
    ---
    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