通过ASM管理ACK虚拟节点上的ECI Pod应用

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

前提条件

步骤一:为目标命名空间启用自动注入

在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方式运行,并且所在的节点是虚拟节点。

  1. 执行以下命令,确认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
  2. 执行以下命令,部署Nginx应用。

    kubectl run nginx -n default --image nginx -l alibabacloud.com/eci=true

    预期输出:

    pod/nginx created
  3. 执行以下命令,查看虚拟节点上的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方式运行,并且所在的节点是虚拟节点。

  1. 执行以下命令,确认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
  2. 执行以下命令,为vk命名空间添加标签。

    kubectl label namespace vk alibabacloud.com/eci=true

    预期输出:

    namespace/vk labeled
  3. 执行以下命令,部署Nginx应用。

    kubectl -n vk run nginx --image nginx

    预期输出:

    pod/nginx created
  4. 执行以下命令,查看虚拟节点上的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>