Configurar balanceadores de carga externos

Os balanceadores de carga externos (ELB, na sigla em inglês) expõem serviços fora do projeto de um pool de endereços IP atribuídos ao projeto do pool maior de IP externo da instância.

Os endereços IP virtuais (VIPs) do ELB não entram em conflito entre organizações e são exclusivos em todas elas. Por isso, use os serviços do ELB apenas para serviços que os clientes fora do projeto precisam acessar.

As cargas de trabalho em execução no projeto podem acessar os serviços do ELB desde que você permita que elas saiam do projeto. Esse padrão de tráfego exige efetivamente o tráfego de saída do projeto antes de retornar ao serviço interno.

Antes de começar

Para configurar os serviços do ELB, você precisa do seguinte:

  • Ser proprietário do projeto em que você está configurando o balanceador de carga. Para mais informações, consulte Criar um projeto.
  • Uma política de entrada ProjectNetworkPolicy (PNP) personalizada para permitir o tráfego para esse serviço do ELB. Para mais informações, consulte Configurar o PNP para permitir o tráfego para o ELB.
  • Os papéis necessários de identidade e acesso:

    • Administrador da NetworkPolicy do projeto: tem acesso para gerenciar políticas de rede do projeto no namespace do projeto. Peça ao administrador do IAM da organização para conceder a você o papel de Administrador da NetworkPolicy do projeto (project-networkpolicy-admin).
    • Administrador do balanceador de carga: peça ao administrador do IAM da organização para conceder a você o papel de administrador do balanceador de carga (load-balancer-admin).

Configurar o PNP para permitir o tráfego para o ELB

Para que os serviços do ELB funcionem, é necessário configurar e aplicar sua própria política de entrada ProjectNetworkPolicy personalizada para permitir o tráfego para esse serviço do ELB. Especifique o endereço CIDR externo para permitir o tráfego para este ELB:

kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF
apiVersion: networking.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT
  name: allow-inbound-traffic-from-external
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - ipBlock:
        cidr: CIDR
    ports:
    - protocol: TCP
      port: PORT
EOF

Substitua:

  • MANAGEMENT_API_SERVER: o caminho kubeconfig do servidor da API Management. Se você ainda não gerou um arquivo kubeconfig para o servidor da API na zona de destino, consulte Fazer login para mais detalhes.
  • PROJECT: o nome do seu projeto do GDC.
  • CIDR: o CIDR externo de onde o ELB precisa ser acessado. Essa política é necessária porque o balanceador de carga externo usa o retorno direto do servidor (DSR, na sigla em inglês), que preserva o endereço IP externo de origem e ignora o balanceador de carga no caminho de retorno.
  • PORT: a porta de back-end nos pods atrás do balanceador de carga. Esse valor é encontrado no campo .spec.ports[].targetPort do manifesto para o recurso Service.

Criar um balanceador de carga externo

Crie ELBs usando três métodos diferentes no GDC:

É possível segmentar cargas de trabalho de pods ou VMs usando a API KRM e a CLI gdcloud. Só é possível segmentar cargas de trabalho no cluster em que o objeto Service é criado ao usar o serviço do Kubernetes diretamente no cluster do Kubernetes.