ECI已经无缝集成到阿里云容器服务Kubernetes版,您可以通过ACK Serverless集群或者ACK集群,快速体验ECI的容器运行能力。本文以ACK Serverless集群为例,介绍如何通过阿里云容器服务如何使用ECI。
准备工作
首次操作时,需完成服务开通和相关授权操作:
开通容器服务Kubernetes版,并授权默认角色和开通相关云产品。具体操作,请参见首次使用容器服务Kubernetes版。
登录弹性容器实例控制台,根据提示开通ECI服务。
创建ACK Serverless集群
以下步骤仅介绍创建ACK Serverless集群时的基本配置,实际操作时,请根据业务需要设置相关参数和安装相应组件。更多信息,请参见创建集群。
打开创建集群页面。
登录容器服务管理控制台。
在左侧导航栏,单击集群。
在集群列表页面的右上角,单击创建集群。
在上方单击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连接并操作集群。
完成组件配置,然后单击下一步:确认配置。
请根据自身需求配置需要的组件。使用组件会产生相关费用,本文作为体验教程,不使用任何组件。
确认配置信息,选中服务协议,单击创建集群。
返回集群列表页面,当集群状态为运行中时,表示集群创建完成。
在ACK Serverless集群中部署应用
以下步骤以Nginx为例,介绍如何在ACK Serverless集群中创建ECI实例来部署应用。
在集群列表页面,找到目标ACK Serverless集群的名称,进入集群管理页面。
创建Deployment,用于部署Nginx应用。
在左侧导航栏,选择工作负载>无状态。
单击右上角的使用YAML创建资源。
根据需要修改模板中的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
。确认Deployment创建结果。
在无状态页面可以查看Deployment信息。
容器组数量对应的
2/2
表示Deployment创建成功,包含的2个Pod已在运行中。在无状态页面,单击Deployment名称可以查看Deployment详细信息。
在容器组页签下可以看到2个Pod的状态均为运行中。单击Pod名称,可以查看Pod详细信息。
每个Pod对应一个ECI实例,在弹性容器实例控制台的容器组页面,您可以看到相应的ECI实例。
创建Service,配置Nginx应用的访问方式。
在左侧导航栏,选择网络>服务。
单击右上角的使用YAML创建资源。
拷贝以下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
确认Service的创建结果。
在服务页面,单击Service名称可以查看Service详细信息。该Service已自动关联上一步创建的Deployment,后端端点为该Deployment中包含的2个Pod。
访问Nginx应用。
单击Service外部端点对应的
IP地址:端口
,即可访问Nginx应用。