Gestionar el tráfico saliente de las cargas de trabajo

En esta página se describen las acciones de conectividad de salida que debes llevar a cabo en una máquina virtual o un pod de un proyecto para permitir que las cargas de trabajo salgan de la organización. En el procedimiento se muestra cómo añadir una etiqueta obligatoria a las implementaciones para habilitar explícitamente el tráfico saliente y permitir que las cargas de trabajo se comuniquen fuera de la organización.

De forma predeterminada, el dispositivo air-gapped de Google Distributed Cloud (GDC) impide que las cargas de trabajo de un proyecto salgan de la organización. Las cargas de trabajo pueden salir de la organización si tu administrador de plataforma ha inhabilitado la protección contra la exfiltración de datos del proyecto. Además de inhabilitar la protección contra la exfiltración de datos, el operador de la aplicación (AO) debe añadir la etiqueta egress.networking.gke.io/enabled: true a la carga de trabajo del pod para habilitar la conectividad de salida de ese pod. Cuando asignas y usas una dirección IP conocida para el proyecto, se realiza una traducción de direcciones de red (NAT) de origen en el tráfico saliente de la organización.

Puedes gestionar la conectividad de salida de las cargas de trabajo de un pod o una VM.

Gestionar el tráfico saliente de las cargas de trabajo de un pod

Para configurar cargas de trabajo en un pod para la conectividad de salida, primero debes asegurarte de que la protección contra la exfiltración de datos esté inhabilitada en el proyecto. A continuación, asegúrate de que la etiqueta egress.networking.gke.io/enabled: true se haya añadido al pod. Si usas un elemento de nivel superior, como Deployment o Daemonset, para gestionar conjuntos de pods, debes configurar la etiqueta de pod en esas especificaciones.

En el siguiente ejemplo se muestra cómo crear un Deployment a partir de su archivo de manifiesto. El archivo de ejemplo contiene el valor egress.networking.gke.io/enabled: true en el campo labels para habilitar explícitamente el tráfico saliente del proyecto. Esta etiqueta se añade a cada pod del despliegue y permite que las cargas de trabajo de los pods salgan de la organización.

kubectl --kubeconfig INFRA_CLUSTER_KUBECONFIG \
    apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: DEPLOYMENT_NAME
spec:
  replicas: NUMBER_OF_REPLICAS
  selector:
    matchLabels:
      run: APP_NAME
  template:
    metadata:
      labels: # The labels given to each pod in the deployment, which are used
              # to manage all pods in the deployment.
        run: APP_NAME
        egress.networking.gke.io/enabled: true
    spec: # The pod specification, which defines how each pod runs in the deployment.
      containers:
      - name: CONTAINER_NAME
        image: CONTAINER_IMAGE
EOF

Haz los cambios siguientes:

  • INFRA_CLUSTER_KUBECONFIG: el archivo kubeconfig del clúster de usuario en el que vas a implementar cargas de trabajo de contenedor.

  • DEPLOYMENT_NAME: el archivo kubeconfig del clúster de usuario en el que vas a implementar las cargas de trabajo de los contenedores.

  • APP_NAME: el nombre de la aplicación que se va a ejecutar en la implementación.

  • NUMBER_OF_REPLICAS: número de objetos Pod replicados que gestiona la implementación.

  • CONTAINER_NAME: el nombre del contenedor.

  • CONTAINER_IMAGE: el nombre de la imagen del contenedor. Debes incluir la ruta del registro de contenedores y la versión de la imagen, como REGISTRY_PATH/hello-app:1.0.

Por ejemplo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      run: my-app
  template:
    metadata:
      labels:
        run: my-app
        egress.networking.gke.io/enabled: true
    spec:
      containers:
      - name: hello-app
        image: REGISTRY_PATH/hello-app:1.0

Gestionar el tráfico saliente de las cargas de trabajo de una VM

Para configurar cargas de trabajo en una VM para la conectividad de salida, puedes usar la consola de GDC para configurar la VM o crear un recurso VirtualMachineExternalAccess. Para obtener información sobre cómo habilitar una VM con acceso externo para la transferencia de datos, consulta Habilitar acceso externo en la sección Conectarse a VMs.