Konfigurasikan CNI untuk node hybrid - Amazon EKS

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. Untuk menerima dukungan dari AWS Cilium, Anda harus menggunakan build Cilium yang AWS dikelola dan versi Cilium yang didukung.

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

Instal Cilium pada node hybrid

Prosedur

  1. Buat file YAMM bernamacilium-values.yaml. Contoh berikut mengonfigurasi Cilium untuk berjalan hanya pada node hibrida dengan menetapkan afinitas untuk eks.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 atau clusterPoolIpv4MaskSize 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 mengonfigurasiloadBalancer.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"
  2. 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
  3. Konfirmasikan instalasi Cilium Anda berhasil dengan perintah berikut. Anda akan melihat cilium-operator penerapan dan cilium-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 hybrid

    kubectl 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 dengan cermat untuk memahami perubahan dalam versi Cilium target.

  1. Pastikan Anda telah menginstal helm CLI di lingkungan baris perintah Anda. Lihat dokumentasi Helm untuk petunjuk instalasi.

  2. 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 Releases dari 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
  3. Setelah menerapkancilium-preflight.yaml, pastikan jumlah pod sama dengan jumlah READY 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
  4. 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
  5. Hapus preflight

    helm uninstall cilium-preflight --namespace kube-system
  6. Sebelum menjalankan helm upgrade perintah, pertahankan nilai untuk penyebaran Anda di existing-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
  7. 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
  8. (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

  1. 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.

  2. 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.shskrip di repositori Cilium pada. GitHub

  3. 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