Gerbang tanpa server ASM menyediakan operasi elastis tanpa node dengan memanfaatkan node virtual dan Elastic Container Instance (ECI). Topik ini menjelaskan cara menggunakan gerbang tanpa server ASM untuk mendukung beban kerja elastis.
Prasyarat
-
Kluster ACK (termasuk edisi Basic, Pro, dan Dedicated) telah ditambahkan ke instans ASM Anda. Untuk informasi selengkapnya, lihat Menambahkan kluster ke instans ASM.
CatatanSaat Anda membuat gerbang ASM di Konsol ASM untuk kluster Serverless Kubernetes (ASK), Pod gerbang tersebut sudah berjalan di ECI. Anda tidak perlu melakukan langkah-langkah dalam topik ini. Untuk informasi selengkapnya tentang cara membuat gerbang, lihat Membuat layanan gateway masuk.
-
Komponen ack-virtual-node telah dideploy. Untuk informasi selengkapnya, lihat Deploy controller node virtual dan gunakan untuk membuat Pod berbasis Elastic Container Instance.
Konsep utama
|
Konsep |
Deskripsi |
|
Elastic Container Instance (ECI) |
Alibaba Cloud Elastic Container Instance (ECI) adalah layanan komputasi tanpa server yang memungkinkan Anda menjalankan kontainer tanpa mengelola server. Layanan ini menyediakan runtime kontainer yang aman dan terisolasi dengan waktu startup cepat. Dengan ECI, Anda dapat fokus pada aplikasi Anda alih-alih infrastruktur dasarnya. Anda dikenai biaya per detik berdasarkan resource yang dikonsumsi oleh kontainer Anda. Untuk informasi selengkapnya, lihat Apa itu Elastic Container Instance? dan Ikhtisar penagihan. |
|
virtual node |
Node virtual sangat ideal untuk beban kerja dengan pola lalu lintas yang fluktuatif, membantu mengurangi biaya komputasi dan meningkatkan elastisitas resource. |
|
taint |
Taint pada sebuah node menolak sekumpulan Pod. Secara default, node virtual dalam kluster ACK memiliki taint |
|
toleration |
Toleransi memungkinkan Pod dijadwalkan ke node yang memiliki taint yang sesuai. Untuk mengizinkan Pod dalam kluster ACK Anda menggunakan resource ECI, Anda harus mengonfigurasi
Catatan
Taint dan toleransi bekerja bersama untuk memastikan bahwa Pod tidak dijadwalkan ke node yang tidak sesuai. Anda dapat menerapkan satu atau beberapa taint ke sebuah node.
Untuk informasi selengkapnya, lihat dokumentasi resmi Kubernetes tentang Taints and Tolerations. |
|
node affinity (nodeAffinity) |
Afinitas node menentukan aturan yang memengaruhi tempat Pod dapat dijadwalkan. Aturan ini dapat berupa preferensi 'lunak' yang coba dipenuhi oleh penjadwal, atau persyaratan 'keras' yang harus dipenuhi agar Pod dapat dijadwalkan ke sebuah node. |
Langkah 3: Konfigurasikan afinitas node dan toleransi
Konfigurasikan parameter nodeAffinity dan tolerations untuk gerbang ASM Anda. Aturan nodeAffinity memastikan bahwa Pod gerbang dijadwalkan ke node tertentu, sedangkan tolerations memungkinkan Pod dijadwalkan ke node dengan taint yang Anda buat di Langkah 2.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Di halaman Ingress Gateway, temukan gerbang target dan klik View YAML di kolom Actions.
-
Di kotak dialog Edit, tambahkan konten berikut di bawah bidang
spec, lalu klik OK.affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: type operator: In values: - virtual-kubelet weight: 20 - preference: matchExpressions: - key: mykey4pod operator: In values: - asmgateway weight: 80 requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: mykey4pod operator: In values: - asmgateway - matchExpressions: - key: type operator: In values: - virtual-kubelet tolerations: - effect: NoSchedule key: virtual-kubelet.io/provider operator: Equal value: alibabacloud - effect: NoSchedule key: mykey operator: Equal value: myvalueTabel berikut menjelaskan parameter utama. Untuk informasi selengkapnya, lihat dokumentasi resmi Kubernetes tentang Assigning Pods to Nodes.
Parameter
Deskripsi
preferredDuringSchedulingIgnoredDuringExecutionPenjadwal mencoba menemukan node yang memenuhi aturan tersebut. Jika tidak ada node yang cocok ditemukan, penjadwal tetap menjadwalkan Pod tersebut. Parameter ini dikaitkan dengan dua
matchExpressions. Nilaiweightbersifat relatif. Penjadwal lebih memilih aturan dengan nilai yang lebih besar.weightsebesar80berarti Pod lebih disukai berjalan di node ECS dengan label yang ditentukan.weightsebesar20berarti Pod lebih disukai berjalan di resource ECI.requiredDuringSchedulingIgnoredDuringExecutionPenjadwal hanya menjadwalkan Pod ke node yang memenuhi aturan ini. Parameter ini dikaitkan dengan dua entri
matchExpressions. Salah satu mengarahkan Pod ke node ECS dengan label yang ditentukan, dan yang lainnya mengarahkan Pod untuk menggunakan resource ECI.tolerationsParameter ini memungkinkan Pod mentolerir taint
virtual-kubelet.io/provider=alibabacloud:NoSchedule, sehingga memungkinkannya dijadwalkan ke resource ECI. -
Verifikasi bahwa Pod gerbang dijadwalkan sesuai harapan.
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di bagian atas halaman Pods, pilih namespace istio-system dan periksa apakah Pod gerbang berjalan di node yang diharapkan.
Jika Pod berjalan di node target, afinitas node dan toleransi telah berhasil dikonfigurasi untuk gerbang ASM.
-