以WordPress应用为例介绍云容器服务的部署与实施。
本文将以运行一个WordPress+MySQL的博客系统为例,使用云控制台创建负载的方式演示如何部署和应用容器实例服务。WordPress需配合MySQL一起使用:WordPress运行内容管理程序,MySQL作为数据库存储数据。通常将WordPress和MySQL分别运行在两个容器中,因此需要创建两个工作负载。
登录华为云控制台,单击界面左上角的“服务列表”按钮,单击“容器服务”列表中的“云容器实例CCI”链接,打开云容器实例控制台,如图1所示。
■ 图1 云容器实例控制台
在图1中,以图示的形式简单列出了使用云容器服务的简单步骤。
第一步,使用容器镜像服务(SWR)创建镜像仓库,并上传容器镜像,此步为可选项。
第二步,创建命名空间,即如果存在多个团队或项目时可按照逻辑划分创建不同类型命名空间。
第三步,使用容器镜像、kubectl等方式,创建工作负载。云容器实例支持的工作负载比云容器引擎相对少一些,主要包括无状态负载(Deployment)、短时任务(Job)和定时任务(CronJob)3种。Job是用来控制批处理型任务的资源对象。批处理业务与长期伺服业务(Deployment)的主要区别是批处理业务的运行有头有尾,而长期伺服业务在用户不停止的情况下永远运行。定时任务是基于时间控制的短时任务(Job),类似于Linux系统的crontab文件中的一行,在指定的时间周期运行指定的短时任务。
第四步,查看工作负载的运行状态、监控告警,对工作负载进行升级、弹性伸缩等操作。
单击图1所示界面中的“+创建命名空间”按钮,进入命名空间配置界面,如图2所示。针对不同的资源诉求场景,可以创建不同类型的命名空间,也可以一键式创建通用计算场景下的命名空间。
在图2中,此处样例选择“通用计算型”命名空间,单击“+创建”按钮,进入图3所示的界面。在界面中填写命名空间名称,用户可以自定义设置。设置VPC,可选择使用已有VPC或新建VPC,新建VPC需要填写VPC网段,建议使用网段10.0.0.0/8~22,172.16.0.0/12~22,192.168.0.0/16~22。在创建命名空间时,高级设置部分保持默认即可。最后单击图3所示界面右下角的“创建”按钮,完成命名空间的创建。
■ 图2 选择命名空间的资源类型
■图3 配置命名空间基本信息及子网
登录CCI管理控制台,在左侧导航栏中的“工作负载”菜单项中选择“无状态(Deployment)”菜单,单击右侧界面的“创建负载”按钮,弹出如图4所示的“创建无状态负载”界面。
■图4 “创建无状态负载”界面
在图4所示的界面中配置和添加如下基本信息。
(1) 定义负载名称。由用户自定义。此处样例为mysql。
(2) 选择命名空间。选择之前创建的命名空间。此处选择为cci-namespace-wordpress。
(3) 选择Pod数量。一般实际业务部署推荐采用HA部署,即至少要有两个Pod。本文中修改Pod数量为1。
(4) 选择Pod规格。根据业务需要选择即可,此处样例选择“通用计算型”,CPU 0.5核,内存1GB。
(5) 容器配置。首先选择镜像,单击“开源镜像中心”标签,然后在标签右上角的搜索输入框内输入mysql,就会搜索出MySQL的容器镜像,如图5所示。
在图5所示中,单击“使用该镜像”按钮,弹出如图6-14所示界面。在该界面中的“镜像版本”选项的下列列表中选择镜像版本号为5.7,并为容器自定义一个名字,此处为container-mysql,然后单击“高级设置”标签,在打开的标签中单击“手动输入”环境变量,在“变量名称”处输入MYSQL_ROOT_PASSWORD,在“变量值”输入框中输入用户自定义的数据库root用户的密码,此处样例输入123456。
(6) 配置容器访问设置。在图6所示界面的右下角单击“下一步:访问设置”按钮,进入图7所示界面。在该界面中,选择“访问方式”为Service。负载访问的“协议”选择为TCP,“负载访问端口”和“容器端口”均设置为3306。
■ 图5 为容器选择镜像
■图6 容器详细配置
■图7 容器访问设置
在图7所示界面中,单击“下一步:高级设置”按钮,进入如图8所示高级设置界面,选择容器的“升级策略”为“滚动升级”,“最大无效实例数”为1(每次滚动升级允许的最大无效实例数,如果等于实例数,就会有中断业务服务风险(最小存活实例数=实例数-最大无效实例数))。然后,确认容器规格无误后,单击“提交”按钮即可创建工作负载。到此为止,运行MySQL数据库的容器工作负载即创建完成。
■ 图8 工作负载高级设置
参照创建MySQL负载的过程,继续创建WordPress负载。此处所创建的WordPress工作负载仍然是一个“无状态”(Deployment)。创建工作负载的配置界面如图9所示。
(1) 负载名称:用户自定义名称。此处样例为wordpress。
(2) 命名空间:选择之前创建的命名空间。
(3) Pod数量:本文中修改Pod数量为2。
(4) Pod规格:选择“通用计算型”“CPU 0.5核”“内存1GB”选项。
■ 图9 WordPress负载基本信息
(5) 容器配置。在开源镜像中心搜索wordpress,选择wordpress镜像,如图10所示。配置镜像参数,镜像版本设置为php7.1,CPU和内存(GB)分别设置为0.50和1.000,如图11所示。
■图10 WordPress镜像选择
■图11 容器镜像参数配置
(6) 容器高级配置。在高级配置中,设置环境变量,使WordPress可以访问MySQL数据库,如图12所示,环境变量的取值说明如表1所示。
(7) 配置负载访问信息。“负载访问”选择“公网访问”,“服务名称”为wordpress,选择ELB实例(如果没有实例,下拉列表中将出现“新建增强型ELB实例”选项,此时应选择并创建一个ELB),选择ELB为HTTP/HTTPS,ELB端口号为3562,指定负载访问的8088
■图12 容器高级配置
■表1环境变量取值
端口映射到容器的80端口(WordPress镜像的默认访问端口),HTTP路由映射路径设置为“/”,即通过http://elb ip:外部端口,就可以访问WordPress应用,设置路由映射到8088负载端口。配置如图13所示。
■图13 容器负载访问配置
配置完成后,单击“下一步”按钮,确认规格后,单击“提交”按钮,即可创建WordPress负载。在负载列表中,待负载状态为“运行中”时表明负载创建成功。
在工作负载列表界面,单击刚刚创建的WordPress负载,进入负载详情界面,在“访问配置”处选择“公网访问”标签,查看公网访问地址,即ELB实例的“IP地址:端口”,如图14所示。
■图14 WordPress负载访问配置
在客户端本地的浏览器中输入ELB的公网访问地址,即可打开如图15所示的WordPress安装界面,此时说明基于容器实例部署成功。
■图15 WordPress安装界面