阿里云容器服务基于虚拟节点和ECI提供了多种Serverless Container产品形态,例如通过部署ACK虚拟节点组件创建ECI Pod实现了Kubernetes与弹性容器实例ECI的无缝连接。您可以灵活动态地按需创建ECI Pod,免去集群容量规划的麻烦。本文介绍如何在服务网格ASM中管理运行在ACK虚拟节点上的ECI Pod应用。
前提条件
ASM实例为v1.7.5.41-ge61a01c3-aliyun或以上版本。
已在ACK集群中部署ack-virtual-node组件,并确保运行正常。具体操作,请参见步骤一:在ACK集群中部署ack-virtual-node组件。
已添加ACK集群到ASM实例。具体操作,请参见添加集群到ASM实例。
启用自动注入
在ASM控制台中启动自动注入功能,可以在创建Pod的过程中,将Sidecar自动注入Proxy容器,以实现数据平面的网格化。
登录ASM控制台。
在左侧导航栏,选择 。
在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
在网格详情页面左侧导航栏,选择 。
在全局命名空间页面下找到待注入的命名空间(本示例中包括2个命名空间default和vk,如果不存在需要先创建),在自动注入列单击启用Sidecar自动注入。
在确认对话框,单击确定。
创建ECI Pod应用
创建ECI Pod应用后,ASM可以通过Sidecar对ECI Pod应用进行数据平面化管理。
通过配置Pod标签的方式创建ECI Pod应用
给Pod添加label alibabacloud.com/eci=true
的标签,Pod将以ECI方式运行,并且所在的节点是虚拟节点。
执行以下命令,确认default命名空间已包含
istio-injection=enabled
标签。kubectl get ns default --show-labels
预期输出:
NAME STATUS AGE LABELS default Active 84d istio-injection=enabled,provider=asm
执行以下命令,部署Nginx应用。
kubectl run nginx -n default --image nginx -l alibabacloud.com/eci=true
执行以下命令,查看虚拟节点上的Pod信息。
kubectl get pod -n default -o wide|grep virtual-kubelet
通过配置Namespace标签的方式创建ECI Pod应用
给Pod所在的命名空间添加label alibabacloud.com/eci=true
标签,Pod将以ECI方式运行,并且所在的节点是虚拟节点。
执行以下命令,确认vk命名空间已包含
istio-injection=enabled
标签。kubectl get ns default --show-labels
预期输出:
NAME STATUS AGE LABELS default Active 84d istio-injection=enabled,provider=asm
执行以下命令,为vk命名空间添加标签。
kubectl label namespace vk alibabacloud.com/eci=true
执行以下命令,部署Nginx应用。
kubectl -n vk run nginx --image nginx
执行以下命令,查看虚拟节点上的Pod信息。
kubectl -n vk get pod -o wide|grep virtual-kubelet