阿里云容器服务基于虚拟节点和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>