Fitur jaringan Distributed Cloud

Halaman ini menjelaskan fitur jaringan Google Distributed Cloud, termasuk subnetwork, sesi peering BGP, dan load balancing.

Prosedur di halaman ini hanya berlaku untuk Distributed Cloud Racks, kecuali load balancing, yang berlaku untuk Distributed Cloud Racks dan Server jaringan Distributed Cloud.

Aktifkan Distributed Cloud Edge Network API

Sebelum dapat mengonfigurasi jaringan Distributed Cloud, Anda harus mengaktifkan Distributed Cloud Edge Network API. Untuk melakukannya, selesaikan langkah-langkah di bagian ini. Secara default, Distributed Cloud Servers dikirimkan dengan Distributed Cloud Edge Network API yang sudah diaktifkan.

Konsol

  1. Di konsol Google Cloud , buka halaman Distributed Cloud Edge Network API.

    Mengaktifkan API

  2. Klik Enable.

gcloud

Gunakan perintah berikut:

gcloud services enable edgenetwork.googleapis.com

Mengonfigurasi jaringan Distributed Cloud

Bagian ini menjelaskan cara mengonfigurasi komponen jaringan Distributed Cloud.

Batasan berikut berlaku untuk Distributed Cloud Servers:

  • Anda hanya dapat mengonfigurasi subnetwork, dan
  • Subnetwork hanya mendukung ID VLAN; subnetwork berbasis CIDR tidak didukung.

Konfigurasi jaringan umum untuk Distributed Cloud terdiri dari langkah-langkah berikut:

  1. Opsional: Lakukan inisialisasi konfigurasi jaringan zona target, jika perlu.

  2. Membuat jaringan.

  3. Buat satu atau beberapa subnetwork dalam jaringan.

  4. Buat sesi peering BGP northbound dengan router PE menggunakan lampiran Interconnect yang sesuai.

  5. Buat sesi peering BGP southbound dengan Pod yang menjalankan beban kerja Anda menggunakan subnetwork yang sesuai.

  6. Opsional: Buat sesi peering BGP loopback untuk ketersediaan tinggi.

  7. Uji konfigurasi Anda.

  8. Hubungkan Pod ke jaringan.

Opsional: Lakukan inisialisasi konfigurasi jaringan zona Distributed Cloud

Anda harus menginisialisasi konfigurasi jaringan zona Distributed Cloud dalam kasus berikut:

  • Segera setelah hardware Distributed Cloud Anda diinstal di lokasi Anda.
  • Anda mengupgrade ke Distributed Cloud versi 1.3.0 atau yang lebih baru pada deployment Distributed Cloud yang ada, tetapi tidak berpartisipasi dalam pratinjau pribadi Distributed Cloud Edge Network API.

Menginisialisasi konfigurasi jaringan zona akan membuat router default bernama default dan jaringan default bernama default. Selain itu, router default dikonfigurasi untuk melakukan peering dengan semua interkoneksi yang Anda minta saat Anda memesan hardware Distributed Cloud dengan membuat lampiran interkoneksi yang sesuai. Konfigurasi ini menyediakan konektivitas uplink dasar untuk deployment Distributed Cloud Anda ke jaringan lokal Anda.

Menginisialisasi konfigurasi jaringan zona adalah prosedur sekali saja. Untuk petunjuk lengkap, lihat Melakukan inisialisasi konfigurasi jaringan zona.

Membuat jaringan

Untuk membuat jaringan baru, ikuti petunjuk di Membuat jaringan. Anda juga harus membuat setidaknya satu subnetwork dalam jaringan untuk mengizinkan node Distributed Cloud terhubung ke jaringan.

Buat satu atau beberapa subnetwork

Untuk membuat subnetwork, ikuti petunjuk dalam Membuat subnetwork. Anda harus membuat setidaknya satu subnetwork di jaringan untuk mengizinkan node mengakses jaringan. VLAN yang sesuai dengan setiap subnetwork yang Anda buat akan otomatis tersedia untuk semua node di zona.

Untuk Distributed Cloud Servers, Anda hanya dapat mengonfigurasi subnet menggunakan ID VLAN. Subnetwork berbasis CIDR tidak didukung.

Membuat sesi peering BGP ke utara

Saat Anda membuat jaringan dan subnetwork yang sesuai, keduanya bersifat lokal untuk zona Distributed Cloud-nya. Untuk mengaktifkan konektivitas keluar, Anda harus membuat setidaknya satu sesi peering BGP ke utara antara jaringan dan router edge peering Anda.

Untuk membuat sesi peering BGP northbound, lakukan hal berikut:

  1. Buat daftar interkoneksi yang tersedia di zona Anda lalu pilih interkoneksi target untuk sesi peering ini.

  2. Buat satu atau beberapa lampiran interkoneksi pada interkoneksi yang dipilih. Lampiran Interconnect menautkan router yang Anda buat pada langkah berikutnya dengan interconnect yang dipilih.

  3. Buat router. Router ini merutekan traffic antara interkoneksi dan jaringan Anda menggunakan lampiran interkoneksi yang Anda buat pada langkah sebelumnya.

  4. Tambahkan antarmuka ke router untuk setiap lampiran interconnect yang Anda buat sebelumnya dalam prosedur ini. Untuk setiap antarmuka, gunakan alamat IP switch top-of-rack (ToR) yang sesuai di rak Distributed Cloud Anda. Untuk mengetahui petunjuknya, lihat Membangun sesi peering utara.

  5. Tambahkan peer untuk setiap antarmuka yang Anda buat di router pada langkah sebelumnya.

Membuat sesi peering BGP southbound

Untuk mengaktifkan konektivitas inbound ke workload dari jaringan lokal, Anda harus membuat satu atau beberapa sesi peering BGP southbound antara router edge peering dan subnetwork tempat Pod Anda berada. Alamat IP gateway untuk setiap subnetwork adalah alamat IP switch ToR yang sesuai di rak Distributed Cloud Anda.

Untuk membuat sesi peering BGP southbound, lakukan hal berikut:

  1. Tambahkan antarmuka ke router di jaringan target untuk setiap subnetwork yang ingin Anda sediakan dengan konektivitas masuk. Untuk mengetahui petunjuknya, lihat Membuat sesi peering southbound.

  2. Tambahkan peer untuk setiap antarmuka yang Anda buat di router pada langkah sebelumnya.

Opsional: Buat sesi peering BGP loopback

Untuk mengaktifkan konektivitas dengan ketersediaan tinggi antara beban kerja dan jaringan lokal, Anda dapat membuat sesi peering BGP loopback antara Pod target dan kedua switch ToR di rak Distributed Cloud. Sesi peering loopback membuat dua sesi peering independen untuk Pod, satu dengan setiap switch ToR.

Untuk membuat sesi peering BGP loopback, lakukan hal berikut:

  1. Tambahkan antarmuka loopback ke router di jaringan target. Untuk mengetahui petunjuknya, lihat Membuat sesi peering loopback.

  2. Tambahkan peer untuk antarmuka loopback.

Menguji konfigurasi Anda

Untuk menguji konfigurasi komponen jaringan yang Anda buat, lakukan langkah-langkah berikut:

  1. Periksa status operasional jaringan.

  2. Periksa status penyediaan setiap subnetwork.

  3. Periksa status operasional interkoneksi.

  4. Periksa status operasional lampiran interkoneksi.

  5. Periksa status operasional router.

Menghubungkan Pod ke jaringan

Untuk menghubungkan Pod ke jaringan dan mengonfigurasi fungsi jaringan lanjutan, ikuti petunjuk di Operator Fungsi Jaringan.

Load balancing

Distributed Cloud dilengkapi dengan solusi load balancing jaringan yang dibundel berdasarkan MetalLB dalam mode Layer 2. Anda dapat menggunakan solusi ini untuk mengekspos layanan yang berjalan di zona Distributed Cloud Anda ke dunia luar menggunakan alamat IP virtual (VIP) sebagai berikut:

  1. Administrator jaringan Anda merencanakan topologi jaringan dan menentukan subnet alamat IPv4 virtual yang diperlukan saat memesan Distributed Cloud. Google mengonfigurasi hardware Distributed Cloud Anda sesuai dengan pesanan sebelum pengiriman. Perhatikan hal-hal berikut:
    • Subnetwork VIP ini dibagikan di antara semua cluster Kubernetes yang berjalan dalam zona Distributed Cloud Anda.
    • Rute untuk subnetwork VIP yang diminta diiklankan melalui sesi BGP antara zona Distributed Cloud dan jaringan lokal Anda.
    • Alamat pertama (ID jaringan), kedua (gateway default), dan terakhir (alamat siaran) di subnetwork dicadangkan untuk fungsi sistem inti. Jangan tetapkan alamat tersebut ke kumpulan alamat konfigurasi MetalLB Anda.
    • Setiap cluster harus menggunakan rentang VIP terpisah yang berada dalam subnetwork VIP yang dikonfigurasi.
  2. Saat Anda membuat cluster di zona Distributed Cloud, administrator cluster Anda menentukan kumpulan alamat Pod dan Layanan ClusterIP menggunakan notasi CIDR. Administrator jaringan Anda memberikan subnetwork VIP LoadBalancer yang sesuai kepada administrator cluster Anda.
  3. Setelah cluster dibuat, administrator cluster akan mengonfigurasi kumpulan VIP yang sesuai. Untuk cluster panel kontrol jarak jauh, Anda harus mengedit metallb-config ConfigMap di namespace metallb-system menggunakan perintah kubectl edit atau kubectl replace. Jangan gunakan perintah kubectl apply karena Distributed Cloud akan mengganti perubahan Anda jika Anda melakukannya.

    Contoh berikut mengilustrasikan konfigurasi tersebut:

    # metallb-config.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: metallb-system
      name: metallb-config
    data:
      config: |
        address-pools:
        - name: default
          protocol: layer2
          addresses:
          - 192.168.1.2-192.168.1.254
    

    Untuk cluster bidang kontrol lokal, Anda harus menentukan kumpulan VIP menggunakan flag --external-lb-ipv4-address-pools saat membuat cluster. Untuk mengetahui informasi selengkapnya, lihat Mode survivability.

  4. Administrator cluster membuat Layanan LoadBalancer Kubernetes yang sesuai.

Node Distributed Cloud dalam satu node pool berbagi domain Layer 2 yang sama dan oleh karena itu juga merupakan node load balancer MetalLB. Node bidang kontrol Distributed Cloud yang berjalan di Google Cloud tidak berfungsi sebagai node load balancer.

Traffic masuk Distributed Cloud

Selain load balancing, Distributed Cloud juga mendukung resource Kubernetes Ingress. Resource Ingress Kubernetes mengontrol alur traffic HTTP(S) ke Layanan Kubernetes yang berjalan di cluster Distributed Cloud Anda. Contoh berikut mengilustrasikan resource Ingress umum:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - http:
      paths:
      - backend:
          service:
            name: my-service
            port:
              number: 80
        path: /foo
        pathType: Prefix

Jika dikonfigurasi, traffic jaringan akan mengalir melalui istio-ingress Service, yang secara default diberi alamat IP acak dari kumpulan VIP yang ditentukan dalam konfigurasi MetalLB Anda. Anda dapat memilih alamat IP tertentu atau alamat IP virtual dari konfigurasi MetalLB menggunakan kolom loadBalancerIP dalam definisi Layanan istio-ingress. Contoh:

apiVersion: v1
kind: Service
metadata:
  labels:
    istio: ingress-gke-system
    release: istio
  name: istio-ingress
  namespace: gke-system
spec:
  loadBalancerIP: <targetLoadBalancerIPaddress>

Fungsi ini tidak tersedia di Distributed Cloud Servers.

Menonaktifkan resource Distributed Cloud Ingress default

Secara default, saat Anda membuat cluster Distributed Cloud, Distributed Cloud akan otomatis mengonfigurasi istio-ingress Service untuk cluster. Anda memiliki opsi untuk membuat cluster Distributed Cloud tanpa istio-ingress Layanan. Caranya, selesaikan langkah-langkah berikut:

gcloud

  1. Buat file konfigurasi YAML bernama SystemsAddonConfig.yaml dengan isi berikut:

    systemAddonsConfig:
     ingress:
       disabled: true
    
  2. Teruskan file SystemsAddonConfig.yaml menggunakan flag --system-addons-config dalam perintah pembuatan cluster Anda. Anda harus menggunakan versi gcloud alpha untuk menggunakan fitur ini. Contoh:

    gcloud alpha edge-cloud container clusters create MyGDCECluster1 --location us-west1 \
        --system-addons-config=SystemsAddonConfig.yaml
    

    Untuk mengetahui informasi selengkapnya tentang cara membuat cluster Distributed Cloud, lihat Membuat cluster.

API

  1. Tambahkan konten JSON berikut ke payload JSON dalam permintaan pembuatan cluster Anda:

    "systemAddonConfig" {
       "ingress" {
               "disabled": true
       }
    }
    
  2. Kirimkan permintaan pembuatan cluster seperti yang dijelaskan dalam Membuat cluster.

Dukungan SCTP

Distributed Cloud mendukung Stream Control Transmission Protocol (SCTP) di antarmuka jaringan utama untuk jaringan internal dan eksternal. Dukungan SCTP mencakup jenis Layanan NodePort, LoadBalancer, dan ClusterIP. Pod dapat menggunakan SCTP untuk berkomunikasi dengan Pod lain dan resource eksternal. Contoh berikut mengilustrasikan cara mengonfigurasi IPERF sebagai Layanan ClusterIP menggunakan SCTP:

apiVersion: v1
kind: Pod
metadata:
  name: iperf3-sctp-server-client
  labels:
    app.kubernetes.io/name: iperf3-sctp-server-client
spec:
  containers:
  - name: iperf3-sctp-server
    args: ['-s', '-p 31390']
    ports:
      - containerPort: 31390
        protocol: SCTP
        name: server-sctp
  - name: iperf3-sctp-client
    ...

---

apiVersion: v1
kind: Service
metadata:
  name: iperf3-sctp-svc
spec:
  selector:
    app.kubernetes.io/name: iperf3-sctp-server-client
  ports:
    - port: 31390
      protocol: SCTP
      targetPort: server-sctp

Fungsi ini tidak tersedia di Distributed Cloud Servers.

Modul kernel SCTP

Mulai dari versi 1.5.0, Distributed Cloud mengonfigurasi modul kernel sctp Edge OS agar dapat dimuat. Dengan begitu, Anda dapat memuat stack protokol SCTP Anda sendiri di ruang pengguna kernel.

Selain itu, Distributed Cloud memuat modul berikut ke dalam kernel secara default:

Nama modul Nama konfigurasi
fou CONFIG_NET_FOU
nf_conntrack_proto_gre CONFIG_NF_CT_PROTO_GRE
nf_conntrack_proto_sctp CONFIG_NF_CT_PROTO_SCTP
inotify CONFIG_INOTIFY_USER
xt_redirect CONFIG_NETFILTER_XT_TARGET_REDIRECT
xt_u32 CONFIG_NETFILTER_XT_MATCH_U32
xt_multiport CONFIG_NETFILTER_XT_MATCH_MULTIPORT
xt_statistic CONFIG_NETFILTER_XT_MATCH_STATISTIC
xt_owner CONFIG_NETFILTER_XT_MATCH_OWNER
xt_conntrack CONFIG_NETFILTER_XT_MATCH_CONNTRACK
xt_mark CONFIG_NETFILTER_XT_MARK
ip6table_mangle CONFIG_IP6_NF_MANGLE
ip6_tables CONFIG_IP6_NF_IPTABLES
ip6table_filter CONFIG_IP6_NF_FILTER
ip6t_reject CONFIG_IP6_NF_TARGET_REJECT
iptable_mangle CONFIG_IP_NF_MANGLE
ip_tables CONFIG_IP_NF_IPTABLES
iptable_filter CONFIG_IP_NF_FILTER

Resource ClusterDNS

Distributed Cloud mendukung resource Google Distributed Cloud ClusterDNS untuk mengonfigurasi server nama upstream untuk domain tertentu dengan menggunakan bagian spec.domains. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi resource ini, lihat spec.domains.

Fungsi ini tidak tersedia di Distributed Cloud Servers.

Langkah berikutnya