阿里云容器服务基于虚拟节点和ECI提供了多种Serverless Container产品形态,例如通过部署ACK虚拟节点组件创建ECI Pod实现了Kubernetes与弹性容器实例ECI的无缝连接。您可以灵活动态地按需创建ECI Pod,免去集群容量规划的麻烦。本文介绍如何在服务网格ASM中管理运行在ACK虚拟节点上的ECI Pod应用。

前提条件

启用自动注入

在ASM控制台中启动自动注入功能,可以在创建Pod的过程中,将Sidecar自动注入Proxy容器,以实现数据平面的网格化。

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 控制平面(自定义资源管理)区域Namespace页签下找到待注入的命名空间(本示例中包括2个命名空间default和vk, 如果不存在需要先创建),在自动注入列单击启用Sidecar自动注入
  5. 确认对话框,单击确定

创建ECI Pod应用

说明 创建ECI Pod应用后,ASM可以通过Sidecar对ECI Pod应用进行数据平面化管理。

通过配置Pod标签的方式创建ECI Pod应用

给Pod添加label alibabacloud.com/eci=true的标签,Pod将以ECI方式运行,并且所在的节点是虚拟节点。

  1. 执行以下命令,确认default命名空间已包含istio-injection=enabled标签。
    kubectl get ns default --show-labels

    预期输出:

    NAME      STATUS   AGE   LABELS
    default   Active   84d   istio-injection=enabled,provider=asm
  2. 执行以下命令,部署Nginx应用。
    kubectl run nginx -n default --image nginx -l alibabacloud.com/eci=true
  3. 执行以下命令,查看虚拟节点上的Pod信息。
    kubectl get pod -n default -o wide|grep virtual-kubelet

通过配置Namespace标签的方式创建ECI Pod应用

给Pod所在的命名空间添加label alibabacloud.com/eci=true标签,Pod将以ECI方式运行,并且所在的节点是虚拟节点。

  1. 执行以下命令,确认vk命名空间已包含istio-injection=enabled标签。
    kubectl get ns default --show-labels

    预期输出:

    NAME      STATUS   AGE   LABELS
    default   Active   84d   istio-injection=enabled,provider=asm
  2. 执行以下命令,为vk命名空间添加标签。
    kubectl label namespace vk alibabacloud.com/eci=true
  3. 执行以下命令,部署Nginx应用。
    kubectl -n vk run nginx --image nginx
  4. 执行以下命令,查看虚拟节点上的Pod信息。
    kubectl -n vk get pod -o wide|grep virtual-kubelet