Pour activer l'accès depuis l'Internet public à un service Kubernetes exécuté dans un cluster Tanzu Kubernetes Grid, publiez le service en interne, puis attribuez-lui une adresse IP publique et créez une règle DNAT qui expose le service publié à une adresse IP sur le CIDR d'entrée.

L'accès Internet aux services de cluster est géré par un équilibrage de charge via une adresse IP publique avec DNAT dans le bloc CIDR d'entrée que vous avez spécifié lors de l'activation de Tanzu Kubernetes Grid. Dans VMware Cloud on AWS, le service d'équilibrage de charge est implémenté par NSX Container Plug-in, qui est automatiquement configuré pour chaque cluster SDDC sur lequel vous activez Tanzu Kubernetes Grid. Pour plus d'informations, consultez Présentation de NSX Container Plug-in.

Les étapes suivantes décrivent un workflow classique que vous pouvez utiliser pour rendre un service Kubernetes accessible depuis l'Internet public. L'article VMware Cloud Tech Zone Configurer l'accès public aux clusters Tanzu Kubernetes dans VMware Cloud on AWS explique ce workflow plus en détail.

Procédure

  1. Connectez-vous à VMware Cloud Services à l'adresse https://vmc.vmware.com.
  2. Utilisez l'API VMware Cloud on AWS pour publier le service en interne.
    Déployez-le en tant que service de type LoadBalancer, en spécifiant l'espace de noms et les ports de nœud, comme indiqué ici.
    apiversion: v1
    kind: service
    metadata:
        name: example-svc
        namespace: ns1
        labels:
            app: hardtop-example
    spec:
        ports:
            port:80
            targetPort: 8080
        type: LoadBalancer
        selector:
            app: example-app
    Le déploiement d'un service Kubernetes d' type: LoadBalancer le publie et le rend accessible dans le cluster sur le port spécifié ( port: 80 dans cet exemple), puis mappe un port de nœud pour le service à un port aléatoire supérieur à 30000.
  3. Créez une règle de pare-feu de passerelle de calcul VMware Cloud on AWS autorisant l'accès à la machine virtuelle sur son adresse IP externe et son port de nœud mappé (31552 dans cet exemple).
    Utilisez une commande kubectl semblable à celle-ci pour renvoyer les propriétés de service requises pour la règle de pare-feu.
    kubectl get service  example-svc -n ns1
    NAME            TYPE             CLUSTER-IP       EXTERNAL-IP    PORT(S)
    example-svc     LoadBalancer     10.96.249.36     10.130.1.9     80:31552/TCP
    Suivez la procédure décrite dans la section Ajouter ou modifier des règles de pare-feu de passerelle de gestion dans le guide Mise en réseau et sécurité de VMware Cloud on AWS pour créer une règle avec des paramètres semblables aux paramètres suivants :
    Option Description
    Sources Tous
    Destinations Adresse IP externe du service (10.130.1.9 dans cet exemple)
    Services HTTP
    Action Autoriser
  4. Demandez une adresse IP publique pour la machine virtuelle fournissant le service.
    Suivez la procédure décrite dans la section Demander ou libérer une adresse IP publique du guide Mise en réseau et sécurité de VMware Cloud on AWS :
  5. Créez une règle DNAT pour cette adresse IP publique.
    Suivez la procédure décrite dans la section Créer ou modifier des règles NAT du guide Mise en réseau et sécurité de VMware Cloud on AWS pour créer une règle DNAT mettant en correspondance l'adresse IP publique et l'adresse IP interne. Si votre règle spécifie l'option Mettre en correspondance l'adresse interne, vous devrez également créer une règle de pare-feu autorisant l'accès à l' Adresse IP publique sur l'interface Internet.