Há sub-redes raiz globais atribuídas a cada zona isolada do Google Distributed Cloud (GDC) com a sub-rede da API pública de gerenciamento de endereços IP (IPAM). As sub-redes raiz globais hospedam o pool de intervalos de endereços IP raiz (CIDR) dividido em cada zona para inicializar todos os clusters na organização do locatário, incluindo o cluster de infraestrutura da organização e as VMs de carga de trabalho. Uma pequena parte do intervalo de endereços IP também é disponibilizada para sub-redes raiz como o pool de endereços IP anycast.
Depois que uma organização é criada, é possível concluir as seguintes tarefas operacionais para as sub-redes no seu universo do GDC:
- Crie as sub-redes necessárias para uma nova zona.
- Crie outras sub-redes para uma zona atual.
- Crie outras sub-redes de nós para a organização.
Criar sub-redes globais de intervalo raiz para a nova zona
Cada zona precisa ter sub-redes globais de intervalo raiz. Durante a fase de inicialização da organização do universo do GDC, cada zona tem as sub-redes globais geradas automaticamente. No entanto, se uma nova zona for adicionada após a instalação inicial, será necessário criar manualmente as sub-redes globais de intervalo raiz para a nova zona.
Definir o intervalo CIDR para as sub-redes do intervalo raiz da rede da nova zona
Assim como as orientações de instalação da organização para definir um intervalo CIDR, os intervalos CIDR não podem se sobrepor entre si nem com zone-infra-cidr e as sub-redes globais raiz atuais, que são sub-redes com o rótulo ipam.gdc.goog/usage: network-root-range na especificação de recursos personalizados.
O zone-infra-cidr existe em cada zona e pode ser recuperado do Questionário de admissão de clientes (CIQ, na sigla em inglês) se o cliente o tiver definido.
Para recuperar o
zone-infra-cidr, execute:kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system zone-infra-cidrAnote o intervalo de CIDR.
Você precisa ter um namespace com um nome que corresponda ao nome que será atribuído à sua organização. Confirme se este namespace existe:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get namespace ORG_NAMERecupere as sub-redes globais raiz atuais:
Para o cluster de administrador global da raiz, execute:
kubectl –kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \ -n ORG_NAME -l ipam.gdc.goog/usage=network-root-rangePara o servidor da API de administrador global da organização, execute:
kubectl –kubeconfig GLOBAL_ORG_API_SERVER_KUBECONFIG get subnet \ -n platform -l ipam.gdc.goog/usage=network-root-rangeAnote todos os intervalos de CIDR da saída.
Confirme se os novos intervalos CIDR planejados não se sobrepõem a nenhum dos intervalos anteriores.
Depois de confirmar que o novo intervalo de CIDR é válido para a nova zona, verifique se ele obedece às seguintes regras:
| Campo de intervalo CIDR. | Tamanho mínimo | VPC/VRF | Servidor de API global |
|---|---|---|---|
zoneInfraVPCCIDR |
17 | VPC de infraestrutura | Raiz global |
zoneDefaultVPCCIDR |
18 | VPC padrão | Organização global |
zoneOrgAdminExternalCIDR |
23 | Segmento de rede do administrador | Raiz global |
zoneOrgDataExternalCIDR |
23 | Segmento de rede de dados | Raiz global |
Criar sub-redes no servidor da API de administrador raiz global
Para criar as sub-redes no servidor de API de administrador raiz global, siga estas etapas:
Liste as zonas no seu universo e encontre o novo nome da zona:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get zone -ACrie a sub-rede
infra-vpcdo intervalo raiz da rede da zona para a nova zona da organização:kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/vpc: infra-vpc ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: infra-vpc-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneInfraVPCCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOFCrie a sub-rede do segmento de dados da rede do intervalo raiz da rede da zona para a nova zona da organização:
kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: data-external-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneOrgDataExternalCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOFCrie a sub-rede do segmento de rede de administração do intervalo raiz da rede da zona para a nova zona da organização:
kubectl apply -f --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: admin ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: admin-external-NEW_ZONE_NAME-root-cidr namespace: ORG_NAME spec: ipv4Request: cidr: zoneOrgAdminExternalCIDR zone: NEW_ZONE_NAME propagationStrategy: SingleZone type: Root EOF
Criar sub-redes no servidor da API de administrador global da organização
Você precisa criar a sub-rede VPC padrão no servidor de API do administrador global da organização
no namespace platform depois que o servidor de API estiver em execução.
Crie e aplique o seguinte recurso personalizado Subnet:
kubectl apply -f --kubeconfig=GLOBAL_ORG_API_SERVER_KUBECONFIG - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/vpc: default-vpc
ipam.gdc.goog/usage: zone-network-root-range
name: default-vpc-NEW_ZONE_NAME-root-cidr
namespace: platform
spec:
type: Root
ipv4Request:
cidr: zoneDefaultVPCCIDR
zone: NEW_ZONE_NAME
propagationStrategy: SingleZone
EOF
Fazer upgrade de sub-redes
O recurso público Subnet não é compatível com o aumento automático de escala. Para adicionar
mais intervalos CIDR a uma VPC ou segmento de rede gerenciado pelo cliente, você
precisa criar novas sub-redes e agrupá-las com determinados rótulos. Devido ao acesso necessário ao cluster de administrador raiz, um cliente não pode fazer upgrade das sub-redes de forma independente.
Regras de agrupamento de sub-redes
As sub-redes são agrupadas em diferentes categorias por rótulos:
| Categoria | Rótulo |
|---|---|
| VPC padrão | ipam.gdc.goog/vpc: default-vpc |
| VPC de infraestrutura | ipam.gdc.goog/vpc: infra-vpc |
| Segmento de rede do administrador | ipam.gdc.goog/network-segment: admin |
| Segmento de rede de dados | ipam.gdc.goog/network-segment: data |
Durante o bootstrap inicial, quatro intervalos CIDR foram especificados no
Questionário de coleta de informações da organização (OIQ, na sigla em inglês). Essas quatro sub-redes globais foram criadas
no servidor de API global durante a
criação da organização do cliente.
Essas sub-redes globais são o intervalo de CIDR de nível raiz para cada categoria em todas as zonas de uma organização. Todas as sub-redes globais de nível raiz têm o rótulo
ipam.gdc.goog/usage: network-root-range.
Para cada zona, uma sub-rede global filha é criada no servidor de API global ao
extraí-la das sub-redes de nível raiz. Cada sub-rede global filha hospeda o intervalo
CIDR de uma categoria na zona específica e tem o rótulo
ipam.gdc.goog/usage: zone-network-root-range. A sub-rede global filha de uma zona é propagada automaticamente para a zona específica.
Casos de uso típicos de ampliação
Para uma alocação mais eficiente de sub-redes adicionais para escalonar suas sub-redes atuais, considere os casos de uso recomendados para cada categoria de sub-rede. Determine a categoria que você quer fazer o upscaling antes de iniciar o processo.
VPC padrão
As sub-redes em default-vpc são usadas principalmente para alocar os CIDRs de pod e serviço para o cluster de serviço compartilhado, o cluster de usuário e o default-vpc-default-node-subnet para o endereço IP do nó do cluster e o endereço IP da carga de trabalho da organização.
A falha na criação de um cluster de usuário é um cenário comum em que o escalonamento vertical da sub-rede pode ser necessário.
A criação de um cluster de usuário pode falhar devido à incapacidade de encontrar a sub-rede principal para o CIDR do pod ou do serviço do cluster de usuário. Uma mensagem de exemplo para essa falha é semelhante a esta:
could not find parent for subnet platform/user-vm-1-service-cidr
Esse problema pode ser causado por vários motivos diretamente relacionados à necessidade de aumentar a escala de uma sub-rede. Siga estas etapas para confirmar:
Verifique os campos
podCIDRSizeeserviceCIDRSizena seção.spec.clusterNetworkdo recurso personalizadoCluster:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get cluster \ -n platform USER_CLUSTER_NAME -oyamlA saída será assim:
Example: spec: clusterNetwork: podCIDRSize: 20 serviceCIDRSize: 20Encontre as sub-redes principais da sub-rede atual:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n platform -l \ ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=zone-network-root-rangeA saída será assim:
Example: NAME PARENT READY IPV4 CIDR IPV6 CIDR default-vpc-zone0-cidr True 198.51.100.0/18Encontre todas as sub-redes alocadas pelas sub-redes principais:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n platform -l \ ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage!=zone-network-root-rangeA saída será assim:
Example: default-vpc-default-node-subnet {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.100.0/23 g-org-1-shared-service-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.16.0/20 g-org-1-shared-service-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.2.0/23 user-vm-1-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.8.0/21 user-vm-1-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.4.0/23 user-vm-2-pod-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.32.0/21 user-vm-2-service-cidr {"name":"default-vpc-zone0-cidr","namespace":"platform"} True 198.51.6.0/23
Neste exemplo, um CIDR principal /18 alocou quatro CIDRs /23, um CIDR /20, dois CIDRs /21, e o novo cluster de usuário está solicitando um CIDR /20 para podCIDRSize e um CIDR /20 para serviceCIDRSize, o que é insuficiente.
Nesse caso, é necessário adicionar mais sub-redes para uma categoria da VPC padrão.
VPC de infraestrutura
As sub-redes em infra-vpc são usadas principalmente para alocar os CIDRs de pod e serviço de uma organização para o cluster de infraestrutura e o cluster de perímetro, bem como o endereço IP do nó para o cluster de perímetro.
Como isso pertence à configuração interna da infraestrutura do GDC, e cada organização tem apenas um cluster de infraestrutura e um cluster de perímetro, normalmente o infra-vpc não precisa de operações de escalonamento vertical.
Segmento de rede do administrador
As sub-redes no segmento de rede de administrador são usadas principalmente para alocar endereços IP no roteamento e encaminhamento virtual (VRF) do administrador da organização. Há uma sub-rede de nó padrão ou a sub-rede com informações de gateway criada na organização. Essa sub-rede padrão aloca o endereço IP do nó do cluster da infraestrutura da organização e o endereço IP do nó do cluster do perímetro.
Como o segmento de rede do administrador pertence à configuração interna da infraestrutura do GDC, e cada organização só pode ter um cluster de infraestrutura e um cluster de perímetro, normalmente essa sub-rede não precisa de escalonamento vertical.
Segmento de rede de dados
As sub-redes no segmento de rede de dados são usadas principalmente para alocar endereços IP no VRF de dados da organização. Há uma sub-rede de nós padrão ou uma sub-rede com informações de gateway criada na organização. Essa sub-rede padrão aloca os endereços IP do nó do cluster de infraestrutura da organização e do nó do cluster de perímetro.
Como o segmento de rede de dados pertence à configuração interna da infraestrutura do GDC, e cada organização só pode ter um cluster de infraestrutura da organização e um cluster de perímetro, normalmente essa sub-rede não precisa de escalonamento vertical.
Adicionar mais sub-redes a uma categoria
É possível adicionar mais sub-redes a uma categoria com base no tipo de sub-rede. Os seguintes tipos podem adicionar mais sub-redes:
- VPC de infraestrutura
- Segmento de rede do administrador
- Segmento de rede de dados
- VPC padrão
Determine o tipo de sub-rede para o qual você quer adicionar mais sub-redes e siga as etapas abaixo:
No servidor da API de administrador raiz global, extraia o tipo de sub-rede raiz e verifique o campo CIDR
maskSizedesubnet.status.ipv4Allocation.cidr:kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=network-root-rangeSubstitua:
GLOBAL_ROOT_ADMIN_KUBECONFIG: o caminho para o arquivo kubeconfig do cluster de administrador raiz.ORG_NAME: o nome da organização.SUBNET_TYPE: o tipo de sub-rede, comovpc=infra-vpc,network-segment=admin,network-segment=dataouvpc=default-vpc.
Anote esse valor como o CIDR total, que será referenciado mais tarde.
Receba todas as sub-redes filhas da sub-rede raiz e verifique cada campo CIDR
maskSizedesubnet.status.ipv4Allocation.cidr:kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage!=network-root-rangeAnote cada valor como o CIDR usado, que será referenciado mais tarde.
Calcule o CIDR disponível da sub-rede com base no CIDR total e no CIDR usado. Se o CIDR disponível não for grande o suficiente para alocar a nova sub-rede, adicione uma nova sub-rede global de intervalo raiz de rede. Em seguida, siga para a próxima etapa.
Crie a nova sub-rede no servidor de API do administrador raiz global:
kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/SUBNET_TYPE_LABEL ipam.gdc.goog/usage: zone-network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: SUBNET_NAME namespace: ORG_NAME spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH zone: ZONE_NAME propagationStrategy: SingleZone type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOFSubstitua:
GLOBAL_ROOT_ADMIN_KUBECONFIG: o caminho para o arquivo kubeconfig do cluster de administrador raiz.SUBNET_TYPE_LABEL: o tipo de sub-rede, que precisa ser um destes valores:vpc: infra-vpc,network-segment: admin,network-segment: dataouvpc: default-vpc.SUBNET_NAME: o nome da nova sub-rede;ORG_NAME: o nome da organização.CIDR_PREFIX_LENGTH: o tamanho do prefixo da nova sub-rede, como20.ZONE_NAME: o nome da zona da sub-rede, comozone1.PARENT_SUBNET_NAME: o nome da sub-rede principal, comoinfra-vpc-root-cidr,admin-external-root-cidr,data-external-root-cidroudefault-vpc-root-cidr.
Verifique se a sub-rede está pronta conferindo se o tipo de status
Readyétrue.Verifique se uma sub-rede global foi criada no servidor de API global da organização e se ela está pronta:
kubectl --kubeconfig GLOBAL_ORG_ADMIN_KUBECONFIG get subnet -n NAMESPACE -l \ ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-rangeSubstitua NAMESPACE pelo namespace da sub-rede. Use
infra-networkpara a sub-redeinfra-vpceplatformpara os outros tipos de sub-rede.Verifique se a sub-rede zonal foi criada no namespace da organização do cluster de administrador raiz e se ela está pronta:
kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get subnet -n ORG_NAME \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-rangeVerifique se a sub-rede zonal foi criada no servidor da API Management no namespace
platforme se ela está pronta:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n NAMESPACE \ -l ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-range
O aumento da sub-rede da sua organização na zona especificada foi concluído. Seus administradores podem criar mais sub-redes filhas com base na nova sub-rede.
Adicionar nova sub-rede global de intervalo raiz de rede
As sub-redes globais com o rótulo ipam.gdc.goog/usage: network-root-range hospedam o CIDR de todas as zonas dessa categoria. Se ele estiver esgotado, crie uma nova sub-rede network-root-range no servidor de API global. É possível criar várias sub-redes globais raiz, se necessário.
Para criar uma sub-rede network-root-range, siga estas etapas:
Crie um arquivo YAML, como
subnet-network-root.yaml, para sua nova sub-rede global de intervalo raiz da rede:apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/SUBNET_TYPE ipam.gdc.goog/usage: network-root-range annotations: ipam.gdc.goog/pivot-destination: global-org name: SUBNET_NAME namespace: ORG_NAME spec: ipv4Request: cidr: NEW_CIDR type: RootSubstitua:
SUBNET_TYPE: o tipo de sub-rede, que precisa ser um dos seguintes valores:vpc: infra-vpc,network-segment: admin,network-segment: dataouvpc: default-vpc.API_SERVER_ANNOTATION: a anotação para identificar que essa sub-rede precisa fazer a rotação para outro servidor de API. Parainfra-vpcou os segmentos de trabalho de administrador e datanet, useipam.gdc.goog/pivot-destination: global-org. Se você estiver adicionando um novo intervalo raizdefault-vpc, não defina essa anotação.SUBNET_NAME: o nome da nova sub-rede;ORG_NAME: o nome da organização.NEW_CIDR: o novo CIDR da sub-rede. Esse CIDR não pode se sobrepor a nenhum CIDR em todas as sub-redes atuais com o rótuloipam.gdc.goog/usage: network-root-rangeno mesmo servidor da API de administrador global da raiz.