Esta página explica como criar uma sub-rede global no Google Distributed Cloud (GDC) air-gapped e usar essa sub-rede para um balanceador de carga externo (ELB).
As sub-redes globais permitem-lhe configurar sub-redes que podem usar operações de balanceamento de carga externo em várias zonas na sua organização do GDC. O balanceamento de carga oferece as vantagens de um desempenho, uma fiabilidade e uma disponibilidade melhorados das aplicações e dos serviços através da distribuição do tráfego de rede por vários servidores. Para mais informações sobre as sub-redes globais para o balanceamento de carga, consulte o artigo Acerca das sub-redes para o balanceamento de carga.
Esta página destina-se a programadores no grupo de operadores de aplicações que pretendem gerir o balanceamento de carga da respetiva organização. Para mais informações, consulte o artigo Públicos-alvo para a documentação do GDC air-gapped.
Antes de começar
Para criar uma sub-rede global e configurá-la para ELBs, tem de ter o seguinte:
- Ser proprietário do projeto para o qual está a configurar o balanceador de carga. Para mais informações, consulte o artigo Crie um projeto.
As funções de identidade e acesso necessárias:
- Peça ao administrador de IAM da organização para lhe conceder a função de administrador do balanceador de carga (
load-balancer-admin). - Peça ao administrador de IAM da organização para lhe conceder a função de administrador do balanceador de carga global (
global-load-balancer-admin). - Peça ao administrador de IAM da organização para lhe conceder a função de administrador da organização da sub-rede (
subnet-org-admin). - Peça ao administrador de IAM da organização para lhe conceder a função de administrador do projeto da sub-rede (
subnet-project-admin).
Para mais informações, consulte o artigo Descrições das funções predefinidas.
- Peça ao administrador de IAM da organização para lhe conceder a função de administrador do balanceador de carga (
Crie uma sub-rede global principal
A sub-rede global principal que cria nesta secção serve como o agrupamento de endereços IP a partir do qual os endereços IP do ELB são obtidos. A sub-rede tem de incluir a etiqueta ipam.gdc.goog/network-segment: data. Pode especificar a sub-rede principal através do campo spec.parentReference.name.
Tem duas opções para configurar o CIDR desta sub-rede principal:
- Crie uma sub-rede com uma configuração CIDR estática
- Crie uma sub-rede com uma configuração CIDR dinâmica
Para mais informações sobre a diferença entre as configurações CIDR estáticas e dinâmicas, consulte Configuração CIDR estática e dinâmica.
Crie uma sub-rede com uma configuração CIDR estática
Use uma configuração CIDR estática quando precisar de um controlo preciso sobre o seu espaço de endereços IP.
Esta sub-rede tem um tipo de Branch. Para mais informações sobre os tipos de sub-redes raiz, de ramificação,
e folha, consulte o artigo Hierarquia
de sub-redes.
Para criar uma sub-rede global principal com uma configuração CIDR estática, adicione o bloco CIDR escolhido ao campo spec.ipv4Request.cidr:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
cidr: STATIC_CIDR
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Substitua o seguinte:
GLOBAL_API_SERVER: o caminho kubeconfig do servidor da API de gestão global. Para mais informações, consulte o artigo Servidores da API globais e zonais. Se ainda não gerou um ficheiro kubeconfig para o servidor da API, consulte o artigo Inicie sessão para ver detalhes.ELB_PARENT_SUBNET_NAME: o nome escolhido para a sub-rede global principal do ELB.STATIC_CIDR: o bloco CIDR específico que quer atribuir a esta sub-rede principal, como10.0.10.0/27.PARENT_NAME: o nome da sub-rede principal existente a partir da qual esta nova sub-rede é criada.
Para configurar esta sub-rede para funcionar com ELBs, tem de criar uma sub-rede folha para o ELB.
Crie uma sub-rede com uma configuração CIDR dinâmica
A configuração CIDR dinâmica atribui automaticamente um bloco CIDR disponível de um tamanho especificado a partir da sub-rede principal. Isto simplifica a gestão de endereços IP, especialmente em ambientes maiores.
Esta sub-rede tem um tipo de Branch. Para mais informações sobre os tipos de sub-redes raiz, de ramificação,
e folha, consulte o artigo Hierarquia
de sub-redes.
Para criar uma sub-rede global principal com um CIDR dinâmico, configure o campo spec.ipv4Request.prefixLength com o comprimento do prefixo escolhido:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
piVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/network-segment: data
name: ELB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
prefixLength: PREFIX_LENGTH
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Substitua o seguinte:
ELB_PARENT_SUBNET_NAME: o nome escolhido para a sub-rede principal do ELB, comolb-global-lancer-elb-subnet.STATIC_CIDR: o bloco CIDR específico que quer usar, como10.0.10.0/27. Esta variável só se aplica à configuração CIDR estática.PARENT_NAME: o nome da sub-rede principal existente a partir da qual esta nova sub-rede é criada, comodefault-vpc-workload-cidr.PREFIX_LENGTH: o comprimento do prefixo escolhido para o CIDR atribuído dinamicamente, como27. Esta variável só se aplica à configuração CIDR dinâmica.
Para configurar esta sub-rede para funcionar com ELBs, tem de criar uma sub-rede folha para o ELB.
Crie uma sub-rede folha para o ELB
Depois de configurar a sub-rede global principal, tem de criar uma sub-rede folha para atribuir um único endereço IP ao serviço ELB global. Esta sub-rede folha tem de
ter um valor do campo type de Leaf e residir no mesmo espaço de nomes do projeto
que os recursos do balanceador de carga, como ForwardingRule,
BackendService e Backend.
Para criar a sub-rede folha e associá-la ao ELB, siga estes passos:
Crie uma sub-rede folha com um valor
prefixLengthde32, uma vez que se destina a atribuir um único endereço IP. O valorparentReferencerefere-se à sub-rede global principal criada anteriormente:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/network-segment: data name: ELB_IP_SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_REF namespace: platform type: Leaf EOFSubstitua o seguinte:
ELB_IP_SUBNET_NAME: o nome escolhido para a sub-rede folha, comolb-project-elb-ip.PROJECT_NAMESPACE: o espaço de nomes do Kubernetes correspondente ao seu projeto onde se encontram os objetos ELB, por exemplo,lb-project.PARENT_REF: o nome da sub-rede principal a partir da qual esta sub-rede folha obtém o respetivo endereço IP, como a sub-rede global principal que criou anteriormente.
Associe a sub-rede folha criada recentemente, que contém o endereço IP atribuído, ao recurso
ForwardingRuleExternaldo ELB. No recursoForwardingRuleExternal, atualize o campospec.cidrRef.namepara referenciar o nome da sub-rede folha que criou no passo anterior:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleExternal metadata: name: FRI_NAME namespace: PROJECT_NAMESPACE spec: ports: - port: PORT protocol: PROTOCOL backendServiceRef: name: BES_NAME cidrRef: name: LEAF_SUBNET_NAME EOFSubstitua o seguinte:
FRI_NAME: o nome escolhido para o objetoForwardingRuleExternal, comonginx-elb-static-fr.PORT: o número da porta na qual o ELB está à escuta de tráfego recebido, como80.PROTOCOL: o protocolo de rede que o ELB usa, comoTCPouUDP.BES_NAME: o nome doBackendServiceassociado a este recursoForwardingRuleExternal, comonginx-bes.LEAF_SUBNET_NAME: o nome da sub-rede folha que criou no passo anterior, comolb-project-elb-ip.