Mengonfigurasi subnet untuk jaringan workload

Ada subnet root global yang ditetapkan untuk setiap zona air-gapped Google Distributed Cloud (GDC) dengan subnet IP address management (IPAM) public API. Subnet root global menghosting kumpulan rentang alamat IP root (CIDR) yang dibagi ke setiap zona untuk mem-bootstrap semua cluster dalam organisasi tenant, termasuk cluster infrastruktur org dan VM workload. Sebagian kecil rentang alamat IP juga disediakan untuk subnet root sebagai kumpulan alamat IP anycast.

Setelah organisasi dibuat, Anda dapat menyelesaikan tugas operasional berikut untuk subnet di semesta GDC Anda:

Membuat subnet global rentang root untuk zona baru

Setiap zona harus memiliki subnet global rentang root. Selama fase bootstrap organisasi awal di semesta GDC, setiap zona memiliki subnet global yang dibuat secara otomatis. Namun, jika zona baru ditambahkan setelah penginstalan awal, Anda harus membuat subnet global rentang root secara manual untuk zona baru.

Tentukan rentang CIDR untuk subnet rentang root jaringan zona baru

Mirip dengan panduan penginstalan organisasi untuk menentukan rentang CIDR, rentang CIDR tidak boleh tumpang-tindih satu sama lain, dan tidak boleh tumpang-tindih dengan zone-infra-cidr dan subnet global root yang ada, yaitu subnet dengan label ipam.gdc.goog/usage: network-root-range dalam spesifikasi resource kustomnya.

zone-infra-cidr ada di setiap zona dan dapat diambil dari Customer Intake Questionnaire (CIQ) jika pelanggan mendefinisikannya.

  1. Untuk mengambil zone-infra-cidr, jalankan:

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

    Catat rentang CIDR.

  2. Anda harus memiliki namespace dengan nama yang cocok dengan nama yang akan Anda tetapkan ke organisasi Anda. Konfirmasi bahwa namespace ini ada:

    kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get namespace ORG_NAME
    
  3. Ambil subnet global root yang ada:

    • Untuk cluster admin root global, jalankan:

      kubectl –kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get subnet \
          -n ORG_NAME  -l ipam.gdc.goog/usage=network-root-range
      
    • Untuk server API admin organisasi global, jalankan:

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

      Catat semua rentang CIDR dari output.

  4. Konfirmasi bahwa rentang CIDR baru yang direncanakan tidak tumpang-tindih dengan rentang CIDR sebelumnya.

Setelah Anda mengonfirmasi bahwa rentang CIDR baru Anda valid untuk zona baru, konfirmasi bahwa rentang CIDR Anda mematuhi aturan berikut:

Kolom rentang CIDR. Ukuran minimum VPC/VRF Server API global
zoneInfraVPCCIDR 17 VPC Infrastruktur Root global
zoneDefaultVPCCIDR 18 VPC Default Organisasi global
zoneOrgAdminExternalCIDR 23 Segmen jaringan admin Root global
zoneOrgDataExternalCIDR 23 Segmen jaringan data Root global

Membuat subnet di server API admin root global

Untuk membuat subnet di server API admin root global, selesaikan langkah-langkah berikut:

  1. Cantumkan zona di semesta Anda, dan temukan nama zona baru:

    kubectl --kubeconfig GLOBAL_ROOT_ADMIN_KUBECONFIG get zone -A
    
  2. Buat subnet infra-vpc rentang root jaringan zona untuk zona baru organisasi:

    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. Buat subnet segmen jaringan data rentang root jaringan zona untuk zona baru organisasi:

    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. Buat subnet segmen jaringan admin rentang root jaringan zona untuk zona baru organisasi:

    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
    

Membuat subnet di server API admin org global

Anda harus membuat subnet VPC default di server API admin org global organisasi dalam namespace platform setelah server API berjalan.

Buat dan terapkan Subnet resource kustom berikut:

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

Subnet yang ditingkatkan skalanya

Resource Subnet publik tidak mendukung peningkatan kualitas secara otomatis. Untuk menambahkan rentang CIDR lainnya ke VPC atau segmen jaringan yang dikelola pelanggan, Anda harus membuat subnet baru dan mengelompokkannya dengan label tertentu. Karena akses yang diperlukan ke cluster admin root, pelanggan tidak dapat meningkatkan skala subnet secara independen.

Aturan pengelompokan subnet

Subnet dikelompokkan ke dalam berbagai kategori menurut label:

Kategori Label
VPC Default ipam.gdc.goog/vpc: default-vpc
VPC Infrastruktur ipam.gdc.goog/vpc: infra-vpc
Segmen jaringan admin ipam.gdc.goog/network-segment: admin
Segmen jaringan data ipam.gdc.goog/network-segment: data

Selama bootstrap awal, empat rentang CIDR ditentukan dalam Kuesioner Penerimaan Organisasi (OIQ). Empat subnet global tersebut dibuat di server API global selama pembuatan organisasi pelanggan. Subnet global tersebut adalah rentang CIDR tingkat root untuk setiap kategori di semua zona dalam organisasi. Semua subnet global tingkat root memiliki label ipam.gdc.goog/usage: network-root-range.

Untuk setiap zona, subnet global turunan dibuat di server API global dengan membaginya dari subnet tingkat root. Setiap subnet global turunan menghosting rentang CIDR untuk kategori di zona tertentu, dan memiliki label ipam.gdc.goog/usage: zone-network-root-range. Subnet global turunan untuk zona secara otomatis dipropagasi ke zona tertentu.

Kasus penggunaan umum peningkatan kualitas

Untuk alokasi subnet tambahan yang paling efisien untuk meningkatkan skala subnet yang ada, pertimbangkan kasus penggunaan yang direkomendasikan untuk setiap kategori subnet. Tentukan kategori yang ingin Anda tingkatkan kualitasnya sebelum memulai proses peningkatan kualitas.

VPC Default

Subnet di default-vpc terutama digunakan untuk mengalokasikan CIDR pod dan layanan untuk cluster layanan bersama, cluster pengguna, dan default-vpc-default-node-subnet untuk alamat IP node cluster dan alamat IP workload untuk organisasi.

Kegagalan membuat cluster pengguna adalah skenario umum yang mungkin memerlukan peningkatan skala subnet.

Pembuatan cluster pengguna dapat gagal karena tidak dapat menemukan subnet induk untuk CIDR pod atau layanan cluster pengguna. Contoh pesan untuk kegagalan ini mirip dengan berikut ini:

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

Masalah ini dapat disebabkan oleh beberapa alasan yang terkait langsung dengan kebutuhan untuk meng-upgrade subnet. Pertimbangkan langkah-langkah berikut untuk mengonfirmasi:

  1. Periksa kolom podCIDRSize dan serviceCIDRSize di bagian .spec.clusterNetwork dari resource kustom Cluster:

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

    Outputnya terlihat mirip dengan yang berikut ini:

    Example:
    spec:
      clusterNetwork:
        podCIDRSize: 20
        serviceCIDRSize: 20
    
  2. Temukan subnet induk dari subnet yang ada:

    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
    

    Outputnya terlihat mirip dengan yang berikut ini:

    Example:
    NAME                     PARENT   READY   IPV4 CIDR        IPV6 CIDR
    default-vpc-zone0-cidr            True    198.51.100.0/18 
    
  3. Temukan semua subnet yang dialokasikan oleh subnet induk:

    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
    

    Outputnya terlihat mirip dengan yang berikut ini:

    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
    

Dalam contoh ini, CIDR induk /18 mengalokasikan empat CIDR /23, satu CIDR /20, dua CIDR /21, dan cluster pengguna baru meminta CIDR /20 untuk podCIDRSize dan CIDR /20 untuk serviceCIDRSize, yang tidak mencukupi.

Untuk kasus ini, Anda harus menambahkan lebih banyak subnet untuk kategori VPC default.

VPC Infrastruktur

Subnet di infra-vpc terutama digunakan untuk mengalokasikan CIDR pod dan layanan organisasi untuk cluster infrastruktur org dan cluster perimeter, serta alamat IP node untuk cluster perimeter.

Karena ini termasuk dalam penyiapan infrastruktur GDC internal, dan setiap organisasi hanya memiliki satu cluster infrastruktur org dan satu cluster perimeter, biasanya infra-vpc tidak memerlukan operasi peningkatan skala.

Segmen jaringan admin

Subnet di segmen jaringan admin terutama digunakan untuk mengalokasikan alamat IP di VRF admin org. Ada subnet node default, atau subnet dengan informasi gateway, yang dibuat di organisasi. Subnet default tersebut mengalokasikan alamat IP untuk alamat IP node cluster infrastruktur organisasi dan alamat IP node cluster perimeter.

Karena segmen jaringan admin termasuk dalam penyiapan infrastruktur GDC internal, dan setiap organisasi hanya dapat memiliki satu cluster infrastruktur org dan satu cluster perimeter, biasanya subnet ini tidak memerlukan penskalaan.

Segmen jaringan data

Subnet di segmen jaringan data terutama digunakan untuk mengalokasikan alamat IP di VRF data org. Ada subnet node default, atau subnet dengan informasi gateway, yang dibuat di organisasi. Subnet default tersebut mengalokasikan alamat IP untuk alamat IP node cluster infrastruktur org dan alamat IP node cluster perimeter.

Karena segmen jaringan data termasuk dalam penyiapan infrastruktur GDC internal, dan setiap organisasi hanya dapat memiliki satu cluster infrastruktur org dan satu cluster perimeter, biasanya subnet ini tidak memerlukan peningkatan skala.

Menambahkan lebih banyak subnet untuk kategori

Anda dapat menambahkan lebih banyak subnet untuk kategori berdasarkan jenis subnet. Jenis berikut memenuhi syarat untuk menambahkan lebih banyak subnet:

  • VPC Infrastruktur
  • Segmen jaringan admin
  • Segmen jaringan data
  • VPC Default

Tentukan jenis subnet yang ingin Anda tambahkan lebih banyak subnetnya, lalu selesaikan langkah-langkah berikut untuk jenis subnet tersebut:

  1. Di server API admin root global, dapatkan jenis subnet root dan periksa kolom CIDR maskSize dari 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
    

    Ganti kode berikut:

    • GLOBAL_ROOT_ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin root.
    • ORG_NAME: nama organisasi.
    • SUBNET_TYPE: jenis subnet, seperti vpc=infra-vpc, network-segment=admin, network-segment=data, atau vpc=default-vpc.

    Catat nilai ini sebagai total CIDR, yang akan dirujuk nanti.

  2. Dapatkan semua subnet turunan dari subnet root dan periksa setiap kolom maskSize CIDR dari 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
    

    Catat setiap nilai sebagai CIDR yang digunakan, yang akan dirujuk nanti.

  3. Hitung CIDR yang tersedia dari subnet berdasarkan CIDR total dan CIDR yang digunakan. Jika CIDR yang tersedia tidak cukup besar untuk mengalokasikan subnet baru, tambahkan subnet global rentang root jaringan baru. Kemudian, lanjutkan ke langkah berikutnya.

  4. Buat subnet baru di server API admin root 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
    

    Ganti kode berikut:

    • GLOBAL_ROOT_ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin root.
    • SUBNET_TYPE_LABEL: jenis subnet, yang harus berupa salah satu nilai berikut: vpc: infra-vpc, network-segment: admin, network-segment: data, atau vpc: default-vpc.
    • SUBNET_NAME: nama subnet baru.
    • ORG_NAME: nama organisasi.
    • CIDR_PREFIX_LENGTH: panjang awalan subnet baru, seperti 20.
    • ZONE_NAME: nama zona untuk subnet, seperti zone1.
    • PARENT_SUBNET_NAME: nama subnet induk, seperti infra-vpc-root-cidr, admin-external-root-cidr, data-external-root-cidr, atau default-vpc-root-cidr.
  5. Verifikasi bahwa subnet sudah siap dengan memeriksa bahwa jenis status Ready-nya adalah true.

  6. Pastikan subnet global dibuat di server API global organisasi, dan sudah siap:

    kubectl --kubeconfig GLOBAL_ORG_ADMIN_KUBECONFIG get subnet -n NAMESPACE -l \
        ipam.gdc.goog/SUBNET_TYPE,ipam.gdc.goog/usage=zone-network-root-range
    

    Ganti NAMESPACE dengan namespace untuk subnet. Gunakan infra-network untuk subnet infra-vpc, dan platform untuk jenis subnet lainnya.

  7. Verifikasi bahwa subnet zonal dibuat di namespace organisasi cluster admin root dan sudah siap:

    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. Verifikasi bahwa subnet zonal dibuat di server Management API dalam namespace platform, dan sudah siap:

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

Peningkatan skala subnet untuk organisasi Anda di zona yang Anda tentukan telah selesai. Administrator Anda dapat membuat lebih banyak subnet turunan dari subnet baru.

Menambahkan subnet global rentang root jaringan baru

Subnet global dengan label ipam.gdc.goog/usage: network-root-range menghosting CIDR untuk semua zona dalam kategori ini. Jika sudah habis, Anda harus membuat subnet network-root-range baru di server API global. Anda dapat membuat beberapa subnet global root, jika diperlukan.

Untuk membuat subnet network-root-range baru, selesaikan langkah-langkah berikut:

  1. Buat file YAML, seperti subnet-network-root.yaml, untuk subnet global rentang root jaringan baru Anda:

    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
    

    Ganti kode berikut:

    • SUBNET_TYPE: jenis subnet, yang harus berupa salah satu nilai berikut: vpc: infra-vpc, network-segment: admin, network-segment: data, atau vpc: default-vpc.
    • API_SERVER_ANNOTATION: anotasi untuk mengidentifikasi bahwa subnet ini harus melakukan pivot ke server API lain. Untuk infra-vpc atau segmen kerja admin dan datanet, gunakan ipam.gdc.goog/pivot-destination: global-org. Jika Anda menambahkan rentang root default-vpc baru, jangan tetapkan anotasi ini.
    • SUBNET_NAME: nama subnet baru.
    • ORG_NAME: nama organisasi.
    • NEW_CIDR: CIDR baru untuk subnet. CIDR ini tidak boleh tumpang-tindih dengan CIDR mana pun di semua subnet yang ada dengan label ipam.gdc.goog/usage: network-root-range di server API admin root global yang sama.