阿里云容器服務基于虛擬節點和ECI提供了多種Serverless Container產品形態,例如通過部署ACK虛擬節點組件創建ECI Pod實現了Kubernetes與彈性容器實例ECI的無縫連接。您可以靈活動態地按需創建ECI Pod,免去集群容量規劃的麻煩。本文介紹如何在服務網格ASM中管理運行在ACK虛擬節點上的ECI Pod應用。
前提條件
已創建ASM實例,且版本為v1.7.5.41及以上。具體操作,請參見創建ASM實例。
已在ACK集群中部署ack-virtual-node組件,并確保運行正常。具體操作,請參見步驟一:在ACK集群中部署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>