Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan CNI untuk node hybrid
Cilium adalah Container Networking Interface (CNI) yang AWS didukung untuk Amazon EKS Hybrid Nodes. Anda harus menginstal CNI untuk node hybrid agar siap melayani beban kerja. Node hibrida muncul dengan status Not Ready
sampai CNI berjalan. Anda dapat mengelola CNI dengan alat pilihan Anda seperti Helm. Petunjuk pada halaman ini mencakup manajemen siklus hidup Cilium (instal, tingkatkan, hapus). LihatIkhtisar Cilium Ingress dan Cilium Gateway,Jenis layanan LoadBalancer, dan Konfigurasikan Kebijakan Jaringan Kubernetes untuk node hybrid untuk cara mengonfigurasi Cilium untuk kebijakan ingress, load balancing, dan network.
Cilium tidak didukung oleh AWS saat berjalan di node di AWS Cloud. Amazon VPC CNI tidak kompatibel dengan node hybrid dan VPC CNI dikonfigurasi dengan anti-afinitas untuk label. eks.amazonaws.com/compute-type: hybrid
Dokumentasi Calico sebelumnya di halaman ini telah dipindahkan ke EKS Hybrid Examples Repository
Kompatibilitas versi
Versi v1.17.x
cilium didukung untuk EKS Hybrid Nodes untuk setiap versi Kubernetes yang didukung di Amazon EKS.
Lihat dukungan versi Kubernetes untuk versi Kubernetes yang didukung oleh Amazon EKS. EKS Hybrid Nodes memiliki dukungan versi Kubernetes yang sama dengan cluster Amazon EKS dengan node cloud.
Kemampuan yang didukung
AWS memelihara build Cilium untuk EKS Hybrid Nodes yang didasarkan pada proyek Cilium open source.
AWS memberikan dukungan teknis untuk konfigurasi default dari kemampuan Cilium berikut untuk digunakan dengan EKS Hybrid Nodes. Jika Anda berencana untuk menggunakan fungsionalitas di luar cakupan AWS dukungan, disarankan untuk mendapatkan dukungan komersial alternatif untuk Cilium atau memiliki keahlian internal untuk memecahkan masalah dan berkontribusi perbaikan pada proyek Cilium.
Fitur Cilium | Didukung oleh AWS |
---|---|
Kesesuaian jaringan Kubernetes |
Ya |
Konektivitas cluster inti |
Ya |
Keluarga IP |
IPv4 |
Manajemen Siklus Hidup |
Helm |
Mode Jaringan |
Enkapsulasi VXLAN |
Manajemen Alamat IP (IPAM) |
Lingkup Cluster Cilium IPAM |
Kebijakan Jaringan |
Kebijakan Jaringan Kubernetes |
Protokol Gerbang Perbatasan (BGP) |
Pesawat Kontrol Cilium BGP |
Masuknya Kubernetes |
Masuknya Cilium, Gerbang Cilium |
LoadBalancer Alokasi IP Layanan |
Load Balancer Cilium IPAM |
Iklan Alamat LoadBalancer IP Layanan |
Pesawat Kontrol Cilium BGP |
penggantian kube-proxy |
Ya |
Pertimbangan silia
-
Repositori Helm - AWS menjadi tuan rumah bagan Cilium Helm di Amazon Elastic Container Registry Public (Amazon ECR Public) di Amazon EKS Cilium/Cilium.
Anda dapat menggunakan URI berikut dalam helm
perintah Anda untuk menggunakan repositori ini:.oci://public.ecr.aws/eks/cilium/cilium:1.17.6-0
Perintah dalam topik ini menggunakan repositori ini. Perhatikan bahwahelm repo
perintah tertentu tidak valid untuk repositor Helm di Amazon ECR Public, jadi Anda tidak dapat merujuk ke repositori ini dari nama repo Helm lokal. Sebagai gantinya, gunakan URI lengkap di sebagian besar perintah. -
Secara default, Cilium dikonfigurasi untuk berjalan dalam mode overlay/tunnel dengan VXLAN sebagai metode enkapsulasi.
Mode ini memiliki persyaratan paling sedikit pada jaringan fisik yang mendasarinya. -
Secara default, Cilium menyamarkan
alamat IP sumber dari semua lalu lintas pod meninggalkan cluster ke alamat IP node. Jika Anda menonaktifkan masquerading, maka pod Anda CIDRs harus dapat dirutekan di jaringan lokal Anda. -
Jika Anda menjalankan webhook pada node hybrid, pod Anda CIDRs harus dapat dirutekan di jaringan lokal Anda. Jika pod CIDRs Anda tidak dapat dirutekan di jaringan lokal, maka disarankan untuk menjalankan webhook di node cloud di cluster yang sama. Lihat Konfigurasikan webhook untuk node hybrid dan Siapkan jaringan untuk node hybrid untuk informasi lebih lanjut.
-
AWS merekomendasikan penggunaan fungsionalitas BGP bawaan Cilium untuk membuat pod Anda CIDRs dapat dirutekan di jaringan lokal Anda. Untuk informasi lebih lanjut tentang cara mengkonfigurasi Cilium BGP dengan node hybrid, lihat. Konfigurasikan Cilium BGP untuk node hybrid
-
IP Address Management (IPAM) default di Cilium disebut Cluster Scope
, di mana operator Cilium mengalokasikan alamat IP untuk setiap node berdasarkan pod yang dikonfigurasi pengguna. CIDRs
Instal Cilium pada node hybrid
Prosedur
-
Buat file YAMM bernama
cilium-values.yaml
. Contoh berikut mengonfigurasi Cilium untuk berjalan hanya pada node hibrida dengan menetapkan afinitas untukeks.amazonaws.com/compute-type: hybrid
label untuk agen dan operator Cilium.-
Konfigurasikan
clusterPoolIpv4PodCIDRList
dengan pod yang sama yang CIDRs Anda konfigurasikan untuk jaringan pod jarak jauh kluster EKS Anda. Misalnya,10.100.0.0/24
. Operator Cilium mengalokasikan irisan alamat IP dari dalam ruang IP yang dikonfigurasi.clusterPoolIpv4PodCIDRList
CIDR pod Anda tidak boleh tumpang tindih dengan node CIDR lokal, CIDR VPC Anda, atau CIDR layanan Kubernetes Anda. -
Konfigurasikan
clusterPoolIpv4MaskSize
berdasarkan pod yang dibutuhkan per node. Misalnya,25
untuk ukuran segmen /25 128 pod per node. -
Jangan mengubah
clusterPoolIpv4PodCIDRList
atauclusterPoolIpv4MaskSize
setelah menerapkan Cilium di klaster Anda, lihat Memperluas kumpulan klaster untuk informasi selengkapnya. -
Jika Anda menjalankan Cilium dalam mode penggantian kube-proxy, atur
kubeProxyReplacement: "true"
nilai Helm Anda dan pastikan Anda tidak memiliki penerapan kube-proxy yang berjalan pada node yang sama dengan Cilium. -
Contoh di bawah ini menonaktifkan proxy Envoy Layer 7 (L7) yang digunakan Cilium untuk kebijakan dan ingress jaringan L7. Untuk informasi selengkapnya, lihat Konfigurasikan Kebijakan Jaringan Kubernetes untuk node hybrid dan Ikhtisar Cilium Ingress dan Cilium Gateway.
-
Contoh di bawah ini mengonfigurasi
loadBalancer.serviceTopology
:true
agar Distribusi Lalu Lintas Layanan berfungsi dengan benar jika Anda mengonfigurasinya untuk layanan Anda. Untuk informasi selengkapnya, lihat Konfigurasikan Distribusi Lalu Lintas Layanan. -
Untuk daftar lengkap nilai Helm untuk Cilium, lihat referensi Helm
di dokumentasi Cilium. affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid ipam: mode: cluster-pool operator: clusterPoolIPv4MaskSize:
25
clusterPoolIPv4PodCIDRList: -POD_CIDR
loadBalancer: serviceTopology: true operator: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid unmanagedPodWatcher: restart: false loadBalancer: serviceTopology: true envoy: enabled: false kubeProxyReplacement: "false"
-
-
Instal Cilium di cluster Anda.
-
Ganti
CILIUM_VERSION
dengan versi Cilium (misalnya1.17.5
). Disarankan untuk menggunakan versi patch terbaru untuk versi minor Cilium. Anda dapat menemukan rilis patch terbaru yang tersedia di repositori Helm lokal Anda dengan perintah.helm search repo cilium/cilium --versions
-
Jika Anda menggunakan file kubeconfig tertentu, gunakan
--kubeconfig
flag dengan perintah Helm install.helm install cilium oci://public.ecr.aws/eks/cilium/cilium \ --version
CILIUM_VERSION
\ --namespace kube-system \ --values cilium-values.yaml
-
-
Konfirmasikan instalasi Cilium Anda berhasil dengan perintah berikut. Anda akan melihat
cilium-operator
penerapan dancilium-agent
berjalan pada setiap node hybrid Anda. Selain itu, node hybrid Anda sekarang harus memiliki statusReady
. Untuk informasi tentang cara mengonfigurasi Cilium BGP untuk mengiklankan pod Anda ke jaringan lokal, CIDRs lanjutkan ke. Konfigurasikan Cilium BGP untuk node hybridkubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE cilium-jjjn8 1/1 Running 0 11m cilium-operator-d4f4d7fcb-sc5xn 1/1 Running 0 11m
kubectl get nodes
NAME STATUS ROLES AGE VERSION mi-04a2cf999b7112233 Ready <none> 19m v1.31.0-eks-a737599
Tingkatkan Cilium pada node hibrida
Sebelum memutakhirkan penerapan Cilium Anda, tinjau dokumentasi pemutakhiran Cilium dan catatan pemutakhiran
-
Pastikan Anda telah menginstal
helm
CLI di lingkungan baris perintah Anda. Lihat dokumentasi Helmuntuk petunjuk instalasi. -
Jalankan pemeriksaan pra-penerbangan peningkatan Cilium. Ganti
CILIUM_VERSION
dengan versi Cilium target Anda. Kami menyarankan Anda menjalankan versi patch terbaru untuk versi minor Cilium Anda. Anda dapat menemukan rilis patch terbaru untuk rilis Cilium minor tertentu di bagian Stable Releasesdari dokumentasi Cilium. helm install cilium-preflight oci://public.ecr.aws/eks/cilium/cilium --version CILIUM_VERSION \ --namespace=kube-system \ --set preflight.enabled=true \ --set agent=false \ --set operator.enabled=false
-
Setelah menerapkan
cilium-preflight.yaml
, pastikan jumlah pod sama dengan jumlahREADY
pod Cilium yang berjalan.kubectl get ds -n kube-system | sed -n '1p;/cilium/p'
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE cilium 2 2 2 2 2 <none> 1h20m cilium-pre-flight-check 2 2 2 2 2 <none> 7m15s
-
Setelah jumlah pod READY sama, pastikan penerapan pra-penerbangan Cilium juga ditandai sebagai READY 1/1. Jika menunjukkan READY 0/1, lihat bagian Validasi CNP
dan selesaikan masalah dengan penerapan sebelum melanjutkan dengan peningkatan. kubectl get deployment -n kube-system cilium-pre-flight-check -w
NAME READY UP-TO-DATE AVAILABLE AGE cilium-pre-flight-check 1/1 1 0 12s
-
Hapus preflight
helm uninstall cilium-preflight --namespace kube-system
-
Sebelum menjalankan
helm upgrade
perintah, pertahankan nilai untuk penyebaran Anda diexisting-cilium-values.yaml
atau gunakan opsi baris--set
perintah untuk pengaturan Anda saat Anda menjalankan perintah upgrade. Operasi pemutakhiran menimpa Cilium ConfigMap, jadi sangat penting bahwa nilai konfigurasi Anda diteruskan saat Anda memutakhirkan.helm get values cilium --namespace kube-system -o yaml > existing-cilium-values.yaml
-
Selama operasi cluster normal, semua komponen Cilium harus menjalankan versi yang sama. Langkah-langkah berikut menjelaskan cara memutakhirkan semua komponen dari satu rilis stabil ke rilis stabil selanjutnya. Saat memutakhirkan dari satu rilis minor ke rilis minor lainnya, disarankan untuk memutakhirkan ke rilis patch terbaru untuk versi minor Cilium yang ada terlebih dahulu. Untuk meminimalkan gangguan, atur
upgradeCompatibility
opsi ke versi Cilium awal yang Anda instal di cluster ini.helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium --version
CILIUM_VERSION
\ --namespace kube-system \ --set upgradeCompatibility=1.X
\ -f existing-cilium-values.yaml -
(Opsional) Jika Anda perlu mengembalikan upgrade Anda karena masalah, jalankan perintah berikut.
helm history cilium --namespace kube-system helm rollback cilium [REVISION] --namespace kube-system
Hapus Cilium dari node hibrida
-
Jalankan perintah berikut untuk menghapus semua komponen Cilium dari cluster Anda. Catatan, menghapus instalasi CNI dapat memengaruhi kesehatan node dan pod dan tidak boleh dilakukan pada cluster produksi.
helm uninstall cilium --namespace kube-system
Antarmuka dan rute yang dikonfigurasi oleh Cilium tidak dihapus secara default saat CNI dihapus dari cluster, lihat GitHub masalah
untuk informasi selengkapnya. -
Untuk membersihkan file konfigurasi dan sumber daya on-disk, jika Anda menggunakan direktori konfigurasi standar, Anda dapat menghapus file seperti yang ditunjukkan oleh
cni-uninstall.sh
skripdi repositori Cilium pada. GitHub -
Untuk menghapus Definisi Sumber Daya Kustom Cilium (CRDs) dari cluster Anda, Anda dapat menjalankan perintah berikut.
kubectl get crds -oname | grep "cilium" | xargs kubectl delete