Habilitar direcciones IP

Puedes habilitar cualquier instancia de máquina virtual para que se pueda acceder a ella desde la red externa o desde otra organización. Esto se conoce como acceso entrante de VM. Una carga de trabajo de VM en un proyecto de una organización puede acceder a la red externa o a la VM actual que se expone a los servicios de otras organizaciones, lo que se conoce como salida de VM.

Puedes usar VirtualMachineExternalAccess (VMEA) para controlar el acceso y la salida de las VMs. Puedes encontrar las direcciones IP de entrada y salida que hayas habilitado para una instancia de VM en la API VMM del dispositivo aislado de Google Distributed Cloud (GDC) o a través de la consola de GDC.

Antes de empezar

Para usar los comandos de la gdcloud interfaz de línea de comandos (CLI), asegúrate de haber descargado, instalado y configurado la gdcloud CLI. Todos los comandos del dispositivo aislado de GDC usan la CLI gdcloud o kubectl y requieren un entorno de sistema operativo (SO).

Obtener la ruta del archivo kubeconfig

Para ejecutar comandos en el servidor de la API Management, asegúrate de tener los siguientes recursos:

  1. Busca el nombre del servidor de la API Management o pregunta a tu administrador de plataforma cuál es.

  2. Inicia sesión y genera el archivo kubeconfig del servidor de la API Management si no tienes uno.

  3. Usa la ruta para sustituir MANAGEMENT_API_SERVER{"</var>"}} en estas instrucciones.

Solicitar permisos y acceso

Para realizar las tareas que se indican en esta página, debes tener el rol de administrador de máquinas virtuales de proyecto. Sigue los pasos para verificar o pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de máquinas virtuales de proyectos (project-vm-admin) en el espacio de nombres del proyecto en el que reside la VM.

Para realizar operaciones con VMs mediante la consola de GDC o la CLI de gdcloud, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Administrador de VirtualMachine de proyecto y el rol Lector de proyectos (project-viewer).

Configurar el acceso externo a la VM

VirtualMachineExternalAccess (VMEA) controla el tráfico de entrada y salida de las VMs. VMEA no puede controlar el tráfico entrante y saliente de las VMs por separado. El tráfico de entrada y salida de una VM se debe habilitar o inhabilitar al mismo tiempo.

Puedes configurar y controlar VMEA desde la interfaz de usuario o desde la API de VMM del dispositivo aislado de GDC. Una VM solo puede tener un VMEA. Si una VM no tiene una VMEA, tanto la entrada como la salida se inhabilitan de forma predeterminada.

Habilitar el acceso externo

Para habilitar una VM con acceso externo para la transferencia de datos entrante y saliente, puedes configurar la VMEA desde la consola de GDC o la API Virtual Machine Manager del dispositivo aislado de GDC.

De forma predeterminada, se permite el tráfico de red dentro del proyecto y puedes acceder directamente a tu VM dentro del proyecto. Una política de red bloquea todo el tráfico entrante a la VM desde fuera del proyecto. Debes crear manualmente una política de red para permitir que tu dirección IP de origen acceda a la VM mediante la transferencia de datos. Esta política de red puede ser una política de red de tráfico entre proyectos o una política de red de tráfico entre organizaciones. La ubicación depende de dónde quieras acceder a la VM.

Puedes habilitar e inhabilitar el acceso externo de una VM especificando true o false en el campo enabled de la especificación VMEA. En el caso de VM Ingress, puedes configurar la transferencia de datos en los puertos especificando el nombre, el protocolo y el número de puerto de cada puerto que quieras añadir en el campo ports de la especificación VMEA.

Para habilitar el acceso externo a una VM creando un nuevo VMEA, sigue estos pasos:

Consola

  1. Durante el proceso de creación de la VM mediante la consola, ve a la página Detalles de la red desde la página Crear instancia de VM.
  2. Busque Red en el menú de navegación vertical de la página.
  3. Marca Permitir acceso externo para habilitar el acceso externo en la VM.

Habilitar el acceso externo al crear una VM

API

Ejecuta el siguiente comando:

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

Sustituye las siguientes variables:

  • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management.
  • VM_NAME: el nombre de tu VM.
  • PORT_NAME: nombre del puerto.
  • PROTOCOL: el protocolo que quieres que use el servicio de entrada. El nombre del protocolo debe estar en mayúsculas y ser un protocolo compatible con Kubernetes, como TCP, UDP o SCTP.
  • PORT_NUMBER: número de puerto.

Para habilitar el acceso externo a una VM editando un VMEA a través de la API VMM, ejecuta lo siguiente:

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

Inhabilitar el acceso externo

Si una máquina virtual no tiene un VMEA correspondiente, tanto el tráfico de entrada como el de salida se inhabilitan. Si una VM tiene un VMEA correspondiente, puedes inhabilitarlo de dos formas: asignando el valor false al campo enabled o eliminando directamente el VMEA. Puedes realizar estas operaciones a través de la API de VMM del dispositivo aislado de GDC.

Para inhabilitar el acceso externo, sigue estos pasos:

API

Inhabilita el acceso externo eliminando un VMEA:

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

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management.
  • VM_NAME: el nombre de la VM.
  • PROJECT: el proyecto del dispositivo con air gap de GDC en el que reside la VM.

Para inhabilitar el acceso externo, edita un VMEA:

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

Actualiza el campo enabled a false.

Entrada

Ver direcciones IP de entrada

Si una máquina virtual tiene habilitado Ingress, se mostrará una dirección IP de Ingress en la consola de GDC después de la creación. También puedes encontrar esta dirección IP de entrada en la página Detalles de la VM de la consola de GDC.

Para obtener la dirección IP, usa la API VMM del dispositivo aislado de GDC. Completa lo siguiente:

API

Obtén la dirección IP:

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

En el caso de una máquina virtual con otro sistema operativo, usa el comando ssh para acceder a la máquina virtual con la dirección IP de entrada y el puerto que hayas habilitado con TCP.

Editar Ingress

Después de habilitar VMEA en una VM, puedes personalizar el tráfico de entrada editando el VMEA. Puedes editar directamente la especificación del acceso de la VM desde la consola de GDC. También puedes usar la CLI de kubectl para editar el acceso de la VM desde la especificación de VMEA.

Para editar el VMEA y personalizar el acceso, sigue estos pasos:

Por ejemplo, usa los siguientes comandos para añadir el puerto PORT_NUMBER a una entrada de una VM que ya tengas mediante el protocolo TCP:

Consola

Edita directamente los puertos del servicio de entrada de la VM desde la consola de GDC:

  1. En el menú de navegación vertical, haga clic en Instancias.
  2. En la página, desplázate hasta Detalles de la red.
  3. Haga clic en el icono de edición de Puertos de entrada para editar el puerto de entrada.

    Interfaz de usuario de la consola que muestra la lista de detalles de la red con el icono de edición en Puertos de entrada

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"}}]'

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management.
  • VM_NAME: el nombre de la VM.
  • PROJECT: el proyecto del dispositivo con air gap de GDC en el que reside la VM.
  • PORT_NAME: el nombre del puerto que se va a añadir.
  • PORT_NUMBER: número de puerto.

Habilitar Ingress con un protocolo que no sea TCP

El dispositivo aislado de GDC te permite habilitar el acceso de entrada de tu máquina virtual con diferentes protocolos. De forma predeterminada, un servicio de entrada de VM usa el protocolo TCP. Puedes añadir tu propio protocolo de entrada no TCP a tu VM. El dispositivo aislado de GDC es compatible con los siguientes protocolos:

  • Protocolo de control de la transmisión (TCP).
  • Protocolo de datagramas de usuario (UDP).
  • Protocolo de transmisión de control de flujo (SCTP).

Puedes habilitar la transferencia de datos con un protocolo que no sea TCP especificando nombres de protocolo diferentes al crear VMEA.

Salida

Una carga de trabajo de una máquina virtual en un proyecto de una organización puede acceder a la red externa o exponerse a servicios de otras organizaciones. Si habilita la transferencia de datos de salida de la VM, verá una dirección IP de salida generada. La VM se conecta a los servicios externos con esta dirección IP.

Para transferir estos datos de direcciones IP fuera de la red externa, es posible que tengas que aplicar políticas de red del proyecto. Para obtener más información, consulta la política de red de tráfico saliente entre organizaciones.

Ver la dirección IP de salida

Si una VM tiene habilitado el tráfico saliente, se mostrará una dirección IP de salida en la consola de GDC después de la creación. También puedes encontrar esta dirección IP de salida en la página Detalles de la VM.

Para ver la dirección IP de salida, haz lo siguiente:

API

Obtén la dirección IP:

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

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management.
  • VM_NAME: el nombre de la VM.
  • PROJECT: el proyecto del dispositivo con air gap de GDC en el que reside la VM.

La salida de VMs se basa en un proyecto. Las máquinas virtuales del mismo proyecto tienen la misma dirección IP de salida.

Control de salida

En las versiones anteriores del dispositivo aislado de GDC, tenías que reiniciar la VM para que los cambios de salida se reflejaran en una VM en ejecución. En la versión 1.11, puede habilitar e inhabilitar la salida de la VM sin reiniciar la VM. Este cambio se aplicará inmediatamente después de actualizar el VMEA.