Gestire il traffico in uscita dai carichi di lavoro

Questa pagina descrive le azioni di connettività in uscita che devi intraprendere su una macchina virtuale (VM) o un pod in un progetto per consentire ai carichi di lavoro di uscire dall'organizzazione. La procedura mostra come aggiungere un'etichetta obbligatoria ai deployment per abilitare esplicitamente il traffico in uscita e consentire ai carichi di lavoro di comunicare al di fuori dell'organizzazione.

Per impostazione predefinita, Google Distributed Cloud (GDC) air-gapped blocca i carichi di lavoro in un progetto che escono dall'organizzazione. I carichi di lavoro possono uscire dall'organizzazione se l'amministratore della piattaforma (PA) ha disattivato la protezione dall'esfiltrazione di dati per il progetto. Oltre a disattivare la protezione dall'esfiltrazione di dati, l'Application Operator (AO) deve aggiungere l'etichetta egress.networking.gke.io/enabled: true al carico di lavoro del pod per abilitare la connettività in uscita per quel pod. Quando allochi e utilizzi un indirizzo IP noto per il progetto, viene eseguita una Network Address Translation di origine (NAT) sul traffico in uscita dall'organizzazione.

Puoi gestire la connettività in uscita dai carichi di lavoro in un pod o una VM.

Gestire il traffico in uscita dai carichi di lavoro in un pod

Per configurare i carichi di lavoro in un pod per la connettività in uscita, devi prima assicurarti che la protezione dall'esfiltrazione dei dati sia disattivata per il progetto. Poi, assicurati che l'etichetta egress.networking.gke.io/enabled: true sia aggiunta al pod. Se utilizzi un costrutto di livello superiore come i costrutti Deployment o Daemonset per gestire insiemi di pod, devi configurare l'etichetta del pod in queste specifiche.

L'esempio seguente mostra come creare un Deployment dal relativo file manifest. Il file di esempio contiene il valore egress.networking.gke.io/enabled: true nel campo labels per abilitare esplicitamente il traffico in uscita dal progetto. Questa etichetta viene aggiunta a ogni pod nel deployment e consente ai carichi di lavoro nei pod di uscire dall'organizzazione.

kubectl --kubeconfig USER_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

Sostituisci quanto segue:

  • USER_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster utente in cui stai eseguendo il deployment dei carichi di lavoro dei container.

  • DEPLOYMENT_NAME: il file kubeconfig per il cluster utente in cui stai eseguendo il deployment dei carichi di lavoro dei container.

  • APP_NAME: il nome dell'applicazione da eseguire all'interno del deployment.

  • NUMBER_OF_REPLICAS: il numero di oggetti Pod replicati gestiti dal deployment.

  • CONTAINER_NAME: il nome del container.

  • CONTAINER_IMAGE: il nome dell'immagine container. Devi includere il percorso del registro container e la versione dell'immagine, ad esempio REGISTRY_PATH/hello-app:1.0.

Ad esempio:

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

Gestire il traffico in uscita dai carichi di lavoro in una VM

Per configurare i carichi di lavoro in una VM per la connettività in uscita, puoi utilizzare la console GDC per la configurazione della VM o creare una risorsa VirtualMachineExternalAccess. Per informazioni su come abilitare una VM con accesso esterno per il trasferimento dei dati, consulta la sezione Abilitare l'accesso esterno in Connettersi alle VM.