Configure sub-redes para a rede de cargas de trabalho

Existem sub-redes raiz globais atribuídas para cada zona isolada do Google Distributed Cloud (GDC) com a sub-rede da API pública de gestão de endereços IP (IPAM). As sub-redes raiz globais alojam o conjunto de endereços IP raiz (CIDR) que é dividido em cada zona para arrancar todos os clusters na organização do inquilino, 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 às sub-redes raiz como o conjunto de endereços IP de anycast.

Depois de criar uma organização, pode concluir as seguintes tarefas operacionais para as sub-redes no seu universo do GDC:

Crie sub-redes globais de intervalo raiz para a nova zona

Cada zona tem de ter sub-redes globais de intervalo de 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 for adicionada uma nova zona após a instalação inicial, tem de criar manualmente as sub-redes globais do intervalo de raiz para a nova zona.

Defina o intervalo CIDR para as sub-redes do intervalo raiz da rede da nova zona

Semelhante às orientações de instalação da organização para definir um intervalo CIDR, os intervalos CIDR não podem sobrepor-se entre si nem sobrepor-se à zone-infra-cidr e às sub-redes globais raiz existentes, que são sub-redes com a etiqueta ipam.gdc.goog/usage: network-root-range na respetiva especificação de recurso personalizado.

O zone-infra-cidr existe em cada zona e pode ser obtido no Questionário de Admissão de Clientes (CIQ) se o cliente o tiver definido.

  1. Para obter o zone-infra-cidr, execute o seguinte comando:

    kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get cidrclaim -n gpc-system zone-infra-cidr
    

    Tenha em atenção o intervalo CIDR.

  2. Tem de ter um espaço de nomes com um nome que corresponda ao nome que vai atribuir à sua organização. Confirme se este espaço de nomes existe:

    kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get namespace ORG_NAME
    
  3. Recupere as sub-redes globais raiz existentes:

    • Para o cluster de administrador raiz global, execute:

      kubectl –kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \
          -n ORG_NAME  -l ipam.gdc.goog/usage=network-root-range
      
    • Para o servidor da API de administrador da organização global, execute:

      kubectl –kubeconfig GLOBAL_ORG_API_SERVER_KUBECONFIG get subnet \
          -n platform -l ipam.gdc.goog/usage=network-root-range
      

      Tome nota de todos os intervalos CIDR da saída.

  4. Confirme que os novos intervalos CIDR planeados não se sobrepõem a nenhum dos intervalos CIDR anteriores.

Depois de confirmar que o novo intervalo CIDR é válido para a nova zona, confirme que o intervalo CIDR cumpre as 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 predefinido Organização global
zoneOrgAdminExternalCIDR 23 Segmento de rede de administrador Raiz global
zoneOrgDataExternalCIDR 23 Segmento de rede de dados Raiz global

Crie sub-redes no servidor da API de administrador global raiz

Para criar as sub-redes no servidor da API de administrador principal global, conclua os seguintes passos:

  1. Liste as zonas no seu universo e encontre o nome da nova zona:

    kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get zone -A
    
  2. Crie a sub-rede infra-vpc da gama 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
    EOF
    
  3. Crie o segmento de rede de dados da sub-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
    EOF
    
  4. Crie a sub-rede do segmento de rede do administrador 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
    

Crie sub-redes no servidor da API de administrador da organização global

Tem de criar a sub-rede da VPC predefinida no servidor da API do administrador da organização global no espaço de nomes platform depois de o servidor da API estar em execução.

Crie e aplique o seguinte Subnet recurso personalizado:

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

Aumente a escala das sub-redes

O recurso público Subnet não suporta o aumento da escala automaticamente. Para adicionar mais intervalos CIDR a uma VPC ou um segmento de rede gerido pelo cliente, tem de criar novas sub-redes e agrupá-las com determinadas etiquetas. Devido ao acesso necessário ao cluster de administrador principal, um cliente não pode aumentar as suas sub-redes de forma independente.

Regras de agrupamento de sub-redes

As sub-redes são agrupadas em diferentes categorias por etiquetas:

Categoria Etiqueta
VPC predefinido ipam.gdc.goog/vpc: default-vpc
VPC de infraestrutura ipam.gdc.goog/vpc: infra-vpc
Segmento de rede de administrador ipam.gdc.goog/network-segment: admin
Segmento de rede de dados ipam.gdc.goog/network-segment: data

Durante o arranque inicial, foram especificados quatro intervalos CIDR no Questionário de admissão da organização (OIQ). Essas quatro sub-redes globais foram criadas no servidor da API global durante a criação da organização do cliente. Essas sub-redes globais são o intervalo CIDR de nível raiz para cada categoria em todas as zonas de uma organização. Todas as sub-redes globais ao nível da raiz têm a etiqueta ipam.gdc.goog/usage: network-root-range.

Para cada zona, é criada uma sub-rede global secundária no servidor da API global, dividindo-a das sub-redes ao nível da raiz. Cada sub-rede global secundária aloja o intervalo CIDR para uma categoria na zona específica e tem a etiqueta ipam.gdc.goog/usage: zone-network-root-range. A sub-rede global secundária de uma zona é propagada automaticamente para a zona específica.

Exemplos de utilização típicos da melhoria

Para a atribuição mais eficiente de sub-redes adicionais para aumentar a escala das suas sub-redes existentes, considere os exemplos de utilização recomendados para cada categoria de sub-rede. Determine a categoria que quer aumentar antes de iniciar o processo de aumento.

VPC predefinido

As sub-redes na default-vpc são usadas principalmente para atribuir os CIDRs de pods e serviços para o cluster de serviços partilhados, o cluster de utilizadores 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 para a organização.

A falha na criação de um cluster de utilizadores é um cenário comum em que pode ser necessário aumentar a escala da sub-rede.

A criação de um cluster de utilizadores pode falhar devido à incapacidade de encontrar a sub-rede principal para o CIDR do pod ou do serviço do cluster de utilizadores. Uma mensagem de exemplo para esta falha é semelhante à seguinte:

could not find parent for subnet platform/user-vm-1-service-cidr

Este problema pode dever-se a vários motivos diretamente relacionados com a necessidade de aumentar a escala de uma sub-rede. Considere os seguintes passos para confirmar:

  1. Verifique os campos podCIDRSize e serviceCIDRSize na secção .spec.clusterNetwork do recurso personalizado Cluster:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get cluster \
        -n platform USER_CLUSTER_NAME -oyaml
    

    O resultado tem um aspeto semelhante ao seguinte:

    Example:
    spec:
      clusterNetwork:
        podCIDRSize: 20
        serviceCIDRSize: 20
    
  2. Encontre as sub-redes principais da sub-rede existente:

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet -n platform  -l \
        ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=zone-network-root-range
    

    O resultado tem um aspeto semelhante ao seguinte:

    Example:
    NAME                     PARENT   READY   IPV4 CIDR        IPV6 CIDR
    default-vpc-zone0-cidr            True    198.51.100.0/18 
    
  3. Encontre todas as sub-redes atribuídas 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-range
    

    O resultado tem um aspeto semelhante ao seguinte:

    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 atribuiu quatro CIDRs /23, um CIDR /20, dois CIDRs /21 e o novo cluster de utilizadores está a pedir um CIDR /20 para podCIDRSize e um CIDR /20 para serviceCIDRSize, o que é insuficiente.

Neste caso, tem de adicionar mais sub-redes para uma categoria para a VPC predefinida.

VPC de infraestrutura

As sub-redes na infra-vpc são usadas principalmente para atribuir os CIDRs de serviços e pods de uma organização para o cluster de infraestrutura da organização e o cluster de perímetro, bem como o endereço IP do nó para o cluster de perímetro.

Uma vez que isto pertence à configuração da infraestrutura GDC interna e cada organização tem apenas um cluster de infraestrutura da organização e um cluster de perímetro, normalmente, o infra-vpc não precisa de operações de expansão.

Segmento de rede de administrador

As sub-redes no segmento de rede de administração são usadas principalmente para atribuir endereços IP no encaminhamento e reencaminhamento virtuais (VRF) de administração da organização. Existe uma sub-rede de nó predefinida ou a sub-rede com informações de gateway criada na organização. Essa sub-rede predefinida atribui o endereço IP para 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.

Uma vez que o segmento de rede de administrador pertence à configuração da infraestrutura do GDC interno, e cada organização só pode ter um cluster de infraestrutura da organização e um cluster de perímetro, normalmente, esta sub-rede não precisa de ser aumentada.

Segmento de rede de dados

As sub-redes no segmento de rede de dados são usadas principalmente para atribuir endereços IP no VRF de dados da organização. Existe uma sub-rede de nós predefinida ou uma sub-rede com informações de gateway criada na organização. Essa sub-rede predefinida atribui os endereços IP para o endereço IP do nó do cluster de infraestrutura da organização e o endereço IP do nó do cluster de perímetro.

Uma vez que o segmento de rede de dados pertence à configuração da infraestrutura do GDC interno, e cada organização só pode ter um cluster de infraestrutura da organização e um cluster de perímetro, normalmente, esta sub-rede não precisa de ser aumentada.

Adicione mais sub-redes para uma categoria

Pode adicionar mais sub-redes para uma categoria com base no tipo de sub-rede. Os seguintes tipos são elegíveis para a adição de mais sub-redes:

  • VPC de infraestrutura
  • Segmento de rede de administrador
  • Segmento de rede de dados
  • VPC predefinido

Determine o tipo de sub-rede para o qual quer adicionar mais sub-redes e, em seguida, conclua os seguintes passos para esse tipo de sub-rede:

  1. No servidor da API de administrador raiz global, obtenha o tipo de sub-rede raiz e verifique o respetivo campo CIDR maskSize de subnet.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-range
    

    Substitua o seguinte:

    • GLOBAL_ROOT_ADMIN_KUBECONFIG: o caminho para o ficheiro kubeconfig do cluster de administrador raiz.
    • ORG_NAME: o nome da organização.
    • SUBNET_TYPE: o tipo de sub-rede, como vpc=infra-vpc, network-segment=admin, network-segment=data ou vpc=default-vpc.

    Tenha em atenção este valor como o CIDR total, que será referenciado mais tarde.

  2. Obtenha todas as sub-redes secundárias da sub-rede raiz e verifique cada campo CIDR maskSize de subnet.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-range
    

    Registe cada valor como o CIDR usado, que será referenciado mais tarde.

  3. 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 suficientemente grande para atribuir a nova sub-rede, adicione uma nova sub-rede global de intervalo de raiz de rede. Em seguida, avance para o passo seguinte.

  4. Crie a nova sub-rede no servidor da API de administrador principal 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
    EOF
    

    Substitua o seguinte:

    • GLOBAL_ROOT_ADMIN_KUBECONFIG: o caminho para o ficheiro kubeconfig do cluster de administrador raiz.
    • SUBNET_TYPE_LABEL: o tipo de sub-rede, que tem de ser um dos seguintes valores: vpc: infra-vpc, network-segment: admin, network-segment: data ou vpc: default-vpc.
    • SUBNET_NAME: o nome da nova sub-rede.
    • ORG_NAME: o nome da organização.
    • CIDR_PREFIX_LENGTH: o comprimento do prefixo da nova sub-rede, como 20.
    • ZONE_NAME: o nome da zona da sub-rede, como zone1.
    • PARENT_SUBNET_NAME: o nome da sub-rede principal, como infra-vpc-root-cidr, admin-external-root-cidr, data-external-root-cidr ou default-vpc-root-cidr.
  5. Verifique se a sub-rede está pronta, verificando se o respetivo tipo de estado Ready é true.

  6. Verifique se foi criada uma sub-rede global no servidor de API global da organização e se 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-range
    

    Substitua NAMESPACE pelo espaço de nomes da sub-rede. Use infra-network para a sub-rede infra-vpc e platform para os outros tipos de sub-redes.

  7. Verifique se a sub-rede zonal foi criada no espaço de nomes da organização do cluster de administrador raiz e se 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-range
    
  8. Verifique se a sub-rede zonal foi criada no servidor da API Management no espaço de nomes platform e se 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
    

A expansão da sub-rede para a sua organização na zona especificada está concluída. Os seus administradores podem criar mais sub-redes secundárias a partir da nova sub-rede.

Adicione um novo intervalo de raiz da rede, uma sub-rede global

As sub-redes globais com a etiqueta ipam.gdc.goog/usage: network-root-range alojam o CIDR para todas as zonas desta categoria. Se for usado, tem de criar uma nova sub-rede no servidor de API global.network-root-range Pode criar várias sub-redes globais raiz, se necessário.

Para criar uma nova network-root-range sub-rede, conclua os seguintes passos:

  1. Crie um ficheiro YAML, como subnet-network-root.yaml, para o novo intervalo raiz da rede sub-rede global:

    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: Root
    

    Substitua o seguinte:

    • SUBNET_TYPE: o tipo de sub-rede, que tem de ser um dos seguintes valores: vpc: infra-vpc, network-segment: admin, network-segment: data ou vpc: default-vpc.
    • API_SERVER_ANNOTATION: a anotação para identificar que esta sub-rede tem de mudar para outro servidor de API. Para infra-vpc ou os segmentos de rede de administrador e de dados, use ipam.gdc.goog/pivot-destination: global-org. Se estiver a adicionar um novo intervalo de raiz default-vpc, não defina esta anotação.
    • SUBNET_NAME: o nome da nova sub-rede.
    • ORG_NAME: o nome da organização.
    • NEW_CIDR: o novo CIDR para a sub-rede. Este CIDR não pode sobrepor-se a nenhum CIDR em todas as sub-redes existentes com a etiqueta ipam.gdc.goog/usage: network-root-range no mesmo servidor da API de administração global de raiz.