通过ACK Serverless集群使用ECI

ECI已经无缝集成到阿里云容器服务Kubernetes版,您可以通过ACK Serverless集群或者ACK集群,快速体验ECI的容器运行能力。本文以ACK Serverless集群为例,介绍如何通过阿里云容器服务如何使用ECI。

准备工作

首次操作时,需完成服务开通和相关授权操作:

创建ACK Serverless集群

以下步骤仅介绍创建ACK Serverless集群时的基本配置,实际操作时,请根据业务需要设置相关参数和安装相应组件。更多信息,请参见创建集群

  1. 打开创建集群页面。

    1. 登录容器服务管理控制台

    2. 在左侧导航栏,单击集群

    3. 集群列表页面的右上角,单击创建集群

  2. 在上方单击ACK Serverless集群页签,完成集群配置,然后单击下一步:组件配置

    需要注意的配置项说明如下,未提及的配置项请根据自身需求设置。

    配置项

    示例

    说明

    集群名称

    test

    根据页面提示填写集群名称。

    地域

    华北2(北京)

    选择集群所属地域。

    专有网络

    自动创建

    设置集群所属的专有网络。

    • 自动创建:您需要选择可用区,系统会自动创建一个VPC和一个属于该可用区的交换机,且会在VPC中自动创建NAT网关并配置SNAT规则。

    • 使用已有:选择已有的VPC和交换机。

    配置 SNAT

    为专有网络配置SNAT

    当集群需要公网访问能力时,需配置SNAT。

    • 如果使用自动创建的专有网络,则会自动配置SNAT。

    • 如果使用已有专有网络,请根据需要选择是否配置SNAT。

    Service CIDR

    172.21.0.0/20

    您需要指定Service CIDR,网段不能与VPC及VPC内已有Kubernetes集群使用的网段重复,创建成功后不能修改。更多信息,请参见Kubernetes集群网络规划

    API server 访问

    使用EIP暴露API Server

    请根据需要设置是否使用EIP暴露API Server。API Server提供了各类资源对象(Pod,Service等)的增删改查及Watch等HTTP Rest接口。

    • 如果开启,会创建一个EIP,并挂载到SLB上。此时,Kubernetes API服务(即API Server)会通过EIP的6443端口暴露出来,您可以在外网通过kubeconfig连接并操作集群。

    • 如果不开启,则不会创建EIP,您只能在VPC内部用kubeconfig连接并操作集群。

  3. 完成组件配置,然后单击下一步:确认配置

    请根据自身需求配置需要的组件。使用组件会产生相关费用,本文作为体验教程,不使用任何组件。

  4. 确认配置信息,选中服务协议,单击创建集群

    返回集群列表页面,当集群状态为运行中时,表示集群创建完成。

ACK Serverless集群中部署应用

以下步骤以Nginx为例,介绍如何在ACK Serverless集群中创建ECI实例来部署应用。

  1. 集群列表页面,找到目标ACK Serverless集群的名称,进入集群管理页面。

  2. 创建Deployment,用于部署Nginx应用。

    1. 在左侧导航栏,选择工作负载>无状态

    2. 单击右上角的使用YAML创建资源

    3. 根据需要修改模板中的YAML内容,然后单击创建

      默认选择了Resource-basic Deployment示例模板,该模板YAML声明创建的Deployment包含2个Pod,每个Pod带有app: nginx的Label,运行一个部署了Nginx应用的容器。

      说明

      示例模板中的image: nginx:1.7.9表示从Docker Hub拉取Nginx 1.7.9版本的镜像。如果您的集群没有配置公网访问,则无法拉取该镜像,请替换为VPC网络内的镜像,例如image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2

      ASK示例模板

    4. 确认Deployment创建结果。

      • 无状态页面可以查看Deployment信息。

        容器组数量对应的2/2表示Deployment创建成功,包含的2个Pod已在运行中。

        通过ACK使用ECI.png

      • 无状态页面,单击Deployment名称可以查看Deployment详细信息。

        容器组页签下可以看到2个Pod的状态均为运行中。单击Pod名称,可以查看Pod详细信息。

        通过ACK使用ECI1.png

      • 每个Pod对应一个ECI实例,在弹性容器实例控制台容器组页面,您可以看到相应的ECI实例。

        通过ACK使用ECI2.png

  3. 创建Service,配置Nginx应用的访问方式。

    1. 在左侧导航栏,选择网络>服务

    2. 单击右上角的使用YAML创建资源

    3. 拷贝以下YAML,单击创建

      以下YAML创建了一个类型为LoadBalancer的Service,对外开放80端口,后端为带有app: nginx的Label的Pod(即上一步创建的Deployment中的Pod)。

      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-service
      spec:
        ports:
        - port: 80
          protocol: TCP
        selector:
          app: nginx
        type: LoadBalancer
    4. 确认Service的创建结果。

      服务页面,单击Service名称可以查看Service详细信息。该Service已自动关联上一步创建的Deployment,后端端点为该Deployment中包含的2个Pod。

      通过ACK使用ECI3.png

  4. 访问Nginx应用。

    单击Service外部端点对应的IP地址:端口,即可访问Nginx应用。

    ASK-nginx