Halaman ini menjelaskan operator Kubernetes Network Function khusus yang disertakan dalam Google Distributed Cloud. Operator ini mengimplementasikan serangkaian CustomResourceDefinitions (CRD) yang memungkinkan Distributed Cloud menjalankan workload berperforma tinggi.
Operator Network Function dan fungsi SR-IOV tidak tersedia di Distributed Cloud Servers.
Operator Network Function memungkinkan Anda melakukan hal berikut:
- Polling untuk perangkat jaringan yang ada di node.
- Kueri alamat IP dan status link fisik untuk setiap perangkat jaringan di node.
- Menyediakan antarmuka jaringan tambahan pada node.
- Mengonfigurasi fitur sistem tingkat rendah di mesin fisik node yang diperlukan untuk mendukung workload berperforma tinggi.
- Gunakan virtualisasi input/output root tunggal (SR-IOV) pada antarmuka jaringan PCI Express untuk memvirtualisasinya menjadi beberapa antarmuka virtual. Kemudian, Anda dapat mengonfigurasi workload Distributed Cloud untuk menggunakan antarmuka jaringan virtual tersebut.
Dukungan Distributed Cloud untuk SR-IOV didasarkan pada project open source berikut:
Prasyarat
Operator Network Function mengambil konfigurasi jaringan dari Distributed Cloud Edge Network API.
Untuk mengizinkannya, Anda harus memberikan peran Edge Network Viewer (roles/edgenetwork.viewer) kepada akun layanan operator Network Function menggunakan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --role roles/edgenetwork.viewer \ --member "serviceAccount:PROJECT_ID.svc.id.goog[nf-operator/nf-angautomator-sa]"
Ganti PROJECT_ID dengan ID project Google Cloud target.
Resource operator Network Function
Operator Distributed Cloud Network Function mengimplementasikan CRD Kubernetes berikut:
Network. Menentukan jaringan virtual yang dapat digunakan Pod untuk berkomunikasi dengan resource internal dan eksternal. Anda harus membuat VLAN yang sesuai menggunakan Distributed Cloud Edge Network API sebelum menentukannya di resource ini. Untuk mengetahui petunjuknya, lihat Membuat jaringan.NetworkInterfaceState. Mengaktifkan penemuan status antarmuka jaringan dan membuat kueri antarmuka jaringan untuk status link dan alamat IP.NodeSystemConfigUpdate. Mengaktifkan konfigurasi fitur sistem tingkat rendah seperti opsi kernel dan flagKubelet.SriovNetworkNodePolicy. Memilih grup antarmuka jaringan yang divirtualisasi SR-IOV dan membuat instance grup sebagai resource Kubernetes. Anda dapat menggunakan resource ini dalam resourceNetworkAttachmentDefinition.SriovNetworkNodeState. Memungkinkan Anda membuat kueri status penyediaan resourceSriovNetworkNodePolicydi node Distributed Cloud.NetworkAttachmentDefinition. Memungkinkan Anda melampirkan Pod Distributed Cloud ke satu atau beberapa jaringan logis atau fisik di node Distributed Cloud Anda. Anda harus membuat VLAN yang sesuai sebelum menentukannya di resource ini. Anda harus membuat VLAN yang sesuai menggunakan Distributed Cloud Edge Network API sebelum menentukannya di resource ini. Untuk mengetahui petunjuknya, lihat Membuat jaringan.
Operator Network Function juga memungkinkan Anda menentukan antarmuka jaringan sekunder yang tidak menggunakan fungsi virtual SR-IOV.
Resource Network
Resource Network menentukan jaringan virtual dalam rak Distributed Cloud yang dapat digunakan Pod dalam cluster Distributed Cloud Anda untuk berkomunikasi dengan resource internal dan eksternal.
Resource Network menyediakan parameter yang dapat dikonfigurasi berikut untuk antarmuka jaringan yang diekspos sebagai kolom yang dapat ditulis:
spec.type: menentukan lapisan transport jaringan untuk jaringan ini. Satu-satunya nilai yang valid adalahL2. Anda juga harus menentukan nilainodeInterfaceMatcher.interfaceName.spec.nodeInterfaceMatcher.interfaceName: nama antarmuka jaringan fisik di node Distributed Cloud target yang akan digunakan dengan jaringan ini.spec.gateway4: alamat IP gateway jaringan untuk jaringan ini.spec.l2NetworkConfig.prefixLength4: menentukan rentang CIDR untuk jaringan ini.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: networking.gke.io/v1
kind: Network
metadata:
name: vlan200-network
annotations:
networking.gke.io/gdce-vlan-id: 200
networking.gke.io/gdce-vlan-mtu: 1500
spec:
type: L2
nodeInterfaceMatcher:
interfaceName: gdcenet0.200
gateway4: 10.53.0.1
Resource NetworkInterfaceState
Resource NetworkInterfaceState adalah resource hanya baca yang memungkinkan Anda menemukan antarmuka jaringan fisik di node dan mengumpulkan statistik runtime tentang traffic jaringan yang mengalir melalui antarmuka tersebut.
Distributed Cloud membuat resource NetworkInterfaceState
untuk setiap node dalam cluster.
Konfigurasi default mesin Distributed Cloud mencakup antarmuka jaringan gabungan pada Kartu Tambahan Jaringan Seleksi Rak (rNDC) bernama gdcenet0. Antarmuka ini menggabungkan antarmuka jaringan eno1np0 dan eno2np1. Setiap koneksi tersebut terhubung ke satu switch ToR Distributed Cloud.
Resource NetworkInterfaceState menyediakan kategori informasi antarmuka jaringan berikut yang diekspos sebagai kolom status hanya baca.
Informasi umum:
status.interfaces.ifname: nama antarmuka jaringan target.status.lastReportTime: waktu dan tanggal laporan status terakhir untuk antarmuka target.
Informasi konfigurasi alamat IP:
status.interfaces.interfaceinfo.address: alamat IP yang ditetapkan ke antarmuka target.status.interfaces.interfaceinfo.dns: alamat IP server DNS yang ditetapkan ke antarmuka target.status.interfaces.interfaceinfo.gateway: alamat IP gateway jaringan yang melayani antarmuka target.status.interfaces.interfaceinfo.prefixlen: panjang awalan IP.
Informasi hardware:
status.interfaces.linkinfo.broadcast: alamat MAC siaran dari antarmuka target.status.interfaces.linkinfo.businfo: jalur perangkat PCIe dalam formatbus:slot.function.status.interfaces.linkinfo.flags: tanda antarmuka—misalnya,BROADCAST.status.interfaces.linkinfo.macAddress: alamat MAC Unicast dari antarmuka target.status.interfaces.linkinfo.mtu: nilai MTU untuk antarmuka target.
Statistik penerimaan:
status.interfaces.statistics.rx.bytes: total byte yang diterima oleh antarmuka target.status.interfaces.statistics.rx.dropped: total paket yang dihentikan oleh antarmuka target.status.interfaces.statistics.rx.errors: total error penerimaan paket untuk antarmuka target.status.interfaces.statistics.rx.multicast: total paket multicast yang diterima oleh antarmuka target.status.interfaces.statistics.rx.overErrors: total penerimaan paket melalui error untuk antarmuka target.status.interfaces.statistics.rx.packets: total paket yang diterima oleh antarmuka target.
Statistik transmisi:
status.interfaces.statistics.tx.bytes: total byte yang ditransmisikan oleh antarmuka target.status.interfaces.statistics.tx.carrierErrors: total error operator yang dialami oleh antarmuka target.status.interfaces.statistics.tx.collisions: total tabrakan paket yang dialami oleh antarmuka target.status.interfaces.statistics.tx.dropped: total paket yang dihentikan oleh antarmuka target.status.interfaces.statistics.tx.errors: total error transmisi untuk antarmuka target.status.interfaces.statistics.tx.packets: total paket yang dikirimkan oleh antarmuka target.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: networking.gke.io/v1
kind: NetworkInterfaceState
metadata:
name: MyNode1
nodeName: MyNode1
status:
interfaces:
- ifname: eno1np0
linkinfo:
businfo: 0000:1a:00.0
flags: up|broadcast|multicast
macAddress: ba:16:03:9e:9c:87
mtu: 9000
statistics:
rx:
bytes: 1098522811
errors: 2
multicast: 190926
packets: 4988200
tx:
bytes: 62157709961
packets: 169847139
- ifname: eno2np1
linkinfo:
businfo: 0000:1a:00.1
flags: up|broadcast|multicast
macAddress: ba:16:03:9e:9c:87
mtu: 9000
statistics:
rx:
bytes: 33061895405
multicast: 110203
packets: 110447356
tx:
bytes: 2370516278
packets: 11324730
- ifname: enp95s0f0np0
interfaceinfo:
- address: fe80::63f:72ff:fec4:2bf4
prefixlen: 64
linkinfo:
businfo: 0000:5f:00.0
flags: up|broadcast|multicast
macAddress: 04:3f:72:c4:2b:f4
mtu: 9000
statistics:
rx:
bytes: 37858381
multicast: 205645
packets: 205645
tx:
bytes: 1207334
packets: 6542
- ifname: enp95s0f1np1
interfaceinfo:
- address: fe80::63f:72ff:fec4:2bf5
prefixlen: 64
linkinfo:
businfo: 0000:5f:00.1
flags: up|broadcast|multicast
macAddress: 04:3f:72:c4:2b:f5
mtu: 9000
statistics:
rx:
bytes: 37852406
multicast: 205607
packets: 205607
tx:
bytes: 1207872
packets: 6545
- ifname: enp134s0f0np0
interfaceinfo:
- address: fe80::63f:72ff:fec4:2b6c
prefixlen: 64
linkinfo:
businfo: 0000:86:00.0
flags: up|broadcast|multicast
macAddress: 04:3f:72:c4:2b:6c
mtu: 9000
statistics:
rx:
bytes: 37988773
multicast: 205584
packets: 205584
tx:
bytes: 1212385
packets: 6546
- ifname: enp134s0f1np1
interfaceinfo:
- address: fe80::63f:72ff:fec4:2b6d
prefixlen: 64
linkinfo:
businfo: 0000:86:00.1
flags: up|broadcast|multicast
macAddress: 04:3f:72:c4:2b:6d
mtu: 9000
statistics:
rx:
bytes: 37980702
multicast: 205548
packets: 205548
tx:
bytes: 1212297
packets: 6548
- ifname: gdcenet0
interfaceinfo:
- address: 208.117.254.36
prefixlen: 28
- address: fe80::b816:3ff:fe9e:9c87
prefixlen: 64
linkinfo:
flags: up|broadcast|multicast
macAddress: ba:16:03:9e:9c:87
mtu: 9000
statistics:
rx:
bytes: 34160422968
errors: 2
multicast: 301129
packets: 115435591
tx:
bytes: 64528301111
packets: 181171964
.. <remaining interfaces omitted>
lastReportTime: "2022-03-30T07:35:44Z"
Resource NodeSystemConfigUpdate
Resource NodeSystemConfigUpdate memungkinkan Anda membuat perubahan pada konfigurasi sistem operasi node serta mengubah flag Kubelet. Perubahan selain perubahan sysctl memerlukan mulai ulang node.
Saat membuat instance resource ini, Anda harus menentukan target node di
kolom nodeSelector. Anda harus menyertakan semua key-value pair untuk setiap
target node di kolom nodeSelector. Jika Anda menentukan lebih dari satu node target di kolom ini, node target akan diupdate satu per satu. Kolom ini menggantikan kolom nodeName.
PERHATIAN: Kolom nodeName tidak digunakan lagi. Penggunaan perintah ini akan segera mem-reboot
node target, termasuk node bidang kontrol lokal, yang dapat menghentikan beban kerja
kritis.
Resource NodeSystemConfigUpdate menyediakan kolom konfigurasi berikut yang khusus untuk Distributed Cloud:
spec.containerRuntimeDNSConfig.ip: menentukan daftar alamat IP untuk registry image pribadi.spec.containerRuntimeDNSConfig: menentukan daftar entri DNS kustom yang digunakan oleh Lingkungan Runtime Kontainer di setiap node Distributed Cloud. Setiap entri terdiri dari kolom berikut:ip: menentukan alamat IPv4 target,domain: menentukan domain yang sesuai,interface: menentukan antarmuka keluar jaringan yang dapat dijangkau oleh alamat IP yang ditentukan di kolomip. Anda dapat menentukan antarmuka yang ditentukan melalui resource berikut:CustomNetworkInterfaceConfig,Network(dengan anotasi),NetworkAttachmentDefinition, (dengan anotasi). Ini adalah fitur tingkat pratinjau.
spec.kubeletConfig.cpuManagerPolicy: menentukan kebijakan CPUManager Kubernetes. Nilai yang valid adalahNonedanStatic.spec.kubeletConfig.topologyManagerPolicy: menentukan kebijakan TopologyManager Kubernetes. Nilai yang valid adalahNone,BestEffort,Restricted, danSingleNumaMode.spec.osConfig.hugePagesConfig: menentukan konfigurasi halaman besar per node NUMA. Nilai yang valid adalah2MBdan1GB. Jumlah halaman besar yang diminta didistribusikan secara merata di kedua node NUMA dalam sistem. Misalnya, jika Anda mengalokasikan 16 halaman besar dengan ukuran 1 GB setiap halaman, setiap node akan menerima pra-alokasi sebesar 8 GB.spec.osConfig.isolatedCpusPerSocket: menentukan jumlah CPU terisolasi per soket. Wajib jikacpuManagerPolicyditetapkan keStatic.spec.osConfig.cpuIsolationPolicy: menentukan kebijakan isolasi CPU. KebijakanDefaulthanya mengisolasi tugassystemddari CPU yang dicadangkan untuk workload. KebijakanKernelmenandai CPU sebagaiisolcpusdan menetapkan flagrcu_nocb,nohz_full, danrcu_nocb_pollpada setiap CPU.spec.sysctls.NodeLevel: menentukan parametersysctlsyang dapat Anda konfigurasi secara global di node menggunakan operator Network Function. Parameter yang dapat dikonfigurasi adalah sebagai berikut:fs.inotify.max_user_instancesfs.inotify.max_user_watcheskernel.sched_rt_runtime_uskernel.core_patternnet.ipv4.tcp_wmemnet.ipv4.tcp_rmemnet.ipv4.tcp_slow_start_after_idlenet.ipv4.udp_rmem_minnet.ipv4.udp_wmem_minnet.ipv4.tcp_rmemnet.ipv4.tcp_wmemnet.core.rmem_maxnet.core.wmem_maxnet.core.rmem_defaultnet.core.wmem_defaultnet.netfilter.nf_conntrack_tcp_timeout_unacknowledgednet.netfilter.nf_conntrack_tcp_timeout_max_retransnet.sctp.auth_enablenet.sctp.sctp_memnet.ipv4.udp_memnet.ipv4.tcp_memnet.ipv4.tcp_slow_start_after_idlenet.sctp.auth_enablevm.max_map_count
Anda juga dapat mencakup parameter
sysctlsyang aman dan tidak aman ke Pod atau namespace tertentu menggunakan plugintuningContainer Networking Interface (CNI).
Resource NodeSystemConfigUpdate menyediakan kolom status umum hanya baca berikut:
status.lastReportTime: waktu terakhir status dilaporkan untuk antarmuka target.status.conditions.lastTransitionTime: waktu terbaru saat kondisi antarmuka berubah.status.conditions.observedGeneration: menunjukkan nilai.metadata.generationyang menjadi dasar kondisi awal.status.conditions.message: pesan informatif yang menjelaskan perubahan kondisi antarmuka.status.conditions.reason: ID terprogram yang menunjukkan alasan perubahan terakhir kondisi antarmuka.status.conditions.status: deskriptor status kondisi. Nilai yang valid adalahTrue,False, danUnknown.status.conditions.type: jenis kondisi dalam camelCase.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: networking.gke.io/v1
kind: NodeSystemConfigUpdate
metadata:
name: node-pool-1-config
namespace: default
spec:
nodeSelector:
baremetal.cluster.gke.io/node-pool: node-pool-1
networking.gke.io/worker-network-sriov.capable: true
sysctls:
nodeLevel:
"net.ipv4.udp_mem" : "12348035 16464042 24696060"
kubeletConfig:
topologyManagerPolicy: BestEffort
cpuManagerPolicy: Static
osConfig:
hugePagesConfig:
"TWO_MB": 0
"ONE_GB": 16
isolatedCpusPerSocket:
"0": 10
"1": 10
Resource SriovNetworkNodePolicy
Resource SriovNetworkNodePolicy memungkinkan Anda mengalokasikan grup fungsi virtual (VF) SR-IOV di mesin fisik Distributed Cloud dan membuat instance grup tersebut sebagai resource Kubernetes. Kemudian, Anda dapat menggunakan
resource ini dalam resource NetworkAttachmentDefinition.
Anda dapat memilih setiap VF target berdasarkan vendor dan ID perangkat PCIe, alamat perangkat PCIe, atau nama perangkat yang di-enumerasi Linux. Operator Jaringan SR-IOV mengonfigurasi setiap antarmuka jaringan fisik untuk menyediakan VF target. Hal ini mencakup mengupdate firmware antarmuka jaringan, mengonfigurasi driver kernel Linux, dan melakukan booting ulang mesin Distributed Cloud, jika perlu.
Untuk menemukan antarmuka jaringan yang tersedia di node, Anda dapat mencari
resource NetworkInterfaceState
di node tersebut dalam namespace nf-operator.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: sriovnetwork.k8s.cni.cncf.io/v1
kind: SriovNetworkNodePolicy
metadata:
name: mlnx6-p2-sriov-en2
namespace: sriov-network-operator
spec:
deviceType: netdevice
isRdma: true
mtu: 9000
nicSelector:
pfNames:
- enp134s0f1np1
nodeSelector:
edgecontainer.googleapis.com/network-sriov.capable: "true"
numVfs: 31
priority: 99
resourceName: mlnx6_p2_sriov_en2
Contoh sebelumnya membuat maksimum 31 VF dari port kedua pada
antarmuka jaringan bernama enp134s0f1np1 dengan nilai MTU 9000 (nilai maksimum
yang diizinkan). Gunakan label pemilih node
edgecontainer.googleapis.com/network-sriov.capable, yang ada di semua
node Distributed Cloud yang mendukung SR-IOV.
Untuk mengetahui informasi tentang cara menggunakan resource ini, lihat
SriovNetworkNodeState.
Resource SriovNetworkNodeState
Resource hanya baca SriovNetworkNodeState memungkinkan Anda mengkueri status penyediaan
resource SriovNetworkNodePolicy di node
Distributed Cloud. Fungsi ini menampilkan konfigurasi lengkap resource SriovNetworkNodePolicy di node serta daftar VF aktif di node. Kolom status.syncStatus
menunjukkan apakah semua resource SriovNetworkNodePolicy yang ditentukan untuk node
telah diterapkan dengan benar.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: sriovnetwork.k8s.cni.cncf.io/v1
kind: SriovNetworkNodeState
metadata:
name: MyNode1
namespace: sriov-network-operator
spec:
dpConfigVersion: "1969684"
interfaces:
- mtu: 9000
name: enp134s0f1np1
numVfs: 31
pciAddress: 0000:86:00.1
vfGroups:
- deviceType: netdevice
mtu: 9000
policyName: mlnx6-p2-sriov-en2
resourceName: mlnx6_p2_sriov_en2
vfRange: 0-30
status:
Status:
Interfaces:
Device ID: 1015
Driver: mlx5_core
Link Speed: 25000 Mb/s
Link Type: ETH
Mac: ba:16:03:9e:9c:87
Mtu: 9000
Name: eno1np0
Pci Address: 0000:1a:00.0
Vendor: 15b3
Device ID: 1015
Driver: mlx5_core
Link Speed: 25000 Mb/s
Link Type: ETH
Mac: ba:16:03:9e:9c:87
Mtu: 9000
Name: eno2np1
Pci Address: 0000:1a:00.1
Vendor: 15b3
Vfs:
- Vfs:
- deviceID: 101e
driver: mlx5_core
mac: c2:80:29:b5:63:55
mtu: 9000
name: enp134s0f1v0
pciAddress: 0000:86:04.1
vendor: 15b3
vfID: 0
- deviceID: 101e
driver: mlx5_core
mac: 7e:36:0c:82:d4:20
mtu: 9000
name: enp134s0f1v1
pciAddress: 0000:86:04.2
vendor: 15b3
vfID: 1
.. <omitted 29 other VFs here>
syncStatus: Succeeded
Untuk mengetahui informasi tentang cara menggunakan resource ini, lihat
SriovNetworkNodeState.
Resource NetworkAttachmentDefinition
Resource NetworkAttachmentDefinition memungkinkan Anda melampirkan
Pod Distributed Cloud ke satu atau beberapa jaringan
logis atau fisik di node Distributed Cloud Anda. Fitur ini memanfaatkan framework Multus-CNI dan plugin SRIOV-CNI.
Gunakan anotasi untuk mereferensikan nama resource SriovNetworkNodePolicy yang sesuai. Saat Anda membuat anotasi ini, lakukan hal berikut:
- Gunakan kunci
k8s.v1.cni.cncf.io/resourceName. - Gunakan awalan
gke.io/dalam nilainya, diikuti dengan nama resourceSriovNetworkNodePolicytarget.
Contoh berikut mengilustrasikan struktur resource:
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: sriov-net1
namespace: mynamespace
annotations:
k8s.v1.cni.cncf.io/resourceName: gke.io/mlnx6_p2_sriov_en2
spec:
config: '{
"type": "sriov",
"cniVersion": "0.3.1",
"name": "sriov-network",
"ipam": {
"type": "host-local",
"subnet": "10.56.217.0/24",
"routes": [{
"dst": "0.0.0.0/0"
}],
"gateway": "10.56.217.1"
}
}'
Mengupgrade resource NetworkAttachmentDefinition ke Distributed Cloud 1.4.0
Distributed Cloud versi 1.4.0 menggantikan antarmuka bond0
dengan antarmuka baru bernama gdcenet0. Antarmuka gdcenet0 memungkinkan Anda menggunakan kartu antarmuka jaringan (NIC) pengelolaan host di setiap mesin Distributed Cloud dalam rak untuk workload Anda, sekaligus menjaga traffic jaringan bidang kontrol dan pengelolaan Distributed Cloud tetap terpisah sepenuhnya. Untuk memanfaatkan fungsi ini, selesaikan langkah-langkah di bagian ini untuk mengonfigurasi ulang resource NetworkAttachmentDefinition Anda, lalu ikuti petunjuk di
Mengonfigurasi jaringan Distributed Cloud
untuk menyediakan jaringan dan subnetwork yang sesuai.
Untuk setiap cluster Distributed Cloud tempat Anda telah men-deploy satu atau beberapa resource NetworkAttachmentDefinition, aturan migrasi berikut berlaku:
- Untuk setiap resource
NetworkAttachmentDefinitionbaru, gunakangdcenet0, bukanbond0sebagai nilai kolommaster. Jika Anda menerapkan resource yang menggunakanbond0atau nilai kosong untuk kolom ini, Distributed Cloud akan mengganti nilai dengangdcenet0, lalu menyimpan dan menerapkan resource ke cluster. - Untuk setiap resource
NetworkAttachmentDefinitionyang ada, gantibond0dengangdcenet0sebagai nilai kolommaster, lalu terapkan kembali resource ke cluster untuk memulihkan konektivitas jaringan penuh ke Pod yang terpengaruh.
Untuk mengetahui informasi tentang cara menggunakan resource ini, lihat
NetworkAttachmentDefinition.
Mengonfigurasi antarmuka sekunder di Pod menggunakan VF SR-IOV
Setelah mengonfigurasi resource SriovNetworkNodePolicy dan resource NetworkAttachmentDefinition yang sesuai, Anda dapat mengonfigurasi antarmuka jaringan sekunder di Pod Distributed Cloud dengan menggunakan fungsi virtual SR-IOV.
Untuk melakukannya, tambahkan anotasi ke definisi Distributed Cloud Pod Anda sebagai berikut:
- Kunci:
k8s.v1.cni.cncf.io/networks - Nilai:
nameSpace/<NetworkAttachmentDefinition1,nameSpace/NetworkAttachmentDefinition2...
Contoh berikut mengilustrasikan anotasi ini:
apiVersion: v1
kind: Pod
metadata:
name: sriovpod
annotations:
k8s.v1.cni.cncf.io/networks: mynamespace/sriov-net1
spec:
containers:
- name: sleeppodsriov
command: ["sh", "-c", "trap : TERM INT; sleep infinity & wait"]
image: alpine
securityContext:
capabilities:
add:
- NET_ADMIN
Mengonfigurasi antarmuka sekunder di Pod menggunakan driver MacVLAN
Distributed Cloud juga mendukung pembuatan antarmuka jaringan sekunder di Pod menggunakan driver MacVLAN. Hanya antarmuka gdcenet0 yang mendukung konfigurasi ini dan hanya pada Pod yang menjalankan workload yang dikontainerkan.
Untuk mengonfigurasi antarmuka agar menggunakan driver MacVLAN:
Konfigurasi resource
NetworkAttachmentDefinitionseperti yang ditunjukkan dalam contoh berikut:apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: macvlan-b400-1 annotations: networking.gke.io/gdce-vlan-id: 400 spec: config: '{ "type": "macvlan", "master": "gdcenet0.400", "ipam": { "type": "static", "addresses": [ { "address": "192.168.100.20/27", "gateway": "192.168.100.1" } ] ... } }'Tambahkan anotasi ke definisi Pod Distributed Cloud Anda sebagai berikut:
apiVersion: v1 kind: Pod metadata: name: macvlan-testpod1 annotations: k8s.v1.cni.cncf.io/networks: macvlan-b400-1
Mengonfigurasi antarmuka sekunder di Pod menggunakan multi-jaringan Distributed Cloud
Distributed Cloud mendukung pembuatan antarmuka jaringan sekunder di Pod dengan menggunakan fitur multi-jaringannya. Untuk melakukannya, selesaikan langkah-langkah berikut:
Konfigurasi resource
Network. Contoh:apiVersion: networking.gke.io/v1 kind: Network metadata: name: vlan200-network spec: type: L2 nodeInterfaceMatcher: interfaceName: vlan200-interface gateway4: 10.53.0.1Tambahkan anotasi ke definisi Pod Distributed Cloud Anda sebagai berikut:
apiVersion: v1 kind: Pod metadata: name: myPod annotations: networking.gke.io/interfaces: [{"interfaceName":"eth1","network":"vlan200-network"}] networking.gke.io/default-interface: eth1 ...Langkah berikutnya