Dokumen ini menjelaskan cara mengimplementasikan model jaringan mode datar dengan Border Dukungan Gateway Protocol (BGP). Saat Anda mengimplementasikan model jaringan dengan BGP dukungan teknis, BGP secara dinamis memastikan bahwa pod di domain Lapisan 2 yang berbeda dapat berkomunikasi satu sama lain. Jaringan mode datar dengan BGP terkadang disebut IP datar dinamis.
Untuk informasi selengkapnya tentang model jaringan mode datar, lihat Model jaringan mode datar vs pulau.
Cara menerapkan jaringan mode datar yang menggunakan BGP
Jaringan mode datar dengan BGP diaktifkan saat Anda membuat cluster baru. Anda tidak dapat mengaktifkan fitur ini untuk cluster yang ada. Setelah fitur ini diaktifkan, Anda dapat membuat perubahan pada beberapa setelan konfigurasi.
Untuk menerapkan cluster pada model jaringan mode datar dengan dukungan BGP:
Edit file konfigurasi cluster:
- Tetapkan kolom
spec.clusterNetwork.advancedNetworking
ketrue
. Jika Anda ingin mengaktifkan jaringan mode datar untuk IPv4, setel
spec.clusterNetwork.flatIPv4
menjaditrue
.Untuk alternatif, lihat Cluster dual-stack (IPv4 Island, IPv6 Dynamic Flat IP), yang mengkonfigurasi cluster Anda dengan jaringan mode datar hanya untuk IPv6.
apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: bm namespace: cluster-bm spec: type: user ... clusterNetwork: advancedNetworking: true flatIPv4: true ...
Jika
spec.clusterNetwork.flatIPv4
ditetapkan ketrue
, kolomspec.clusterNetwork.pods.cidrBlocks
diabaikan dan dapat dihilangkan. Namun, Anda perlu menambahkan manifesClusterCIDRConfigs
di cluster file konfigurasi (per-node, per-nodepool, dan/atau per-cluster).- Tetapkan kolom
Tambahkan manifes
NetworkGatewayGroup
ke file konfigurasi cluster:Tentukan IP mengambang yang akan digunakan untuk peering BGP. Memastikan bahwa resource namanya adalah
default
dan namespace-nya adalah namespace cluster.--- apiVersion: networking.gke.io/v1 kind: NetworkGatewayGroup metadata: name: default namespace: cluster-bm spec: floatingIPs: - 10.0.1.100 - 10.0.2.100
NetworkGatewayGroup
resource kustom mengelola daftar satu atau beberapa alamat IP mengambang. BGP sesi peering dimulai dari alamat IP mengambang yang Anda tentukan dalam resource kustomNetworkGatewayGroup
.Tambahkan manifes
FlatIPMode
ke file konfigurasi cluster:Nama resource
FlatIPMode
harusdefault
dan namespace-nya adalah namespace cluster. NilaipeerSelector
flatip-peer: "true"
cocok dengan label di objek BGPPeerbgppeer1
danbgppeer2
(ditentukan di langkah berikut), sehingga kedua rekan digunakan untuk jaringan mode datar.Manifes
FlatIPMode
berikut adalah untuk mode datar tumpukan tunggal IPv4 jaringan Anda dengan BGP. Untuk konfigurasi alternatif, lihat Contoh konfigurasi.--- apiVersion: baremetal.cluster.gke.io/v1alpha1 kind: FlatIPMode metadata: name: default namespace: cluster-bm spec: enableBGPIPv4: true enableBGPIPv6: false peerSelector: flatip-peer: "true"
Tambahkan satu atau beberapa manifes
BGPPeer
ke file konfigurasi cluster:Anda memilih nama untuk resource, tetapi semua resource
BGPPeer
harus dalam namespace cluster.--- apiVersion: networking.gke.io/v1 kind: BGPPeer metadata: name: bgppeer1 namespace: cluster-bm labels: flatip-peer: "true" spec: localASN: 65001 peerASN: 65000 peerIP: 10.0.1.254 sessions: 2 --- apiVersion: networking.gke.io/v1 kind: BGPPeer metadata: name: bgppeer2 namespace: cluster-bm labels: flatip-peer: "true" spec: localASN: 65001 peerASN: 65000 peerIP: 10.0.2.254 sessions: 2
Tambahkan manifes
ClusterCIDRConfig
ke file konfigurasi cluster:Resource
CusterCIDRConfig
juga harus ada di namespace cluster.apiVersion: baremetal.cluster.gke.io/v1alpha1 kind: ClusterCIDRConfig metadata: name: cluster-wide-1 namespace: cluster-bm spec: ipv4: cidr: "192.168.0.0/16" perNodeMaskSize: 24
ClusterCIDRConfig adalah resource kustom yang menentukan rentang CIDR Pod yang akan yang dialokasikan ke node secara dinamis. CNI menggunakan rentang CIDR Pod yang dialokasikan di Node untuk mengalokasikan alamat IP ke tiap Pod yang berjalan di Node.
ClusterCIDRConfig
juga digunakan untuk jaringan dual-stack. Untuk selengkapnya informasi tentang resource kustomClusterCIDRConfig
, termasuk penggunaan contoh, lihat Memahami resource kustom ClusterCIDRConfig.Membuat cluster:
bmctl create cluster
Untuk informasi selengkapnya tentang cara membuat cluster, lihat Ringkasan pembuatan cluster.
Jika lingkungan Anda mendukung BGP multi-protokol (MP-BGP), IPv4, dan IPv6 rute yang dapat diiklankan pada sesi IPv4 ini. Untuk contoh berbagai konfigurasi umum, termasuk contoh yang menggunakan MP-BGP, lihat Konfigurasi contoh.
Mengubah konfigurasi jaringan mode datar berbasis BGP
Setelah Anda membuat cluster yang dikonfigurasi untuk menggunakan model jaringan mode datar
dengan BGP, beberapa setelan konfigurasi dapat diperbarui. Menggunakan cluster admin
file kubeconfig saat Anda melakukan update berikutnya pada resource terkait BGP
(NetworkGatewayGroup
, FlatIPMode
, dan BGPPeer
). Cluster admin
merekonsiliasi perubahan
pada cluster pengguna. Jika Anda mengedit
sumber daya ini pada
cluster pengguna secara langsung, cluster admin akan menimpa perubahan yang Anda
rekonsiliasi berikutnya.
Contoh konfigurasi
Bagian berikut mencakup contoh konfigurasi cluster untuk berbagai yang berbeda dari model jaringan mode datar dengan BGP. Contoh konfigurasi file tidak lengkap. Sebagian besar setelan cluster yang tidak relevan dengan mode datar yang sama dengan BGP telah dihilangkan.
Cluster IPv4 satu stack
Contoh file konfigurasi cluster berikut menunjukkan setelan untuk mengonfigurasi cluster IPv4 stack tunggal dengan jaringan mode datar dengan BGP:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: bm
namespace: cluster-bm
spec:
...
clusterNetwork:
advancedNetworking: true
flatIPv4: true
services:
cidrBlocks:
- 10.96.0.0/12
...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-bm # Must match the cluster namespace
spec:
ipv4:
cidr: "222.2.0.0/16"
perNodeMaskSize: 24
---
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
floatingIPs:
- 10.0.1.100
- 10.0.3.100
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: FlatIPMode
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
enableBGPIPv4: true
enableBGPIPv6: false
peerSelector:
flatipmode-peer: "true"
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer1
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.1.254
sessions: 2
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer2
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.3.254
sessions: 2
Cluster dual-stack (Pulau IPv4, IP Datar Dinamis IPv6)
Contoh file konfigurasi cluster berikut menunjukkan setelan untuk mengonfigurasi cluster dual-stack (IPv4/IPv6) dengan jaringan mode datar dengan BGP hanya untuk IPv6:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: bm
namespace: cluster-bm
spec:
...
clusterNetwork:
advancedNetworking: true
flatIPv4: false
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/12
# Additional IPv6 CIDR block determines if the cluster is dual-stack
- 2620:0:1000:2630:5:2::/112
...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-bm # Must match the cluster namespace
spec:
ipv4:
cidr: "192.168.0.0/16"
perNodeMaskSize: 24
ipv6:
cidr: "2222:3::/112"
perNodeMaskSize: 120
---
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
floatingIPs:
- 10.0.1.100
- 10.0.3.100
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: FlatIPMode
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
enableBGPIPv4: false
enableBGPIPv6: true
peerSelector:
flatipmode-peer: "true"
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer1
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.1.254
sessions: 2
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer2
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.3.254
sessions: 2
Cluster dual-stack (IP Datar Dinamis IPv4, IP Datar Dinamis IPv6)
Contoh file konfigurasi cluster berikut menunjukkan setelan untuk mengonfigurasi cluster dual-stack dengan jaringan mode datar dengan BGP:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: bm
namespace: cluster-bm
spec:
...
clusterNetwork:
advancedNetworking: true
flatIPv4: true
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/12
# Additional IPv6 CIDR block determines if the cluster is dual-stack
- 2620:0:1000:2630:5:2::/112
...
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-bm # Must match the cluster namespace
spec:
ipv4:
cidr: "222.2.0.0/16"
perNodeMaskSize: 24
ipv6:
cidr: "2222:3::/112"
perNodeMaskSize: 120
---
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
floatingIPs:
- 10.0.1.100
- 10.0.3.100
---
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: FlatIPMode
metadata:
name: default
namespace: cluster-bm # Must match the cluster namespace
spec:
enableBGPIPv4: true
enableBGPIPv6: true
peerSelector:
flatipmode-peer: "true"
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer1
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.1.254
sessions: 2
---
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer2
namespace: cluster-bm # Must match the cluster namespace
labels:
flatipmode-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.3.254
sessions: 2
Pemecahan masalah
Untuk membantu Anda memecahkan masalah terkait jaringan mode datar dengan BGP, berisi petunjuk untuk memeriksa konfigurasi Anda:
Verifikasi apakah objek
FlatIPModes
dibuat di namespace cluster di cluster admin:kubectl get flatipmodes -A --kubeconfig ADMIN_KUBECONFIG
Responsnya akan terlihat seperti ini:
NAMESPACE NAME AGE cluster-bm default 2d17h
Verifikasi apakah objek
flatipmodes.networking.gke.io
dibuat pada pengguna :Objek
flatipmodes.networking.gke.io
merupakan cakupan cluster.kubectl get flatipmodes.networking.gke.io --kubeconfig USER_KUBECONFIG
Responsnya akan terlihat seperti ini:
NAME AGE default 2d17h
Dapatkan resource
BGPSessions
untuk melihat sesi saat ini:kubectl get bgpsessions -A --kubeconfig USER_KUBECONFIG
Responsnya akan terlihat seperti ini:
NAMESPACE NAME LOCAL ASN PEER ASN LOCAL IP PEER IP STATE LAST REPORT kube-system 10.0.1.254-node-01 65500 65000 10.0.1.100 10.0.1.254 Established 2s kube-system 10.0.1.254-node-02 65500 65000 10.0.3.100 10.0.1.254 NotEstablished 2s kube-system 10.0.3.254-node-01 65500 65000 10.0.1.100 10.0.3.254 NotEstablished 2s kube-system 10.0.3.254-node-02 65500 65000 10.0.3.100 10.0.3.254 Established 2s
Dapatkan resource
BGPAdvertisedRoute
untuk melihat rute yang sedang dilalui diiklankan:kubectl get bgpadvertisedroutes -A --kubeconfig USER_KUBECONFIG
Responsnya kurang lebih akan seperti ini:
NAMESPACE NAME PREFIX METRIC kube-system route-via-222-22-208-240 222.2.0.0/24 kube-system route-via-222-22-209-240 222.2.1.0/24
Nama rute menunjukkan hop berikutnya. Misalnya,
route-via-222-22-208-240
dari contoh respons sebelumnya menunjukkan bahwa hop berikutnya untuk awalan222.2.0.0/24
yang diiklankan adalah222.22.208.240
.