阿里雲Container Service基於虛擬節點和ECI提供了多種Serverless Container產品形態,例如通過部署ACK虛擬節點群組件建立ECI Pod實現了Kubernetes與Elastic Container Instance的無縫串連。您可以靈活動態地按需建立ECI Pod,免去叢集容量規劃的麻煩。本文介紹如何在Service MeshASM中管理運行在ACK虛擬節點上的ECI Pod應用。
前提條件
已建立ASM執行個體,且版本為v1.7.5.41及以上。具體操作,請參見建立ASM執行個體。
已在ACK叢集中部署ack-virtual-node組件,並確保運行正常。具體操作,請參見步驟一:部署ack-virtual-node組件。
步驟一:為目標命名空間啟用自動注入
在ASM控制台中啟動自動注入功能,可以在建立Pod的過程中,將Sidecar自動注入Proxy容器,以實現資料平面的網格化。
本樣本為default和vk命名空間啟用Sidecar網格代理自動注入。具體操作,請參見管理全域命名空間。
步驟二:建立ECI Pod應用
建立ECI Pod應用後,ASM可以通過Sidecar對ECI Pod應用進行資料平面化管理。
方式一:通過配置Pod標籤的方式建立ECI Pod應用
給Pod添加alibabacloud.com/eci=true
的標籤,Pod將以ECI方式運行,並且所在的節點是虛擬節點。
執行以下命令,確認default命名空間已包含
istio-injection=enabled
標籤。kubectl get ns default --show-labels
預期輸出:
NAME STATUS AGE LABELS default Active 16d istio-injection=enabled,kubernetes.io/metadata.name=default,provider=asm
執行以下命令,部署Nginx應用。
kubectl run nginx -n default --image nginx -l alibabacloud.com/eci=true
預期輸出:
pod/nginx created
執行以下命令,查看虛擬節點上的Pod資訊。
kubectl get pod -n default -o wide|grep virtual-kubelet
預期輸出:
nginx 2/2 Running 0 8m49s 192.168.XXX.XXX virtual-kubelet-cn-beijing-i <none> <none>
方式二:通過配置Namespace標籤的方式建立ECI Pod應用
給Pod所在的命名空間添加alibabacloud.com/eci=true
標籤,Pod將以ECI方式運行,並且所在的節點是虛擬節點。
執行以下命令,確認vk命名空間已包含
istio-injection=enabled
標籤。kubectl get ns vk --show-labels
預期輸出:
NAME STATUS AGE LABELS vk Active 96m istio-injection=enabled,kubernetes.io/metadata.name=vk,provider=asm
執行以下命令,為vk命名空間添加標籤。
kubectl label namespace vk alibabacloud.com/eci=true
預期輸出:
namespace/vk labeled
執行以下命令,部署Nginx應用。
kubectl -n vk run nginx --image nginx
預期輸出:
pod/nginx created
執行以下命令,查看虛擬節點上的Pod資訊。
kubectl -n vk get pod -o wide|grep virtual-kubelet
預期輸出:
nginx 2/2 Running 0 38s 192.168.XXX.XXX virtual-kubelet-cn-beijing-i <none> <none>