Gerenciar o tráfego de saída das cargas de trabalho

Nesta página, descrevemos as ações de conectividade de saída que você precisa realizar em uma máquina virtual (VM) ou um pod em um projeto para permitir que as cargas de trabalho saiam da organização. O procedimento mostra como adicionar um rótulo obrigatório aos implantes para ativar explicitamente o tráfego de saída e permitir que as cargas de trabalho se comuniquem fora da organização.

Por padrão, o Google Distributed Cloud (GDC) com isolamento físico impede que as cargas de trabalho em um projeto saiam da organização. As cargas de trabalho podem sair da organização se o administrador da plataforma (PA, na sigla em inglês) tiver desativado a proteção contra exfiltração de dados do projeto. Além de desativar a proteção contra exfiltração de dados, o operador de aplicativo (AO, na sigla em inglês) precisa adicionar o rótulo egress.networking.gke.io/enabled: true à carga de trabalho do pod para ativar a conectividade de saída desse pod. Quando você aloca e usa um endereço IP conhecido para o projeto, ele realiza uma conversão de endereços de rede de origem (NAT) no tráfego de saída da organização.

É possível gerenciar a conectividade de saída de cargas de trabalho em um pod ou uma VM.

Gerenciar o tráfego de saída de cargas de trabalho em um pod

Para configurar cargas de trabalho em um pod para conectividade de saída, primeiro é necessário garantir que a proteção contra exfiltração de dados esteja desativada para o projeto. Em seguida, verifique se o rótulo egress.networking.gke.io/enabled: true foi adicionado ao pod. Se você estiver usando um recurso de nível mais alto, como Deployment ou Daemonset, para gerenciar conjuntos de pods, configure o rótulo do pod nessas especificações.

O exemplo a seguir mostra como criar um Deployment usando o arquivo de manifesto dele. O arquivo de exemplo contém o valor egress.networking.gke.io/enabled: true no campo labels para ativar explicitamente o tráfego de saída do projeto. Esse rótulo é adicionado a cada pod na implantação e permite que as cargas de trabalho nos pods saiam da organização.

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

Substitua:

  • USER_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster de usuário em que você está implantando cargas de trabalho de contêiner.

  • DEPLOYMENT_NAME: o arquivo kubeconfig do cluster de usuário em que você está implantando cargas de trabalho de contêiner.

  • APP_NAME: o nome do aplicativo a ser executado na implantação.

  • NUMBER_OF_REPLICAS: o número de objetos Pod replicados que a implantação gerencia.

  • CONTAINER_NAME: o nome do contêiner.

  • CONTAINER_IMAGE: o nome da imagem do contêiner. Inclua o caminho do registro de contêiner e a versão da imagem, como REGISTRY_PATH/hello-app:1.0.

Exemplo:

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

Gerenciar o tráfego de saída de cargas de trabalho em uma VM

Para configurar cargas de trabalho em uma VM para conectividade de saída, use o console do GDC para configuração de VM ou crie um recurso VirtualMachineExternalAccess. Para informações sobre como ativar uma VM com acesso externo para transferência de dados, consulte Ativar acesso externo na seção Conectar-se a VMs.