Alibaba Cloud Container Service menyediakan berbagai penawaran kontainer serverless berbasis virtual node dan Elastic Container Instance (ECI). Sebagai contoh, penerapan komponen virtual node Container Service for Kubernetes (ACK) mengintegrasikan Kubernetes dengan ECI secara mulus, memungkinkan Anda membuat Pod ECI secara fleksibel dan dinamis sesuai permintaan tanpa perlu merencanakan kapasitas kluster.
Prasyarat
-
Instans ASM versi 1.7.5.41 atau yang lebih baru telah dibuat. Untuk informasi selengkapnya, lihat Create an ASM instance.
-
Komponen ack-virtual-node telah diterapkan di kluster ACK dan berjalan sebagaimana mestinya. Untuk informasi selengkapnya, lihat Step 1: Deploy the ack-virtual-node component.
-
The kubeconfig file of the cluster is obtained, and kubectl is used to connect to the cluster.
Langkah 1: Aktifkan injeksi sidecar otomatis untuk namespace target
Setelah Anda mengaktifkan injeksi sidecar otomatis untuk suatu namespace di Konsol ASM, proxy Envoy akan secara otomatis diinjeksikan sebagai sidecar ke setiap Pod yang dibuat di namespace tersebut. Proxy Envoy ini membentuk bidang data (data plane) dari instans ASM.
Pada contoh ini, injeksi sidecar otomatis diaktifkan untuk namespace default dan vk. Metode 1 menggunakan namespace default, sedangkan Metode 2 menggunakan namespace vk. Untuk informasi selengkapnya, lihat Manage global namespaces.
Langkah 2: Buat aplikasi Pod ECI
Setelah Anda membuat aplikasi Pod ECI, ASM dapat mengelola aplikasi tersebut pada bidang data melalui sidecar yang diinjeksikan.
Dua metode berikut bersifat alternatif. Pilih salah satu berdasarkan cakupan penerapan label alibabacloud.com/eci=true:
-
Metode 1: label Pod — Anda menentukan label saat membuat Pod, dan label tersebut hanya berlaku untuk Pod tersebut.
-
Metode 2: label namespace — Anda menambahkan label ke namespace sebelum membuat Pod, sehingga label tersebut berlaku untuk semua Pod yang dibuat di namespace tersebut.
Metode 1: Buat aplikasi Pod ECI dengan mengonfigurasi label Pod
Tentukan label alibabacloud.com/eci=true saat membuat Pod. Pod tersebut kemudian akan berjalan sebagai instans ECI pada virtual node.
-
Jalankan perintah berikut untuk memverifikasi bahwa namespace
defaultmemiliki labelistio-injection=enabled:kubectl get ns default --show-labelsOutput yang diharapkan:
NAME STATUS AGE LABELS default Active 16d istio-injection=enabled,kubernetes.io/metadata.name=default,provider=asm -
Jalankan perintah berikut untuk menerapkan aplikasi Nginx:
kubectl run nginx -n default --image nginx -l alibabacloud.com/eci=trueOutput yang diharapkan:
pod/nginx created -
Jalankan perintah berikut untuk melihat informasi Pod pada virtual node:
kubectl get pod -n default -o wide|grep virtual-kubeletOutput yang diharapkan:
nginx 2/2 Running 0 8m49s 192.168.XXX.XXX virtual-kubelet-cn-beijing-i <none> <none>
Angka siap 2/2 pada output menunjukkan bahwa sidecar yang diinjeksikan berjalan bersama kontainer aplikasi. ASM mengelola Pod tersebut pada bidang data.
Metode 2: Buat aplikasi Pod ECI dengan mengonfigurasi label namespace
Tambahkan label alibabacloud.com/eci=true ke namespace sebelum membuat Pod. Pod yang kemudian Anda buat di namespace tersebut akan berjalan sebagai instans ECI pada virtual node.
-
Jalankan perintah berikut untuk memverifikasi bahwa namespace
vkmemiliki labelistio-injection=enabled:kubectl get ns vk --show-labelsOutput yang diharapkan:
NAME STATUS AGE LABELS vk Active 96m istio-injection=enabled,kubernetes.io/metadata.name=vk,provider=asm -
Jalankan perintah berikut untuk menambahkan label ke namespace
vk:kubectl label namespace vk alibabacloud.com/eci=trueOutput yang diharapkan:
namespace/vk labeled -
Jalankan perintah berikut untuk menerapkan aplikasi Nginx:
kubectl -n vk run nginx --image nginxOutput yang diharapkan:
pod/nginx created -
Jalankan perintah berikut untuk melihat informasi Pod pada virtual node:
kubectl -n vk get pod -o wide|grep virtual-kubeletOutput yang diharapkan:
nginx 2/2 Running 0 38s 192.168.XXX.XXX virtual-kubelet-cn-beijing-i <none> <none>
Angka siap 2/2 pada output menunjukkan bahwa Pod berjalan dengan sidecar yang diinjeksikan. ASM mengelola Pod tersebut pada bidang data melalui sidecar ini.