Activer les adresses IP

Vous pouvez autoriser l'accès à n'importe quelle instance de machine virtuelle (VM) depuis le réseau externe ou une autre organisation (entrée de VM). Une charge de travail de VM dans un projet d'organisation peut atteindre le réseau externe ou la VM actuelle exposée aux services d'autres organisations, appelée sortie de VM.

Vous pouvez utiliser VirtualMachineExternalAccess (VMEA) pour contrôler ensemble l'entrée et la sortie des VM. Vous pouvez trouver les adresses IP d'entrée et de sortie que vous avez activées pour une instance de VM sur l'API VMM Google Distributed Cloud (GDC) air-gapped ou dans la console GDC.

Avant de commencer

Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud. Toutes les commandes pour Distributed Cloud utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).

Obtenir le chemin d'accès au fichier kubeconfig

Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :

  1. Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.

  2. Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer MANAGEMENT_API_SERVER dans ces instructions.

Demander des autorisations et un accès

Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour vérifier que vous disposez du rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.

Pour les opérations sur les VM à l'aide de la console GDC ou de la CLI gdcloud, demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur de machines virtuelles du projet et le rôle Lecteur du projet (project-viewer).

Configurer l'accès externe aux VM

VirtualMachineExternalAccess (VMEA) contrôle l'entrée et la sortie des VM. VMEA ne peut pas contrôler séparément l'entrée et la sortie des VM. L'entrée et la sortie d'une VM doivent être activées ou désactivées en même temps.

Vous pouvez configurer et contrôler VMEA depuis l'interface utilisateur ou depuis l'API Distributed Cloud VMM. Une VM ne peut avoir qu'une seule VMEA. Si une VM ne dispose pas d'une adresse VMEA, le trafic entrant et sortant est désactivé par défaut.

Activer l'accès externe

Pour activer une VM avec accès externe pour le transfert de données entrantes et sortantes, vous pouvez configurer le VMEA à partir de la console GDC ou de l'API Virtual Machine Manager Distributed Cloud.

Par défaut, le trafic réseau intra-projet est autorisé et vous pouvez accéder directement à votre VM dans le projet. Une stratégie réseau bloque tout le trafic entrant vers la VM provenant de l'extérieur du projet. Vous devez créer manuellement une règle de réseau pour autoriser votre adresse IP source à accéder à la VM via le transfert de données entrant. Cette règle de réseau peut être une règle de réseau de trafic inter-projets ou une règle de réseau de trafic inter-organisations. L'emplacement dépend de l'endroit depuis lequel vous souhaitez accéder à la VM.

Vous pouvez activer et désactiver l'accès externe d'une VM en spécifiant true ou false dans le champ enabled de la spécification VMEA. Pour l'entrée de VM, vous pouvez configurer le transfert de données dans les ports en spécifiant le nom, le protocole et le numéro de port pour chaque port que vous souhaitez ajouter dans le champ ports de la spécification VMEA.

Pour activer l'accès externe à une VM en créant une VMEA, procédez comme suit :

Console

  1. Lors de la création de la VM à l'aide de la console, accédez à la page Détails du réseau depuis la page Créer une instance de VM.
  2. Recherchez Réseau dans le menu de navigation vertical de la page.
  3. Cochez la case Autoriser l'accès externe pour activer l'accès externe sur la VM.

Activer l'accès externe lors de la création d'une VM

API

Exécutez la commande suivante :

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineExternalAccess
metadata:
   name: VM_NAME
spec:
   enabled: true
   ports:
     - name: PORT_NAME
       protocol: PROTOCOL
       port: PORT_NUMBER
EOF

Remplacez les variables suivantes :

  • MANAGEMENT_API_SERVER : fichier kubeconfig du serveur de l'API Management.
  • VM_NAME : nom de votre VM.
  • PORT_NAME : nom du port.
  • PROTOCOL : protocole que vous souhaitez que le service d'entrée utilise. Le nom du protocole doit être en majuscules et être un protocole compatible avec Kubernetes, tel que TCP, UDP ou SCTP.
  • PORT_NUMBER : numéro de port.

Pour activer l'accès externe à une VM en modifiant un VMEA existant via l'API VMM, exécutez la commande suivante :

kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Désactiver l'accès externe

Si une VM ne possède pas de VMEA correspondant, le trafic entrant et sortant sont désactivés. Si une VM possède une VMEA correspondante, vous pouvez la désactiver en définissant le champ enabled sur false ou en supprimant directement la VMEA. Vous pouvez effectuer ces opérations à l'aide de l'API Distributed Cloud VMM.

Pour désactiver l'accès externe, procédez comme suit :

API

Désactivez l'accès externe en supprimant une VMEA :

kubectl --kubeconfig MANAGEMENT_API_SERVER delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Remplacez les éléments suivants :

  • MANAGEMENT_API_SERVER : fichier kubeconfig du serveur de l'API Management.
  • VM_NAME : Nom de la VM.
  • PROJECT : projet Distributed Cloud dans lequel se trouve la VM.

Désactivez l'accès externe en modifiant une VMEA :

kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT

Définissez le champ enabled sur false.

Entrée

Afficher les adresses IP d'entrée

Si une VM est activée avec Ingress, une adresse IP Ingress s'affiche dans la console GDC après la création. Vous pouvez également trouver cette adresse IP d'entrée sur la page Détails de la VM de la console GDC.

Pour récupérer l'adresse IP, utilisez l'API Distributed Cloud VMM. Effectuez les actions suivantes :

API

Récupérez l'adresse IP :

kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.ingressIP}'

Pour une VM avec un autre système d'exploitation (OS), utilisez la commande ssh pour accéder à la VM avec l'adresse IP d'entrée et le port que vous avez activé avec TCP.

Modifier l'entrée

Une fois que vous avez activé VMEA pour une VM, vous pouvez personnaliser l'entrée en modifiant VMEA. Vous pouvez modifier directement la spécification de l'entrée de VM depuis la console GDC. Vous pouvez également utiliser la CLI kubectl pour modifier l'entrée de la VM à partir de la spécification du VMEA.

Pour modifier le VMEA afin de personnaliser l'entrée, procédez comme suit :

Par exemple, utilisez les commandes suivantes pour ajouter le port PORT_NUMBER à une entrée de VM existante à l'aide du protocole TCP :

Console

Modifiez directement les ports du service d'entrée de VM depuis la console GDC :

  1. Dans le menu de navigation vertical, cliquez sur Instances.
  2. Sur la page, faites défiler la section Détails du réseau.
  3. Cliquez sur l'icône de modification à côté de Ports d'entrée pour modifier le port d'entrée.

    UI de la console affichant la liste des détails du réseau avec l&#39;icône de modification sur les ports d&#39;entrée

API

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'

Remplacez les éléments suivants :

  • MANAGEMENT_API_SERVER : fichier kubeconfig du serveur de l'API Management.
  • VM_NAME : Nom de la VM.
  • PROJECT : projet Distributed Cloud dans lequel se trouve la VM.
  • PORT_NAME : nom du port à ajouter.
  • PORT_NUMBER : numéro de port.

Activer l'entrée avec un protocole non TCP

Distributed Cloud vous permet d'activer l'entrée de vos VM avec différents protocoles. Par défaut, un service Ingress de VM utilise le protocole TCP. Vous pouvez ajouter votre propre protocole d'entrée non TCP pour votre VM. Distributed Cloud est compatible avec les protocoles suivants :

  • Protocole de contrôle de transmission (TCP).
  • Protocole de datagramme utilisateur (UDP).
  • Protocole SCTP (Stream Control Transmission Protocol).

Vous pouvez activer le transfert de données avec un protocole non TCP en spécifiant différents noms de protocole lors de la création de l'association VMEA.

Sortie

Une charge de travail de VM dans un projet d'organisation peut accéder au réseau externe ou être exposée aux services d'autres organisations. Si vous activez le transfert de données sortantes pour la VM, une adresse IP de sortie est générée. La VM se connecte aux services externes avec cette adresse IP.

Pour transférer ces données d'adresse IP hors du réseau externe, vous devrez peut-être appliquer des règles réseau au projet. Pour en savoir plus, consultez Règle de réseau pour le trafic de sortie entre organisations.

Afficher l'adresse IP de sortie

Si une VM est activée avec la sortie, une adresse IP de sortie s'affiche dans la console GDC après la création. Vous trouverez également cette adresse IP de sortie sur la page Informations sur la VM.

Pour afficher l'adresse IP de sortie, procédez comme suit :

API

Récupérez l'adresse IP :

kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.egressIP}'

Remplacez les éléments suivants :

  • MANAGEMENT_API_SERVER : fichier kubeconfig du serveur de l'API Management.
  • VM_NAME : Nom de la VM.
  • PROJECT : projet Distributed Cloud dans lequel se trouve la VM.

La sortie de VM est basée sur un projet. Les VM d'un même projet contiennent la même adresse IP de sortie.

Contrôler la sortie

Dans les versions précédentes de Distributed Cloud, vous deviez redémarrer la VM pour que les modifications apportées à la sortie soient reflétées dans une VM en cours d'exécution. Dans la version 1.11, vous pouvez activer et désactiver le trafic sortant de la VM sans la redémarrer. Cette modification prend effet immédiatement après la mise à jour du VMEA.