Container Service for Kubernetes (ACK) menyediakan jaringan kontainer yang stabil dan berperforma tinggi dengan mengintegrasikan model jaringan Kubernetes ke dalam layanan jaringan Alibaba Cloud. Topik ini menjelaskan istilah penting dalam jaringan klaster ACK, seperti Container Network Interface (CNI), Service, Ingress, dan penemuan layanan berbasis DNS. Memahami istilah-istilah ini akan membantu Anda mengoptimalkan model penyebaran aplikasi dan metode akses jaringan.
Plugin CNI
Kubernetes menggunakan plugin CNI untuk mengaktifkan dan menstandarkan komunikasi jaringan antar kontainer:
Status pod dalam jaringan kontainer bergantung pada fase siklus hidupnya. Misalnya, saat pod dibuat, ia ditambahkan ke jaringan kontainer; ketika dihapus, ia dikeluarkan dari jaringan tersebut.
Setiap pod dalam jaringan kontainer diberi alamat IP unik sebagai identifikasi.
Pod dapat berkomunikasi dengan titik akhir di dalam maupun di luar klaster.
Plugin CNI bertanggung jawab atas implementasi jaringan kontainer. Plugin CNI yang digunakan menentukan cara alokasi alamat IP ke pod, penggunaan overlay network, penerusan lalu lintas dalam klaster, serta pengelolaan akses ke pod. Beberapa plugin CNI open source populer meliputi Calico, Flannel, dan Cilium.
ACK menyediakan dua plugin CNI: Terway dan Flannel, yang menawarkan fitur berbeda. Bagian berikut menjelaskan fitur-fitur yang disediakan oleh Terway dan Flannel. Untuk mempelajari cara memilih antara keduanya saat membuat klaster ACK, lihat topik Perbandingan antara Terway dan Flannel.
Setelah klaster dibuat, plugin jaringan yang digunakan tidak dapat diubah.
Terway
Terway adalah plugin CNI yang dikembangkan oleh Alibaba Cloud. Instance ECS dalam klaster ACK menggunakan elastic network interfaces (ENIs) untuk mengaktifkan komunikasi jaringan. Terway menetapkan ENI pada node ke pod untuk membangun koneksi jaringan antar pod. Dengan demikian, pod dalam klaster yang menggunakan plugin Terway terhubung langsung ke virtual private cloud (VPC) tempat klaster berada. Mode Terway meningkatkan efisiensi komunikasi karena tidak memerlukan teknologi tunneling seperti Virtual Extensible Local Area Network (VXLAN) untuk mengenkapsulasi paket. Terway ideal untuk klaster berskala besar dan skenario dengan persyaratan performa jaringan dan kontrol akses yang tinggi.
Saat membuat klaster ACK dengan plugin Terway, Anda dapat mengonfigurasinya untuk berjalan dalam mode ENI inklusif atau eksklusif. Berikut perbandingan kedua mode tersebut dari berbagai sudut pandang:
Dari segi alokasi IP: Dalam mode ENI eksklusif, setiap pod mendapat ENI terpisah, memberikan performa jaringan optimal. Dalam mode ENI inklusif, ENI dibagi oleh beberapa pod, meningkatkan jumlah pod yang dapat ditempatkan pada node.
Dari segi akselerasi jaringan: Mode ENI inklusif mendukung akselerasi DataPath V2. Setelah diaktifkan, Terway mengadopsi jalur pengalihan lalu lintas yang lebih cepat untuk komunikasi jaringan.
Dari segi kontrol akses: Baik mode ENI inklusif maupun eksklusif mendukung konfigurasi alamat IP tetap, grup keamanan terpisah, dan vSwitches untuk pod. Selain itu, mode ENI eksklusif mendukung kontrol akses melalui kebijakan jaringan Kubernetes.
Flannel
Flannel adalah plugin CNI open source yang menggunakan teknologi virtualisasi jaringan seperti VXLAN untuk membangun overlay network bagi pod. Flannel mudah dikonfigurasi dan digunakan. Namun, dibandingkan dengan Terway, Flannel memiliki kemampuan performa jaringan dan kontrol akses yang lebih rendah karena tidak memerlukan NAT gateway. Selain itu, Flannel tidak mendukung klaster besar dan cocok untuk klaster dengan tidak lebih dari 1.000 node. Jika Anda memiliki persyaratan rendah terhadap performa jaringan dan kontrol akses, atau ingin segera membuat dan menggunakan klaster, kami sarankan menggunakan plugin Flannel.
Untuk informasi lebih rinci tentang perbandingan antara Terway dan Flannel, lihat Perbandingan antara Terway dan Flannel.
Services
Aplikasi berbasis cloud-native memerlukan iterasi yang gesit dan penskalaan yang cepat. Pod merupakan sumber daya sementara dalam Kubernetes dan dapat diganti. Saat pod dihapus atau diganti, sumber daya jaringan yang relevan berubah. Oleh karena itu, diperlukan titik masuk yang stabil dan konsisten ke pod. Dalam Kubernetes, Service berfungsi sebagai titik masuk ke sekelompok pod dan mengimplementasikan load balancing untuk pod tersebut. Berikut cara kerja Service:
Sebuah Service dikaitkan dengan pod yang sesuai dengan pemilih Service. Sistem memetakan alamat IP dan port Service ke alamat IP dan port pod.
Saat pod backend dari Service diperbarui, Service secara otomatis memperbarui aturan pengalihan lalu lintas untuk memastikan lalu lintas dapat diteruskan ke pod yang telah diperbarui.
Klaster ACK mendukung jenis-jenis Service berikut: ClusterIP, NodePort, LoadBalancer, Headless, dan ExternalName. Anda dapat memilih jenis Service yang berbeda untuk mengaktifkan akses ke pod dari dalam klaster, dari luar klaster, atau dari Internet. Untuk informasi lebih lanjut, lihat Pengelolaan Service.
Ingresses
Dibandingkan dengan Service yang menyediakan load balancing di Lapisan 4, Ingress mengelola akses eksternal ke Service dalam klaster di Lapisan 7. Sebuah Ingress menyediakan titik masuk terpusat ke beberapa Service. Anda dapat menggunakan Ingress untuk mengonfigurasi aturan pengalihan Lapisan 7 yang berbeda, seperti meneruskan permintaan ke Service berdasarkan nama domain atau jalur. Untuk informasi lebih lanjut, lihat Pengelolaan Ingress.
Penemuan layanan berbasis DNS
ACK menggunakan DNS untuk mengimplementasikan penemuan layanan. Misalnya, nama sebuah Service dapat diselesaikan menjadi alamat IP klaster dari Service tersebut, memungkinkan Anda mengakses pod backend dari Service. Anda dapat menggunakan fitur penemuan layanan berbasis DNS untuk mengakses aplikasi melalui nama domain tanpa memedulikan alamat IP atau lingkungan penyebaran. Untuk informasi lebih lanjut tentang komponen DNS, lihat Penemuan Layanan Berbasis DNS.