【赛程名称】云计算赛项第二场-容器云
说明: 完成本任务需要两台安装了 CentOS7.9 操作系统的云主机: master 和 node。Chinaskill_Cloud_PaaS.iso 镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。
某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD (Continuous Integration 持续集成、Continuous Delivery 持续交付) 成了公司的当务之急,研发团队决定搭建基于Kubernetes 的CICD 环境,希望基于这个平台来实现 DevOps 的部分流程,来减轻开发、部署、运维的负担。
为了能够让公司开发的web 应用系统产品能够基于服务器的性能、可靠性、高可用性与方便维护,研发部决定使用微服务架构,实现基于 Kubernetes 的容器化部署。
节点规划如表 1 所示。
表 1 容器云平台节点规划
节点角色 | 主机名 | VCPUS | 内存 | 硬盘 |
Master、Harbor、CICD | master | 8 | 12G | 100G |
Worker Node | node | 8 | 8G | 100G |
【适用平台】私有云
【题目 1】平台部署--部署容器云平台[1.5 分]
登录OpenStack 私有云平台,使用 CentOS7.9 镜像创建两台云主机,使用 kubeeasy 工具完成Kubernetes 1.22.1 集群的搭建。然后使用 nginx 镜像在 default 命名空间下创建一个名为exam 的Pod,并为该 Pod 设置环境变量 exam,其值为 2022。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
|
【题目 2】平台部署--部署 Istio 服务网格[0.5 分]
在 Kubernetes 集群上完成 Istio 服务网格环境的安装,然后新建命名空间 exam,为该命名空间开启自动注入 Sidecar。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
|
【题目 3】平台部署--部署 KubeVirt 虚拟化[1 分]
在 Kubernetes 集群上完成KubeVirt 虚拟化环境的安装。完成后提交 master 节点的用户名、密码和 IP 到答题框。
1.KubeVirt 所有组件运行成功得 1 分。 |
【题目 4】平台部署--部署 Harbor 仓库及Helm 包管理工具[1 分]
在 master 节点上完成Harbor 镜像仓库及Helm 包管理工具的部署。然后使用 nginx 镜像自定义一个 Chart,Deployment 名称为 nginx,副本数为 1,然后将该 Chart 部署到 default 命名空间下,Release 名称为 web。
完成后提交 master 节点的用户名、密码和 IP 到答题框。
|
【题目 5】集群管理--备份 ETCD 数据[1 分]
Kubernetes 使用 ETCD 来存储集群的实时运行数据,为防止服务器宕机导致 Kubernetes集群数据丢失,请将Kubernetes 集群数据备份到/root/etcd.db 中。完成后提交 master 节点的 IP 地址、用户名和密码到答题框。
|
【任务 2】容器云应用部署:Docker Compose 编排部署[7.0 分]
【适用平台】私有云
Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性。请根据要求完成数据库服务 MariaDB、缓存服务 Redis、微服务 Hyperf 及前端服务Nginx 按照要求进行容器化。
【题目 1】容器化 MariaDB 服务[1 分]
编写Dockerfile 文件构建hyperf-mariadb:v1.0 镜像,具体要求如下:(需要用到的软件包:
Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2)完成 MariaDB 服务的安装;
(3)声明端口:3306;
- 设置数据库 root 用户的密码为root;
- 将提供的数据库文件 hyperf_admin.sql 导入数据库;
- 设置服务开机自启。
完成后构建镜像,并提交master 节点的用户名、密码和 IP 地址到答题框。
|