Sistem jaringan mencakup komponen berikut:
Jaringan pengelolaan: Jaringan pengelolaan di luar band yang mencakup dua jenis switch berikut:
- Tombol pengelolaan
- Tombol agregasi pengelolaan
Jaringan bidang data: Jaringan yang membawa traffic pengguna dan mencakup tiga jenis switch berikut:
- Sakelar top-of-rack (TOR)
- Pengalihan agregasi
- Sakelar daun batas
Jika firmware saat ini di switch bukan versi yang diharapkan, bootstrap jaringan akan mencoba mengupdate switch ke versi OS switch yang diharapkan untuk versi air-gapped Google Distributed Cloud (GDC).
12.1. Sebelum memulai
Switch mungkin dikirim dengan setelan default pabrik. Sebelum memulai, reset semua sakelar untuk menghapus konfigurasi yang ada. Untuk melakukannya, hubungkan menggunakan konsol serial dan jalankan perintah berikut:
write erase
Setelah menghapus konfigurasi switch yang ada, muat ulang switch:
reload in 5
12.2. Penginstalan jaringan
Lakukan langkah-langkah berikut untuk penginstalan jaringan:
- Nyalakan semua sakelar.
Mulai program bootstrap jaringan dengan akses root
sudodi mesin bootstrap:gdcloud system network install --config PATH_TO_CELLCFG --upgrade-switch-osGanti
PATH_TO_CELLCFGdengan jalur ke filecellcfg.Jika perintah ini gagal, dan menampilkan pesan error berikut:
root@bootstrapper:~/hams/gdc/output/cellcfg# gdcloud system network install --config /root/hams/gdc/output/cellcfg --upgrade-switch-os Error: failed to initialize KIND: could not determine harbor address (no match between local and docker hostnames): could not find a matchJalankan kembali perintah
inituntuk mengatasi error ini:gdcloud system network init --config PATH_TO_CELLCFG
Biarkan tombol tetap aktif. Switch akan melalui urutan booting PowerOn Auto Provisioning (POAP) untuk menginstal sendirinya secara otomatis dari mesin bootstrap dari jarak jauh.
Pantau log program bootstrap untuk memastikan switch aktif dalam urutan berikut:
- Tombol pengelolaan
1. - Switch pengelolaan lainnya dan switch agregasi pengelolaan.
- Beralih jaringan data.
- Tombol pengelolaan
Terus pantau log bootstrap. Setelah menyelesaikan langkah-langkah sebelumnya, sakelar akan terhubung. Program bootstrap menginstal konfigurasi tambahan pada switch pengelolaan dan switch data melalui API.
Tunggu hingga log bootstrap menampilkan pesan
Successfully bootstrapped all switches.
12.3. Detail bootstrap
Gunakan urutan boot POAP untuk mem-bootstrap semua switch di jaringan sebagai berikut:
- Hubungkan mesin bootstrap ke switch pengelolaan.
- Hubungkan switch agregasi pengelolaan ke switch pengelolaan.
- Hubungkan sakelar lainnya di rak yang sama.
- Hubungkan switch agregasi pengelolaan ke rak lain.
- Hubungkan semua sakelar lainnya.
Mesin bootstrap membuat konfigurasi switch dengan file YAML untuk switch di jalur ./cellcfg. Semua switch menggunakan urutan booting PowerOn Auto Provisioning (POAP) untuk menerima konfigurasinya. Di hardware 3.0, switch jaringan menerima file POAP dengan konfigurasi akhirnya. Setelah switch menyelesaikan POAP, switch akan otomatis dimulai ulang.
Setelah dimulai ulang, tombol harus sesuai dengan file YAML untuk tombol
di jalur ./cellcfg. Mesin bootstrap mengirimkan permintaan ke semua switch untuk memastikan konektivitas dan konfigurasi switch berhasil.
12.4. Konfigurasi rute setelah bootstrap
Setelah proses bootstrapping jaringan, konfigurasi rute bootstrapper untuk mempersiapkannya bagi tugas bootstrapping mendatang.
12.4.1. Menemukan gateway bidang data
Gateway bidang data adalah alamat IP gateway untuk jaringan bidang data. Siapkan alamat IP gateway untuk berkomunikasi dengan layanan lain di jaringan dataplane.
Untuk menemukan alamat IP gateway bidang data, ikuti langkah-langkah berikut:
- Di folder
cellcfg, buka filekub-ipam.yaml. Temukan resource
SubnetClaimbernamacontrol-plane-subnet:yq eval -r ' select(.kind == "SubnetClaim" and .metadata.name == "control-plane-subnet") | .spec.ipv4Spec.staticReservedIpRanges[] | select(.type == "GatewayReservation") | .ipRange.startIPAddress ' PATH_TO_KUB_IPAM_FILEGanti
PATH_TO_KUB_IPAM_FILEdengan jalur ke filecellcfg/kub-ipam.yaml.Temukan alamat IP gateway di bagian
spec.ipv4Specyang tercantum sebagaitype: GatewayReservation. Misalnya, alamat IP gateway untuk antarmuka bidang data adalah172.19.0.1:# Source: kub-ipam-assets/templates/subnet_claims.yaml apiVersion: system.private.gdc.goog/v1alpha1 kind: SubnetClaim metadata: name: control-plane-subnet namespace: root labels: subnetclaims.system.private.gdc.goog/usage: "server" annotations: lcm.private.gdc.goog/claim-by-force: "true" helm.sh/resource-policy: keep spec: category: ExternalOverlayNetwork overlayNetwork: External cidrClaimName: control-plane-cidr ipv4Spec: staticReservedIpRanges: - ipRange: size: 1 startIPAddress: 172.19.0.1 type: GatewayReservation
12.4.2. Membuat Skrip untuk Rute di Bootstrapper
Buat skrip untuk membuat rute:
bash << 'EOF'
#!/bin/bash
SCRIPT_PATH="/usr/local/sbin/add-routes.sh"
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service"
MGMT_GATEWAY=MGMT_GATEWAY
MGMT_CIDR=MGMT_CIDR
MGMT_INTERFACE=MGMT_INTERFACE
BOND_GATEWAY=DATA_GATEWAY
rm -rf "$SCRIPT_PATH" 2>/dev/null
touch "$SCRIPT_PATH"
rm -rf "$SERVICE_PATH" 2>/dev/null
touch "$SERVICE_PATH"
echo -e '#!/bin/bash\n' > "$SCRIPT_PATH"
echo "ip route del $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route add $MGMT_CIDR via $MGMT_GATEWAY dev $MGMT_INTERFACE proto static" >> "$SCRIPT_PATH"
echo "ip route del default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
echo "ip route add default via $BOND_GATEWAY dev bond0 proto static" >> "$SCRIPT_PATH"
chmod +x "$SCRIPT_PATH"
echo -e "[Unit]\nDescription=Add Routes Service\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/local/sbin/add-routes.sh\n\n[Install]\nWantedBy=default.target" > "$SERVICE_PATH"
systemctl daemon-reload
systemctl enable add-routes.service
systemctl restart add-routes.service
echo -e "\n ### add-routes.sh script file path ###"
ls -l $SCRIPT_PATH
echo -e "\n ### add-routes.service file path ###"
ls -l $SERVICE_PATH
echo -e "\n ### add-routes.service status ###"
systemctl status add-routes.service
echo -e "\n ### Show if add-routes.service is enabled at boot ###"
systemctl is-enabled add-routes.service
echo -e "\n ### Show the just added route to ens15f0 ###"
ip route show | grep ens15f0
echo -e "\n ### Show the just added default route ###"
ip route show | grep default
EOF
Ganti kode berikut:
MGMT_GATEWAY: alamat gateway dari bagian Temukan IP pengelolaan, CIDR, dan alamat gateway.MGMT_CIDR: CIDR pengelolaan dari bagian Menemukan alamat IP, CIDR, dan gateway pengelolaanMGMT_INTERFACE: contoh nama antarmuka pengelolaan adalahens15f0. Orang dapat menggunakan alamat MAC dicellcfg/serv-core.yamluntuk mengidentifikasi antarmuka mana yang digunakan untuk jaringan pengelolaan.DATA_GATEWAY: Alamat IP gateway dari bagian Temukan gateway bidang data.
Cuplikan ini membuat layanan systemd dan skrip sebagai berikut:
SCRIPT_PATH="/usr/local/sbin/add-routes.sh
SERVICE_PATH="/usr/lib/systemd/system/add-routes.service
Layanan systemd diperlukan untuk mempertahankan rute setelah memulai ulang sistem.
Rute yang ditambahkan meliputi:
- Rute default ke jaringan data melalui antarmuka
bond0. - Rute ke jaringan pengelolaan melalui antarmuka pengelolaan.
12.5. Membuat konektivitas multi-zona
Jika instance GDC bergabung dengan multi-zona yang sudah ada, ikuti langkah-langkah di Mengonfigurasi interkoneksi multi-zona untuk setiap zona guna membuat konektivitas jaringan antara zona yang ada dan zona deployment saat ini.
12.6. Pemecahan masalah
Untuk memecahkan masalah bootstrap jaringan, lihat Pemecahan masalah bootstrap jaringan.
12.7. Potensi masalah
Switch jaringan yang sudah dimuat sebelumnya dengan versi yang lebih rendah dari 9.3.10 mungkin gagal melakukan bootstrap.
Untuk mengetahui informasi selengkapnya, lihat Masalah umum.