Ketika Anda perlu membuat banyak pod dengan cepat, kecepatan penskalaan node ECS mungkin tidak mencukupi. Menyediakan node ECS tambahan juga menyebabkan pemborosan sumber daya. Node virtual mengatasi hal ini dengan memungkinkan Anda menjadwalkan pod untuk berjalan sebagai instans Elastic Container Instance (ECI) tanpa perlu menyediakan atau memelihara kolam sumber daya tetap, sehingga memberikan elastisitas dan mengurangi biaya sumber daya.
Mengapa menggunakan node virtual
Apa itu node virtual
Di kluster ACK, node merupakan unit dasar yang menyediakan sumber daya komputasi dan penyimpanan untuk menjalankan beban kerja. Sebagian besar kluster ACK memiliki setidaknya satu kelompok node ECS. Saat sebuah pod dibuat, kubelet menjadwalkannya ke node ECS dalam kelompok node tersebut. Mode penjadwalan ini ideal untuk aplikasi dengan lalu lintas yang stabil. Namun, mode ini kesulitan menghadapi lonjakan lalu lintas karena proses pembuatan dan pengaktifan instans ECS memakan waktu lama. Node virtual memungkinkan Anda menjadwalkan pod secara langsung pada Alibaba Cloud Elastic Container Instance (ECI), sehingga mengurangi beban operasional manajemen node dan menekan biaya dengan menghindari sumber daya node yang menganggur.
Dibandingkan dengan node ECS, node virtual tidak mendukung label kustom, anotasi, atau taint.
Node virtual menggunakan komponen ack-virtual-node untuk mengenkapsulasi sumber daya komputasi, sehingga memungkinkan Anda menerapkan beban kerja tanpa mengelola infrastruktur dasar. Komponen ini secara otomatis menjadwalkan pod aplikasi untuk berjalan pada ECI. ECI adalah layanan kontainer serverless di mana setiap instans ECI setara dengan satu pod. Saat Anda menggunakan ECI untuk menerapkan aplikasi berbasis kontainer, Anda cukup menyediakan gambar kontainer dan hanya membayar sumber daya yang dikonsumsi oleh kontainer Anda.
Manfaat
Node virtual memberikan manfaat berikut.
Sepenuhnya dikelola: Anda tidak perlu membuat kolam sumber daya dasar, sehingga mengurangi beban O&M. Node virtual merupakan sumber daya terkelola dan tidak memerlukan operasi O&M rutin untuk node Kubernetes, seperti peningkatan sistem atau instalasi patch keamanan.
Kapasitas besar: Anda dapat melakukan skala keluar hingga maksimal 50.000 pod tanpa perencanaan kapasitas.
PentingJika banyak pod dikaitkan dengan layanan, kami menyarankan agar jumlah pod tidak melebihi 20.000.
Elastisitas dalam hitungan detik: Anda dapat membuat ribuan pod dalam waktu singkat. Hal ini mencegah latensi pembuatan pod memengaruhi layanan selama lonjakan lalu lintas.
Isolasi aman: Pod dibuat berdasarkan ECI. Setiap instans kontainer diisolasi secara kuat dari yang lain menggunakan teknologi kontainer sandbox ringan.
Hemat biaya: Aplikasi dibuat sesuai permintaan dan ditagih berdasarkan metode penagihan bayar sesuai pemakaian. Anda tidak dikenai biaya untuk sumber daya yang menganggur. Arsitektur serverless juga mengurangi biaya O&M.
Skenario
Node virtual cocok untuk skenario berikut.
Layanan online
Untuk layanan online yang sering mengalami lonjakan lalu lintas, seperti pendidikan online dan e-commerce, node virtual mendukung penskalaan dalam hitungan detik. Hal ini mencegah kegagalan sistem akibat penskalaan lambat saat lonjakan lalu lintas dan menghindari pemborosan sumber daya dari sumber daya yang menganggur.
Pemrosesan data
Untuk memproses banyak tugas data online konkuren, seperti tugas Spark dan Presto, tingkat konkurensi tidak lagi dibatasi oleh biaya sumber daya dasar. Anda dapat dengan cepat melakukan skala keluar hingga ribuan pod untuk memenuhi kebutuhan pemrosesan data besar.
Tugas AI
Untuk tugas AI seperti pelatihan model dan inferensi model yang tidak berjalan terus-menerus tetapi memerlukan sumber daya komputasi signifikan, Anda tidak perlu menyediakan sumber daya. Sebagai gantinya, gunakan sumber daya sesuai permintaan dan bayar per detik untuk mengurangi biaya inferensi AI. Selain itu, elastisitas tingkat detik memungkinkan Anda merespons beban kerja burst dengan cepat.
Lingkungan staging CI/CD
Untuk tugas pengujian batch dalam proses CI/CD, seperti pengemasan CI, uji stres, dan pengujian simulasi, Anda dapat menggunakan node virtual untuk membuat dan melepaskan instans kontainer kapan saja. Anda dapat menggunakan sumber daya sesuai permintaan dan dikenai biaya per detik. Pendekatan ini menyediakan sumber daya berskala besar dengan biaya rendah.
Jobs dan CronJobs
Jobs dan CronJobs tidak perlu berjalan terus-menerus. Setelah suatu job selesai, job tersebut berhenti, dan pod yang sesuai dihapus. Dengan node virtual, penagihan berhenti dan sumber daya komputasi dilepaskan secara otomatis saat job selesai. Hal ini menghindari pemborosan sumber daya dari sumber daya yang menganggur.
Batasan
Sebelum menggunakan node virtual, perhatikan batasan berikut.
DaemonSet tidak didukung. Anda dapat mengganti DaemonSet dengan kontainer sidecar.
Anda tidak dapat menentukan
HostPathatauHostNetworkdalammanifespod.Kontainer privilege tidak didukung. Anda dapat menggunakan konteks keamanan untuk menambahkan kemampuan ke pod.
CatatanFitur kontainer hak istimewa saat ini dalam tahap pratinjau internal. Untuk menggunakannya, ajukan tiket.
Layanan NodePort dan fitur Session Affinity tidak didukung.
Wilayah China South Finance dan Alibaba Gov Cloud tidak didukung.
Penagihan
Node virtual tidak dikenai biaya. Pod ECI yang berjalan pada node virtual ditagih berdasarkan aturan penagihan ECI. Untuk informasi selengkapnya, lihat Ikhtisar penagihan ECI.
Pod ECI menggunakan metode penagihan bayar sesuai pemakaian. Penagihan dimulai ketika pod ECI memasuki status Pending dan berhenti ketika pod memasuki status Succeeded atau Failed. Untuk informasi selengkapnya, lihat Siklus hidup pod ECI.
Cara menggunakan node virtual
Mulai cepat
Untuk informasi tentang cara menggunakan node virtual, lihat Jadwalkan pod untuk berjalan pada ECI.
Terapkan komponen ack-virtual-node
Setelah Anda menerapkan komponen ack-virtual-node di kluster ACK, Anda dapat mengaktifkan fitur node virtual.
Kluster ACK yang dikelola
Di kluster ACK yang dikelola, Anda harus menerapkan komponen ack-virtual-node dari halaman Component Management. Komponen ini dikelola secara default dan tidak mengonsumsi sumber daya node pekerja.
Login ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik Add-ons.
Pada halaman Add-ons, klik tab Core Components, temukan ACK Virtual Node, lalu klik Install. Ikuti petunjuk di layar untuk menyelesaikan instalasi.
Selama instalasi, vSwitch dan security group default kluster digunakan sebagai parameter konfigurasi awal ECI. Untuk mengubah parameter tersebut, Anda dapat memperbaruinya dengan mengonfigurasi eci-profile.
Cluster khusus ACK
Di cluster khusus ACK, Anda harus menerapkan komponen ack-virtual-node dari halaman Marketplace. Setelah instalasi selesai, deployment bernama ack-virtual-node-controller dibuat di namespace kube-system. Deployment ini berjalan pada node pekerja.
Login ke Container Service Management Console . Di panel navigasi sebelah kiri, klik .
Pada halaman Marketplace, klik tab App Catalog. Cari dan pilih ack-virtual-node. Pada halaman ack-virtual-node, klik Deploy.
Pada panel Create, Anda dapat memilih kluster dan namespace, lalu klik Next.
Namespace diatur ke kube-system, dan Release Name diatur ke ack-virtual-node.
Pada halaman Parameters, pilih Chart Version terbaru. Di bagian Parameters, konfigurasikan parameter node virtual dan klik OK.
Parameter
Properti Opsional
Deskripsi
Cara mendapatkan
ALIYUN_CLUSTERID
Wajib
ID kluster.
Pada tab Basic Information di halaman Cluster Information, dapatkan ID kluster.
ALIYUN_RESOURCEGROUP_ID
Opsional
ID kelompok sumber daya.
Jika Anda tidak mengonfigurasi parameter ini, kelompok sumber daya default akan digunakan. Untuk mengonfigurasi parameter ini, login ke Resource Management console untuk mendapatkan ID kelompok sumber daya tujuan.
ECI_REGION
Wajib
ID wilayah.
Pada tab Basic Information di halaman Cluster Information, dapatkan informasi Region.
CatatanUntuk informasi lebih lanjut tentang hubungan antara nama wilayah dan ID wilayah, lihat Regions and zones.
ECI_VPC
Opsional
ID VPC.
Pada tab Basic Information di halaman Cluster Information, dapatkan ID VPC kluster.
ECI_VSWITCH
Wajib
ID vSwitch.
Daftar ID vSwitch yang digunakan untuk menetapkan alamat IP ke pod aplikasi. Pisahkan beberapa ID vSwitch dengan koma (,), misalnya,
vsw-xxx1, vsw-xxx2. Kami menyarankan agar Anda menggunakan daftar vSwitch yang sama dengan kelompok node.Pada halaman Node Pools, klik kelompok node. Pada tab Details, dapatkan ID vSwitch node di bagian Node Configurations.
CatatanPastikan vSwitch berada di zona yang didukung oleh ECI.
ECI_SECURITY_GROUP
Wajib
ID grup keamanan.
Pada tab Basic Information di halaman Cluster Information, dapatkan ID grup keamanan.
ECI_ACCESS_KEY
Wajib
ID AccessKey Anda.
Untuk informasi selengkapnya, lihat Obtain an AccessKey pair.
Berikan kebijakan AliyunECIFullAccess kepada Pengguna RAM. Untuk informasi selengkapnya, lihat Grant permissions to a RAM user.
ECI_SECRET_KEY
Wajib
Rahasia AccessKey Anda.
Untuk informasi selengkapnya, lihat Obtain an AccessKey pair.
Berikan kebijakan AliyunECIFullAccess kepada Pengguna RAM. Untuk informasi selengkapnya, lihat Grant permissions to a RAM user.
KUBERNETES_APISERVER_HOST
Wajib
Alamat IP server API.
Alamat IP dan port titik akhir internal server API. Anda dapat menanyakan informasi ini pada tab Basic Information di halaman Cluster Information.
KUBERNETES_APISERVER_PORT
Wajib
Port server API.
Periksa status deployment komponen ack-virtual-node.
kubectl -n kube-system get deploy ack-virtual-node-controllerOutput yang diharapkan:
NAME READY UP-TO-DATE AVAILABLE AGE ack-virtual-node-controller 1/1 1 1 2m31s
Jadwalkan pod untuk berjalan pada ECI
ACK menyediakan beberapa solusi penjadwalan untuk memenuhi berbagai kebutuhan penjadwalan dalam skenario deployment hibrida ECS dan ECI. Untuk informasi selengkapnya, lihat Schedule pods to a virtual node.
Arsitektur CPU default pod ECI adalah x86 dan sistem operasi default adalah Linux. Untuk membuat pod ECI yang menggunakan arsitektur Arm atau sistem operasi Windows, lihat Schedule pods to an Arm-based virtual node atau (Invitational Preview) Schedule pods to a Windows virtual node.
Konfigurasi pod ECI secara fleksibel
Anda dapat menggunakan anotasi pod untuk mengonfigurasi fitur ECI, seperti menentukan spesifikasi pod ECI, mengaktifkan cache gambar untuk mempercepat pembuatan pod, menetapkan alamat IPv6 ke pod ECI, dan menambah ukuran ruang penyimpanan sementara. Untuk informasi selengkapnya, lihat ECI pod annotations.
Anda dapat menggunakan fitur ECI Effect dari eci-profile untuk menambahkan anotasi yang diperlukan secara dinamis ke pod ECI yang memenuhi kondisi tertentu. Hal ini memungkinkan orkestrasi pod secara batch.
Kelola node virtual
Peningkatan komponen ack-virtual-node
Anda mungkin perlu meningkatkan komponen ack-virtual-node untuk menggunakan beberapa fitur lanjutan node virtual.
Peningkatan memakan waktu sekitar 1 menit. Selama peningkatan, Anda tidak dapat membuat pod, tetapi pod yang sudah ada tidak terpengaruh.
Kluster ACK yang dikelola
Login ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik Add-ons.
Pada halaman Add-ons, klik tab Core Components, temukan ACK Virtual Node, lalu klik Upgrade. Ikuti petunjuk di layar untuk menyelesaikan peningkatan.
Cluster khusus ACK
Login ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
Dalam daftar Helm, temukan ack-virtual-node dan klik Update di kolom Actions. Di bagian Version, pilih versi Chart terbaru.
Di bagian konfigurasi parameter, perbarui parameter dan klik OK.
Anda juga dapat menentukan
virtualNode.image.taguntuk meningkatkan image ke versi tertentu.
Ubah konfigurasi node virtual
eci-profile berisi konfigurasi seperti VPC dan vSwitch tempat pod ACS dan ECI berada, serta apakah akan mengaktifkan node virtual Arm. Anda dapat memperbarui item konfigurasi tetap di bidang data sesuai kebutuhan.
Hapus node virtual
Saat Anda menguninstal komponen ack-virtual-node, node virtual akan dihapus secara otomatis, dan pod ACS serta ECI di kluster akan dihapus secara otomatis.
Periksa pod ACS dan ECI di kluster untuk memastikan layanan Anda tidak terpengaruh setelah pod dihapus.
Uninstal komponen ack-virtual-node.
Kluster ACK yang dikelola: Pada halaman Add-ons, uninstal komponen ack-virtual-node.
Cluster khusus ACK: Pada halaman Helm, hapus komponen ack-virtual-node.