View a markdown version of this page

Praktik Terbaik untuk Jaringan - Amazon EKS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Praktik Terbaik untuk Jaringan

Tip

Jelaj ahi praktik terbaik melalui lokakarya Amazon EKS.

Sangat penting untuk memahami jaringan Kubernetes untuk mengoperasikan cluster dan aplikasi Anda secara efisien. Jaringan pod, juga disebut jaringan cluster, adalah pusat jaringan Kubernetes. Kubernetes mendukung plugin Con tainer Network Interface (CNI) untuk jaringan cluster.

Amazon EKS secara resmi mendukung plugin CNI Amazon Virtual Private Cloud (VPC) untuk mengimplementasikan jaringan Kubernetes Pod. VPC CNI menyediakan integrasi asli dengan AWS VPC dan bekerja dalam mode underlay. Dalam mode underlay, Pod dan host terletak di lapisan jaringan yang sama dan berbagi namespace jaringan. Alamat IP Pod konsisten dari perspektif cluster dan VPC.

Panduan ini memperkenalkan Amazon VPC Container Network Interface (VPC CNI) dalam konteks jaringan cluster Kubernetes. VPC CNI adalah plugin jaringan default yang didukung oleh EKS dan karenanya menjadi fokus panduan ini. VPC CNI sangat dapat dikonfigurasi untuk mendukung berbagai kasus penggunaan. Panduan ini selanjutnya mencakup bagian khusus tentang berbagai kasus penggunaan CNI VPC, mode operasi, sub-komponen, diikuti oleh rekomendasi.

Amazon EKS menjalankan Kubernetes hulu dan bersertifikat sesuai Kubernetes. Meskipun Anda dapat menggunakan plugin CNI alternatif, panduan ini tidak memberikan rekomendasi untuk mengelola CNI alternatif. Periksa dokumentasi EKS Alternate CNI untuk daftar mitra dan sumber daya untuk mengelola CNI alternatif secara efektif.

Model Jaringan Kubernetes

Kubernetes menetapkan persyaratan berikut pada jaringan cluster:

  • Pod yang dijadwalkan pada node yang sama harus dapat berkomunikasi dengan Pod lain tanpa menggunakan NAT (Network Address Translation).

  • Semua daemon sistem (proses latar belakang, misalnya, kubelet) yang berjalan pada node tertentu dapat berkomunikasi dengan Pod yang berjalan pada node yang sama.

  • Pod yang menggunakan jaringan host harus dapat menghubungi semua Pod lain di semua node lain tanpa menggunakan NAT.

Lihat model jaringan Kubernetes untuk detail tentang apa yang Kubernetes harapkan dari implementasi jaringan yang kompatibel. Gambar berikut menggambarkan hubungan antara ruang nama jaringan Pod dan namespace jaringan host.

ilustrasi jaringan host dan 2 ruang nama jaringan pod

Antarmuka Jaringan Kontainer (CNI)

Kubernetes mendukung spesifikasi CNI dan plugin untuk mengimplementasikan model jaringan Kubernetes. CNI terdiri dari spesifikasi (versi saat ini 1.0.0) dan pustaka untuk menulis plugin untuk mengkonfigurasi antarmuka jaringan dalam wadah, bersama dengan sejumlah plugin yang didukung. CNI hanya memperhatikan konektivitas jaringan kontainer dan menghapus sumber daya yang dialokasikan ketika wadah dihapus.

Plugin CNI diaktifkan dengan meneruskan kubelet opsi baris perintah--network-plugin=cni. Kubelet membaca file dari --cni-conf-dir (default etc/cni /net.d) dan menggunakan konfigurasi CNI dari file tersebut untuk mengatur jaringan setiap Pod. File konfigurasi CNI harus sesuai dengan spesifikasi CNI (minimum v0.4.0) dan plugin CNI yang diperlukan yang dirujuk oleh konfigurasi harus ada di --cni-bin-dir direktori (default /bin). opt/cni Jika ada beberapa file konfigurasi CNI di direktori, kubelet menggunakan file konfigurasi yang muncul pertama dengan nama dalam urutan leksikografi.

CNI Awan Pribadi Virtual Amazon (VPC)

AWS-provided VPC CNI adalah add-on jaringan default untuk kluster EKS. Add-on VPC CNI diinstal secara default saat Anda menyediakan cluster EKS. VPC CNI berjalan pada node pekerja Kubernetes. Add-on VPC CNI terdiri dari biner CNI dan plugin Manajemen Alamat IP (ipamd). CNI menetapkan alamat IP dari jaringan VPC ke Pod. IPAMD mengelola AWS Elastic Networking Interfaces (ENI) ke setiap node Kubernetes dan mempertahankan kumpulan IP yang hangat. VPC CNI menyediakan opsi konfigurasi untuk pra-alokasi ENI dan alamat IP untuk waktu startup Pod yang cepat. Lihat Amazon VPC CNI untuk praktik terbaik manajemen plugin yang direkomendasikan.

Amazon EKS menyarankan Anda menentukan subnet di setidaknya dua zona ketersediaan saat membuat cluster. Amazon VPC CNI mengalokasikan alamat IP ke Pod dari subnet node. Kami sangat menyarankan untuk memeriksa subnet untuk alamat IP yang tersedia. Harap pertimbangkan rekomendasi VPC dan Subnet sebelum menerapkan klaster EKS.

Amazon VPC CNI mengalokasikan kumpulan ENI hangat dan alamat IP sekunder dari subnet yang terpasang ke ENI utama node. Mode VPC CNI ini disebut mode IP sekunder. Jumlah alamat IP dan karenanya jumlah Pod (kepadatan Pod) ditentukan oleh jumlah ENI dan alamat IP per ENI (batas) sebagaimana ditentukan oleh jenis instans. Mode sekunder adalah default dan berfungsi dengan baik untuk cluster kecil dengan tipe instance yang lebih kecil. Harap pertimbangkan untuk menggunakan mode awalan jika Anda mengalami tantangan kepadatan pod. Anda juga dapat meningkatkan alamat IP yang tersedia pada node untuk Pod dengan menetapkan awalan ke ENI.

Amazon VPC CNI secara native terintegrasi dengan AWS VPC dan memungkinkan pengguna menerapkan praktik terbaik jaringan AWS VPC dan keamanan yang ada untuk membangun cluster Kubernetes. Ini termasuk kemampuan untuk menggunakan log aliran VPC, kebijakan routing VPC, dan grup keamanan untuk isolasi lalu lintas jaringan. Secara default, Amazon VPC CNI menerapkan grup keamanan yang terkait dengan ENI utama pada node ke Pod. Pertimbangkan untuk mengaktifkan grup keamanan untuk Pod saat Anda ingin menetapkan aturan jaringan yang berbeda untuk Pod.

Secara default, VPC CNI menetapkan alamat IP ke Pod dari subnet yang ditetapkan ke ENI utama dari sebuah node. Adalah umum untuk mengalami kekurangan alamat IPv4 saat menjalankan cluster besar dengan ribuan beban kerja. AWS VPC memungkinkan Anda memperluas IP yang tersedia dengan menetapkan CIDR sekunder untuk mengatasi kehabisan blok CIDR IPv4. AWS VPC CNI memungkinkan Anda menggunakan kisaran CIDR subnet yang berbeda untuk Pod. Fitur VPC CNI ini disebut jaringan khusus. Anda dapat mempertimbangkan untuk menggunakan jaringan khusus dengan CIDR dari rent 100.64.0.0/10 ang (ruang alamat bersama, RFC 6598) untuk EKS. Ini secara efektif memungkinkan Anda untuk menciptakan lingkungan di mana Pod tidak lagi menggunakan alamat IP RFC1918 apa pun dari VPC Anda.

Jaringan khusus adalah salah satu opsi untuk mengatasi masalah kehabisan alamat IPv4, tetapi memerlukan overhead operasional. Kami merekomendasikan klaster IPv6 melalui jaringan khusus untuk mengatasi masalah ini. Secara khusus, kami sarankan untuk bermigrasi ke cluster IPv6 jika Anda telah benar-benar kehabisan semua ruang alamat IPv4 yang tersedia untuk VPC Anda. Evaluasi rencana organisasi Anda untuk mendukung IPv6, dan pertimbangkan apakah investasi di IPv6 mungkin memiliki nilai jangka panjang yang lebih besar.

Dukungan EKS untuk IPv6 difokuskan pada pemecahan masalah kelelahan IP yang disebabkan oleh ruang alamat IPv4 yang terbatas. Menanggapi masalah pelanggan dengan kehabisan IPv4, EKS telah memprioritaskan Pod daripada IPv6-only Pod dual-stack. Artinya, Pod mungkin dapat mengakses sumber daya IPv4, tetapi mereka tidak diberi alamat IPv4 dari rentang VPC CIDR. VPC CNI menetapkan alamat IPv6 ke Pod dari blok CIDR VPC IPv6 yang dikelola AWS.

Kalkulator Subnet

Proyek ini mencakup Dokumen Excel Kalkulator Subnet. Dokumen kalkulator ini mensimulasikan konsumsi alamat IP dari beban kerja tertentu di bawah opsi konfigurasi ENI yang berbeda, seperti WARM_IP_TARGET danWARM_ENI_TARGET. Dokumen ini mencakup dua lembar, yang pertama untuk mode Warm ENI, dan yang kedua untuk mode IP Warm. Tinjau panduan VPC CNI untuk informasi lebih lanjut tentang mode ini.

Masukan:

  • Ukuran Subnet CIDR

  • Target ENI H angat atau Target IP Hangat

  • Daftar contoh

    • jenis, jumlah, dan jumlah pod beban kerja yang dijadwalkan per instans

Keluaran:

  • Jumlah total pod yang dihosting

  • Jumlah IP Subnet yang dikonsumsi

  • Jumlah IP Subnet yang tersisa

  • Rincian Tingkat Instans

    • Jumlah Warm IPs/ENIs per instance

    • Jumlah Aktif IPs/ENIs per instans