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
- Connectez-vous à VMware Cloud Services à l'adresse https://vmc.vmware.com.
- 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.
- 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 |
- Demandez une adresse IP publique pour la machine virtuelle fournissant le service.
- 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.