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).
- 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 (
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[].targetPortdo manifesto para o recursoService.
Criar um balanceador de carga externo
Crie ELBs usando três métodos diferentes no GDC:
- Use a CLI gdcloud para criar ELBs.
- Use a API do modelo de recurso do Kubernetes (KRM) de rede para criar ELBs.
É 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.