本次实验任务实现了将容器化的应用快速发布到阿里云ACK Serverless集群中,并实现外部访问,同时在ACK Serverless集群中进行应用的管理和运维,来体验低门槛高效率的容器服务管理平台。
场景简介
当容器应用日渐增多且容器间的调用关系越来越复杂时,在服务器上直接部署容器应用将使日常的管控工作变的困难。为了简化复杂的分布式应用程序管理、提高资源利用率、实现弹性伸缩并保障容器的服务发现和负载均衡,有必要使用容器编排来管控我们的容器应用。
本次实验任务实现了将容器化的应用快速发布到阿里云ACK Serverless集群中,并实现外部访问,同时在ACK Serverless集群中进行应用的管理和运维,来体验低门槛高效率的容器服务管理平台。
实验主要分为以下几个步骤:
ASK集群创建。
通过镜像在ASK中部署无状态容器应用。
配置数据持久化(PV/PVC)。
配置Service实现外部访问。
ASK集群管理与应用运维。
资源释放。
费用说明
本实验预计2个小时产生费用4元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
背景知识
本场景主要涉及以下云产品和服务:
容器服务Serverless版 ACK Serverless
容器服务 Serverless 版 ACK Serverless 是一款基于阿里云弹性计算基础架构,同时完全兼容 Kubernetes 生态,安全、可靠的容器产品。通过该产品,您无需管理和维护集群即可快速创建 Kubernetes 容器应用,并且根据应用实际使用的 CPU 和内存资源量进行按需付费,从而使您更专注于应用本身,而非运行应用的基础设施。
弹性容器实例 ECI
阿里云弹性容器实例(Elastic Container Instance)是 Serverless 和容器化的弹性计算服务。您无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。
可观测监控Prometheus版
可观测监控 Prometheus 版作为云原生指标监控平台,完整兼容 Prometheus 开源生态,为运维工程师、SRE工程师等不同角色提供一站式指标观测平台,满足业务自定义监控 / 应用组件监控 / 云服务监控 / 容器监控 / 系统监控等场景的监控、告警需求。
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

添加NAS挂载点
本实验为了实现ASK集群数据持久化并且使数据能够被多个Pod同时使用,声明PVC需使用NAS作为外部数据存储。NAS资源已经提前为您创建好,只需添加挂载点即可使用。
在云产品资源列表的文件系统NAS区域,单击管理。

在左侧导航栏中,单击挂载使用。

在挂载点页签,单击添加挂载点。

在添加挂载点对话框中,参考如下说明配置参数,单击确定。
参数说明:

创建ACK Serverless集群
前往容器服务管理控制台。
在集群列表页面,单击创建集群。

在集群配置页面,选择ACK Serverless集群,根据如下说明配置参数,未提及的参数保持默认即可,单击下一步:组件配置。


在组件配置页面,取消勾选日志服务,单击下一步:确认配置。

在确认配置页面,确认所选配置,待依赖检查全部通过后,单击创建集群。

在创建集群页面,单击返回集群列表。

在集群列表页面,请您耐心等待集群创建,预计需要3~5分钟。当集群状态变为运行中时,表示集群创建成功,就可以进行后续数据持久化相关操作。

通过镜像在集群中快速部署容器应用
创建存储卷(PV)和存储声明(PVC)。
为了实现用户数据持久化存储,我们需提前定义PV和PVC。PV是对存储资源的抽象,可将存储定义为一种容器应用可以直接使用的资源,而PVC定义了应用对存储资源的申请。
在集群列表页面,找到目标集群clouder-attestation,单击目标集群名称,进入集群管理控制台。

在左侧导航栏中,选择。

在存储卷页面,单击创建。

在创建存储卷对话框中,参考如下说明配置参数,未提及的参数保持默认即可,单击创建。
参数说明:

在左侧导航栏中,选择。

在存储声明页面,单击创建。

在创建存储声明对话框中,参考如下说明配置参数,未提及的参数保持默认即可,单击创建。
参数说明:

控制台进入创建应用页面。
ACK集群可以让我们在控制台上快速的通过使用镜像的方式创建应用,不用再编写复杂的YAML文件即可快速创建Pod、Service、PV及PVC等原生Kubernetes对象。
在左侧导航栏中,选择。

在无状态页面,单击使用镜像创建。

配置应用基本信息。
在应用基本信息页面,参考如下说明配置参数,未提及的参数保持默认即可,单击下一步。
参数说明:
应用名称:输入wordpress。
副本数量:设置为5。

容器配置。
本实验已经提前准备好了WordPress容器应用镜像,保存在ACR镜像仓库中。在镜像名称中填入如下镜像仓库地址。
registry.cn-hangzhou.aliyuncs.com/wordpress_clouder/clouder-attestation-wordpress:v1

单击镜像拉取策略下拉框,选择优先使用本地镜像(IfNotPresent),在所需资源中,设置CPU为1 Core,内存为2 GB。

在端口设置区域中,单击新增,并配置如下参数。
名称:输入tcp-80。
容器端口:输入80。
协议:选择TCP。

在数据卷区域中,单击增加云存储声明,并配置如下参数。
名称:输入wordpress-pvc。
挂载源:选择wordpress-pvc。
容器路径:输入/var/www/html。

配置完成后,单击下一步进入高级配置。

配置容器访问。
要使应用被外界访问,我们可以创建服务(Service)为一组具有相同功能的容器应用提供一个统一的入口地址,并且可以将请求负载分发到后端的各个容器上。
在高级配置界面,单击服务右侧的创建。

在创建服务对话框中,参考如下说明配置参数,未提及的参数保持默认即可,单击确定。
服务名称:输入wordpress-svc。
外部流量策略:选择Cluster。
端口映射名称:输入tcp-80。
服务端口:输入80。
容器端口:输入80。
协议:选择TCP。

在高级配置界面,单击页面下方的创建。

生成容器。
在创建完成页面,等待创建显示成功后单击查看应用详情。

在容器组页签,等待容器组状态都为Running时,表示应用创建成功。

获取应用访问地址并通过浏览器访问。
在容器组页签,单击访问方式。

在访问方式页面的服务区域中,获取外部端点。

在本机浏览器地址栏中,访问外部端点,即可看到WordPress初始化界面。

访问集群中应用并配置相关信息
测试访问应用。
在本机浏览器地址栏中,访问外部端点,即可看到WordPress初始化界面。

在这里我们稍作停留,需要先进行RDS数据库的配置,获取到数据库连接地址和账号信息,再继续进行WordPress应用的初始化。
获取RDS for Mysql相关信息。
在云产品资源列表的云数据库RDS区域,单击管理。

在左侧导航栏中,单击账号管理。

在用户账号页面,单击创建账号。

在创建账号面板中,参考说明配置账号信息,单击确定。
参数说明:
数据库账号:输入wpadmin
。
账号类型:选择普通账号。
密码:输入Admin@123
。
确认密码:再次输入Admin@123
。

在左侧导航栏中,单击数据库管理。

在数据库管理页面。单击创建数据库。

在创建数据库面板中,参考说明配置数据库信息,单击创建。
参数说明:
数据库(DB)名称:输入wordpress
。
支持字符集:默认设为utf8。
授权账号:选择wpadmin。

在左侧导航栏中,单击数据库管理。

在数据库连接页面,获取内网地址。
说明
在左侧云产品资源列表中也可查看到RDS数据库的内网地址。

配置WordPress初始化。
返回至WordPress初始化配置页签,选择简体中文,单击确定。

单击现在就开始。

在数据库配置页面,参考如下说明配置参数,单击Submit。

单击现在安装,配置WordPress账号信息。

在账号设置页面,参考如下说明配置参数,单击Install WordPress。

在初始化配置完成后,单击登录,进入WordPress登录页面。

在WordPress登录页面,输入用户名和密码,单击登录。
用户名:输入admin
。
密码:输入Admin@123
。
返回如下页面,表示您已成功登录到WordPress。
在集群中查看和管理应用
集群管理功能演示。
这一步主要进行演示与体验,目的是带您体验ACK Serverless集群管理相关的功能。通过集群页面我们可以管理集群相关信息,管理命名空间,创建工作负载,定义集群网络等。
前往容器服务管理控制台。
在集群列表页面,找到目标集群clouder-attestation,单击目标集群名称,进入集群管理控制台。

在基本信息页签,单击概览。

在概览页签,可以查看集群中所有命名空间下应用的相关状态以及集群中的所有事件。

在概览页签,单击基本信息。

在基本信息也去,可以查看并管理集群的API Server地址,定义的Service网段及证书等等。

在左侧导航栏中,单击命名空间与配额。

在命名空间页签,可以查看并管理集群内所有的命名空间,如果想实现应用间隔离可以通过创建不同的命名空间来实现。

在左侧导航栏中,选择。

在无状态页面,可以管理所有部署的无状态应用,单击应用右侧操作列下的更多=,可以查看对应用的各项快速管控功能,如重新部署、弹性伸缩及回滚等。

在左侧导航栏中,选择。

在服务页面,可以查看所有命名空间下的Service信息,单击更新或者查看YAML可以快速对Service进行查看修改。

ACK Serverless集群管理的更多功能可以依次查看左侧导航栏中的各标签栏进行体验。
控制台管理应用。
容器服务提供Web控制台对部署应用及应用所涉及的K8s资源进行统一查看和管理,实现免运维应用托管,降低K8s使用和维护的门槛。本步骤通过手动删除Pod,模拟应用异常下线,来体验ACK Serverless完善的核心功能。
在左侧导航栏中,选择。

在无状态页面,找到名称为wordpress的应用,单击其右侧操作列下的详情。

在容器组页签,选择任意一个Pod最右侧操作列下的。

在删除容器组对话框中,单击确定。

在容器组页签,单击右上方刷新图标,我们可以看到一个Pod被删除(Terminating)的同时,瞬间又拉起了一个Pod(Pending / ContainerCreating)。

此时通过访问方式页签获取的外部端点访问应用时,会发现wordpress应用还是持续可用的。

等待几秒后,我们刷新页面就能看到容器组中又有5个Running状态的Pod。

在容器组页签,单击事件。

在事件页签,单击Pod,可以追踪到过去一段时间该应用发生变化的整个过程。

查看容器日志。
我们经常需要查看应用日志来排查追踪问题或者获取一些访问信息,可以通过控制台的日志查看功能方便快捷的对日志信息进行检索追踪,必要时还可将日志一键下载出来,不再需要通过Shell连接集群通过相关命令查看。
在事件页签,单击日志。

在日志页签,选择目标Pod和Container,在该页面按下键盘上的Ctrl+F
,输入搜索关键字Post,就可以看到哪些客户端通过Post请求访问了我们的站点。

集群监控告警设置。
阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。
在左侧导航栏中,选择。

在页面,单击开始安装。

请您耐心等待自动安装组件和检查监控大盘(可能需要等待几分钟时间),直到检查监控大盘显示完成可刷新页面进入监控大盘。

初次进入Prometheus监控页面,如果没有正常数据显示,刷新页面即可。

在Prometheus监控页面,可以查看集群、集群组件及应用各项监控。在本实验中,选择,Namespace选择default,Deployment选择wordpress,即可查看wordpress应用的各监控项。
