Knative adalah framework serverless berbasis Kubernetes open source. Framework ini mendukung penskalaan pod otomatis berdasarkan permintaan sumber daya, manajemen versi, dan rilis canary untuk aplikasi. Saat tidak ada lalu lintas yang diproses, jumlah pod diskalakan menjadi nol. Container Service for Kubernetes (ACK) Knative sepenuhnya kompatibel dengan API Knative dan Kubernetes open source. Kapabilitas ACK Knative ditingkatkan di berbagai dimensi, seperti mempertahankan instans untuk mengurangi waktu cold start dan mendukung fitur penskalaan prediktif berdasarkan komponen Advanced Horizontal Pod Autoscaler (AHPA).
Mengapa menggunakan Knative dalam kluster Kubernetes?
Pengenalan Knative
Knative adalah framework serverless berbasis Kubernetes open source yang menyediakan standar orkestrasi cloud-native dan lintas platform untuk aplikasi serverless. Untuk mengimplementasikan standar ini, Knative mengintegrasikan pembuatan kontainer, manajemen beban kerja, dan model event, memberikan manfaat sebagai berikut:
Fokus lebih besar pada logika bisnis: Knative menyediakan konfigurasi aplikasi yang sederhana dan penskalaan otomatis, sehingga pengembang dapat fokus pada logika bisnis. Hal ini mengurangi beban operasi & pemeliharaan serta mengurangi kebutuhan untuk memikirkan sumber daya tingkat bawah.
Standardisasi: Saat Anda menerapkan kode bisnis ke platform serverless, kompilasi dan penerapan kode sumber serta manajemen event harus dipertimbangkan. Solusi serverless dan solusi FPGA as a Service (FaaS) yang disediakan oleh komunitas dan penyedia cloud memiliki standar yang berbeda. Knative menyediakan kerangka kerja serverless yang standar dan umum.
Sebagai contoh, jika Anda ingin menggunakan mode berbasis event di Knative, Anda dapat memodifikasi file YAML yang sesuai dan menerapkan file tersebut di kluster tanpa perlu mengikat file ke layanan cloud. Ini memudahkan migrasi lintas platform.
Kemudahan penggunaan: Knative dapat secara otomatis mengemas kode ke dalam gambar kontainer dan menerbitkan gambar tersebut sebagai Layanan. Knative juga dapat dengan cepat menerapkan fungsi ke kluster Kubernetes dan menjalankannya sebagai kontainer.
Penskalaan otomatis dan manajemen versi: Knative dapat secara otomatis mengurangi jumlah pod menjadi nol saat tidak ada lalu lintas yang diproses, menghemat sumber daya. Knative juga menyediakan berbagai fitur, seperti manajemen versi dan rilis canary.
Knative Eventing: Knative menyediakan model event untuk berinteraksi dengan sistem event eksternal dan merutekan event ke Layanan atau fungsi untuk diproses.
Lihat Pengenalan Layanan Knative untuk detail lebih lanjut.
Komponen Utama
Knative terdiri dari komponen inti berikut, yang menyediakan fitur berbeda:
Knative Serving: Menyediakan kemampuan manajemen beban kerja serverless. Knative Serving memungkinkan penyebaran serverless, manajemen versi, dan rilis canary untuk aplikasi Anda. Knative Serving juga mendukung penskalaan pod otomatis berdasarkan permintaan sumber daya. Jika tidak ada lalu lintas yang diproses, jumlah pod diskalakan menjadi nol.
Knative Eventing: Menyediakan kemampuan manajemen event, yang memungkinkan Anda berinteraksi dengan sumber event eksternal, mendaftarkan dan berlangganan event, serta menyaring event. Sistem event memisahkan produsen event dan konsumen event.
Knative Functions: Memungkinkan Anda membuat, membangun, dan menerapkan Layanan Knative secara efisien. Anda dapat menerapkan fungsi tanpa status, berbasis event, sebagai Layanan Knative ke kluster Kubernetes menggunakan Knative Functions tanpa perlu memiliki pemahaman mendalam tentang tumpukan teknologi tingkat bawah, seperti Kubernetes, kontainer, dan Knative.
Mengapa menggunakan ACK Knative?
ACK Knative sepenuhnya kompatibel dengan API Knative dan Kubernetes open source. ACK Knative juga meningkatkan Kapabilitas sebagai Layanan dan menyediakan solusi yang lebih komprehensif.
Kapabilitas sebagai Layanan: Memungkinkan Anda menerapkan aplikasi hanya dengan beberapa klik. Anda tidak perlu membeli sumber daya untuk membangun sistem. Konsol disediakan dan operasi visual didukung untuk menyederhanakan penggunaan kluster Kubernetes dan Knative.
O&M yang Disederhanakan:
Hosting komponen utama: Di kluster ACK, komponen utama, Knative Serving dan Knative Eventing, dibuat dan dihosting oleh ACK. Ini memastikan ketersediaan tinggi, dan tidak ada biaya yang dikenakan untuk penggunaan sumber daya.
Hosting gateway: ACK Knative menyediakan empat jenis gateway: Application Load Balancer (ALB), Microservices Engine (MSE), Service Mesh (ASM), dan Kourier. Pengontrol gateway layanan cloud dibuat oleh ACK untuk menyediakan layanan gateway yang sepenuhnya dihosting dan bebas O&M, kecuali untuk Kourier. Kourier kompatibel dengan versi open source.
Integrasi ekosistem: Berintegrasi dengan mulus dengan layanan komputasi cloud Alibaba (Elastic Container Instance dan ECS), observabilitas (Simple Log Service dan Managed Service for Prometheus), dan integrasi aplikasi (EventBridge). Anda dapat menggunakan Layanan Knative untuk mengimplementasikan kemampuan seperti logging, pemantauan, dan peringatan, pengiriman berkelanjutan, dan Eventing, tanpa perlu membeli server atau membangun Layanan.
Lebih banyak fitur: Berdasarkan Knative open source, ACK Knative menyediakan solusi siap pakai dan lebih luas berdasarkan skenario bisnis aktual. Bagian berikut menggambarkan solusi-solusi tersebut.
Instans terjadwal: Secara default, Knative open source menskalakan jumlah pod menjadi nol selama jam-jam sepi untuk mengurangi biaya. Namun, lain kali Anda memulai aplikasi, aplikasi akan mengalami cold start yang memakan waktu. Untuk mengurangi waktu cold start, kami sarankan Anda menggunakan fitur instans terjadwal untuk memesan instans burstable spesifikasi rendah. Ini membantu Anda menyeimbangkan biaya dan durasi startup.
Penskalaan otomatis Knative: Menyediakan Knative Pod Autoscaler (KPA) berbasis permintaan siap pakai dan juga mendukung HPA. Anda dapat mengaktifkan AHPA untuk Layanan Knative. Jika permintaan sumber daya aplikasi Anda berfluktuasi secara periodik, kami sarankan Anda menggunakan AHPA untuk memprediksi permintaan sumber daya. Dengan cara ini, Anda dapat memuat sumber daya yang diperlukan oleh Knative untuk mengurangi waktu cold start.
Untuk informasi lebih lanjut tentang perbandingan antara ACK Knative dan Knative open source, lihat Perbandingan antara Alibaba Cloud Knative dan Knative Open Source.
Skenario Penggunaan
Tabel berikut menggambarkan skenario penggunaan ACK Knative.
Skenario | Deskripsi |
Hosting layanan web |
|
Aplikasi serverless |
|
Skenario AI |
|
Skenario Knative Eventing | Knative Eventing menyediakan model event untuk menyederhanakan proses menyerap event dari sistem event eksternal. Sebagai contoh, ketika perangkat Internet of Things (IoT) mengirimkan data sensor ke Layanan Knative, ACK Knative dapat mengonfigurasi sumber event yang sesuai untuk menerima data dan memicu logika pemrosesan yang sesuai, seperti penyimpanan data, analisis real-time, pemantauan, dan peringatan. |
Prosedur
Gambar berikut menunjukkan cara menggunakan ACK Knative.
Langkah | Deskripsi |
Prasyarat | Sebuah kluster ACK yang dikelola yang menjalankan Kubernetes 1.22 atau lebih baru sudah siap. Untuk meningkatkan kluster, lihat Tingkatkan Kluster ACK secara Manual. |
Terapkan ACK Knative di konsol dan instal komponen Knative Serving. Untuk informasi lebih lanjut, lihat Terapkan dan Kelola Knative. | |
Pilih gateway Knative yang ingin Anda instal dan terapkan. ACK Knative mendukung gateway ALB, MSE, ASM, dan Kourier.
| |
Penyebaran dan manajemen layanan | Tentukan jenis sumber daya yang digunakan:
|
Penskalaan otomatis:
| |
Manajemen versi dan rilis canary:
| |
Akses ke Layanan Knative:
| |
Fitur lanjutan | Knative Eventing: Menyediakan arsitektur komprehensif dan sistematis untuk mode berbasis event serverless, yang terdiri dari sumber event, penerimaan dan langganan event, serta penyaringan event. |
Knative Functions: Knative Functions menyediakan metode sederhana untuk membuat, membangun, dan menerapkan Layanan Knative. Untuk informasi lebih lanjut, lihat Terapkan Knative Functions. | |
Layanan inferensi AI:
| |
Service mesh: Integrasikan ASM ke dalam Layanan Knative untuk mengimplementasikan manajemen lalu lintas kompleks dan meningkatkan keamanan layanan. | |
Observabilitas dan manajemen biaya | Pengumpulan log: Simple Log Service memungkinkan pengumpulan log non-intrusif, konsumsi, pengiriman, kueri, dan analisis fitur. Untuk informasi lebih lanjut, lihat Aktifkan SLS pada Knative. |
Dasbor Knative: Hubungkan Knative ke Managed Service for Prometheus untuk melihat statistik seperti latensi respons dan konkurensi permintaan. Untuk informasi lebih lanjut, lihat Lihat dasbor pemantauan Knative. | |
Pemantauan dan peringatan: Gunakan Simple Log Service untuk mengonfigurasi aturan peringatan berdasarkan data log yang dikumpulkan. Untuk informasi lebih lanjut, lihat Konfigurasikan peringatan untuk Layanan Knative. | |
Wawasan biaya: Sebagai administrator keuangan di perusahaan TI, Anda dapat mengaktifkan fitur wawasan biaya di Knative untuk menganalisis penggunaan sumber daya dan tren biaya di kluster ACK. Untuk informasi lebih lanjut, lihat Aktifkan fitur wawasan biaya di Layanan Knative. |
Penagihan
Saat Anda menggunakan ACK Knative di kluster ACK, ACK Knative tidak dikenakan biaya. Namun, Anda akan dikenakan biaya untuk sumber daya cloud yang dibuat saat menggunakan Knative. Sebagai contoh, jika Anda membuat dan menggunakan instance ECS, instance SLB, dan gateway NAT, Anda akan dikenakan biaya untuk sumber daya tersebut berdasarkan aturan penagihan sumber daya. Untuk informasi lebih lanjut tentang aturan penagihan kluster ACK, lihat Ikhtisar Penagihan dan Penagihan Sumber Daya Produk Cloud.
FAQ
Jika Anda mengalami masalah saat menggunakan ACK Knative, Anda dapat terlebih dahulu merujuk ke FAQ Knative dan menyelesaikan masalah tersebut secara mandiri.
Jika Anda memiliki pertanyaan atau saran tentang Knative, bergabunglah dengan grup DingTalk 23302777.
Apa perbedaan antara Alibaba Cloud Knative dan Knative open source?
Ingress mana yang perlu saya gunakan saat menginstal Knative?
Izin apa yang diperlukan untuk menggunakan Knative dengan pengguna atau peran RAM
Berapa lama waktu yang dibutuhkan untuk mengurangi jumlah pod menjadi nol?
Apakah saya dikenakan biaya untuk komponen Activator ACK Knative?
Referensi
Perbarui Knative Serving sesegera mungkin untuk mendapatkan fitur terbaru dan perbaikan bug. Untuk informasi lebih lanjut, lihat Catatan Rilis Knative dan Tingkatkan Knative Serving.
Dokumentasi resmi Knative menyediakan tutorial yang menggambarkan cara membangun, menerapkan, dan memantau aplikasi toko online menggunakan Knative. Untuk informasi lebih lanjut, lihat Tutorial Toko Buku Knative.