某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选择国内主流公有云平台服务,基于数字化平台底座,面向业务开发边缘计算云应用产品。
拟将该任务交给工程师A与B,分工协助完成云平台服务部署、云应用开发、云系统运维等任务,系统架构如图1所示,IP地址规划如表1所示。
图 1 系统架构图
表 1 IP 地址规划
设备名称 |
主机名 |
接 口 |
IP 地址 |
说明 |
云服务器 1 |
controller |
eth0 |
172.129.x.0/24 |
vlan x |
eth1 |
自定义 |
自行创建 |
||
云服务器 2 |
compute |
eth0 |
172.129.x.0/24 |
vlan x |
eth1 |
自定义 |
自行创建 |
||
云服务器 3 ... 云服务器n |
自定义 |
eth0 |
172.129.x.0/24 |
|
PC-1 |
本地连接 |
172.24.16.0/24 |
PC 使用 |
说明
1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛私有云平台,创建云主机进行相应答题,2名参赛选手的账号密码相同;
2.表中的x为赛位号,在进行OpenStack搭建时的第二块网卡地址根据题意自行创建;
3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的IP地址,用户名和密码。
企业首先完成私有云平台搭建和运维,私有云平台提供云主机、云网络、云存储等基础架构云服务,并开发自动化运维程序。
1.1.1 基础环境配置
1.控制节点主机名为controller,设置计算节点主机名为compute;
2.hosts文件将IP地址映射为主机名。
1.1.2 yum源配置
使用提供的http服务地址,分别设置controller节点和compute节点的yum源文件http.repo。
1.1.3 配置无秘钥ssh
配置controller节点可以无秘钥访问compute节点。
1.1.4 基础安装
在控制节点和计算节点上分别安装openstack-iaas软件包。
1.1.5 数据库安装与调优
在控制节点上使用安装Mariadb、RabbitMQ等服务。并进行相关操作。
1.1.6 Keystone服务安装与使用
在控制节点上安装Keystone服务并创建用户。
1.1.7 Glance安装与使用
在控制节点上安装Glance 服务。上传镜像至平台,并设置镜像启动的要求参数。
1.1.8 Nova安装
在控制节点和计算节点上分别安装Nova服务。安装完成后,完成Nova相关配置。
1.1.9 Neutron安装
在控制和计算节点上正确安装Neutron服务。
1.1.10 Dashboard安装
在控制节点上安装Dashboard服务。安装完成后,将Dashboard中的 Django数据修改为存储在文件中。
1.1.11 Swift安装
在控制节点和计算节点上分别安装Swift服务。安装完成后,将cirros镜像进行分片存储。
1.1.12 Cinder创建硬盘
在控制节点和计算节点分别安装Cinder服务,请在计算节点,对块存储进行扩容操作。
1.1.13 Manila服务安装与使用
在控制和计算节点上分别在控制节点和计算节点安装Manila服务。
1.2.1 Keystone优化-优化token失效时间
请修改相关配置,将Keystone的失效列表缓存时间增加到原来的两倍。
1.2.2 OpenStack消息队列调优
在OpenStack私有云平台,分别通过用户级别、系统级别、配置文件来设置RabbitMQ服务的最大连接数为10240。
1.2.3 Raid磁盘阵列管理
在云主机上对云硬盘进行操作,先进行分区,然后创建名为/dev/md5、raid级别为5的磁盘阵列加一个热备盘。
1.2.4 虚拟机调整flavor
使用OpenStack私有云平台,请修改相应配置,实现云主机调整实例大小可以使用。
1.2.5 OpenStack镜像压缩
在HTTP文件服务器中存在一个镜像为CentOS7.5-compress.qcow2的镜像,请对该镜像进行压缩操作。
1.2.6 Ceph部署
使用提供的ceph.tar.gz软件包,安装ceph服务并完成初始化操作。
1.2.7 使用Heat模板创建网络
在自行搭建的OpenStack私有云平台上,编写Heat模板文件,完成网络的创建。
1.2.8 Glance调优
在OpenStack平台中,修改相关配置文件,将子进程数量相应的配置修改成2。
1.2.9 Nova资源优化
编辑nova.conf文件,将内存预留量配置为4GB。
1.2.10 Nova安装与优化-优化数据库连接
修改nova相关配置文件,修改连接池大小和最大允许超出的连接数为10。
1.2.11 完成私有云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
1.3.1 编写Shell一键部署脚本
编写一键部署nfs云网盘应用系统。
1.3.2 Ansible部署MariaDB服务
编写Ansible脚本,部署MariaDB服务。
1.3.3 Ansible部署zabbix服务
编写Ansible脚本,部署zabbix服务。
1.3.4 编写OpenStack容器云平台自动化运维工具。(本任务只公布考试范围,不公布赛题)
企业构建Kubernetes容器云集群,引入KubeVirt实现OpenStack到Kubernetes的全面转型,用Kubernetes来管一切虚拟化运行时,包含裸金属、VM、容器。同时研发团队决定搭建基于Kubernetes 的CI/CD环境,基于这个平台来实现DevOps流程。引入服务网格Istio,实现业务系统的灰度发布,治理和优化公司各种微服务,并开发自动化运维程序。
2.1.1 部署容器云平台
使用OpenStack私有云平台创建两台云主机,分别作为Kubernetes集群的master节点和node节点,然后完成Kubernetes集群的部署,并完成Istio服务网格、KubeVirt虚拟化和Harbor镜像仓库的部署。
2.2.1 容器化部署MariaDB
编写Dockerfile文件构建mysql镜像,要求基于centos完成MariaDB数据库的安装与配置,并设置服务开机自启。
2.2.2 容器化部署Redis
编写Dockerfile文件构建redis镜像,要求基于centos完成Redis服务的安装和配置,并设置服务开机自启。
2.2.3 容器化部署Nginx
编写Dockerfile文件构建nginx镜像,要求基于centos完成Nginx服务的安装和配置,并设置服务开机自启。
2.2.4 容器化部署Explorer
编写Dockerfile文件构建explorer镜像,要求基于centos完成PHP和HTTP环境的安装和配置,并设置服务开机自启。
2.2.5 编排部署Explorer管理系统
编写docker-compose.yaml文件,要求使用镜像mysql、redis、nginx和explorer完成Explorer管理系统的编排部署。
2.2.6 安装GitLab环境
新建命名空间kube-ops,将GitLab部署到该命名空间下,然后完成GitLab服务的配置。
2.2.7 部署GitLab Runner
将GitLab Runner部署到kube-ops命名空间下,并完成GitLab Runner在GitLab中的注册。
2.2.8 配置GitLab
在GitLab中新建公开项目并导入离线项目包,然后将Kubernetes集群添加到GitLab中。
2.2.9 构建CI/CD
在项目中编写流水线脚本,然后触发自动构建,要求完成构建代码、构建镜像、推送镜像Harbor、并发布服务到Kubernetes集群。
2.2.10 服务网格:路由管理
将Bookinfo应用部署到default命名空间下,应用默认请求路由,将所有流量路由到各个微服务的v1版本。然后更改请求路由reviews,将指定比例的流量从reviews的v1转移到v3。
2.2.11 KubeVirt运维:VMI管理
将提供的镜像在default命名空间下创建一台VMI,名称为exam,使用Service对外暴露VMI。
2.2.12 完成容器云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
2.3.2 管理Deployment资源
Kubernetes Python运维脚本开发,使用SDK方式管理Deployment服务。
2.3.1 管理service资源
Kubernetes Python运维脚本开发,使用Restful APIs方式管理service服务。
2.3.3 编写Kubernetes容器云平台自动化运维工具。(本任务只公布考试范围,不公布赛题)
企业选择国内公有云提供商,选择云主机、云网络、云硬盘、云防火墙、负载均衡等服务,可创建Web服务,共享文件存储服务,数据库服务,数据库集群等服务。搭建基于云原生的DevOps相关服务,构建云、边、端一体化的边缘计算系统,并开发云应用程序。
根据上述公有云平台的特性,完成公有云中的各项运维工作。
3.1.1 私有网络管理
在公有云中完成虚拟私有云网络的创建。
3.1.2 云实例管理
登录公有云平台,创建两台云实例虚拟机。
3.1.3 管理数据库
使用intnetX-mysql网络创建两台chinaskill-sql-1和chinaskill-sql-2云服务器,并完成MongoDB安装。
3.1.4 主从数据库
在chinaskill-sql-1和chinaskill-sql-2云服务器中配置MongoDB主从数据库。
3.1.5 node环境管理
使用提供的压缩文件,安装Node.js环境。
3.1.6 安全组管理
根据要求,创建一个安全组。
3.1.7 RocketChat上云
使用http服务器提供文件,将Rocket.Chat应用部署上云。
3.1.8 NAT网关
根据要求创建一个公网NAT网关。
3.1.9 云服务器备份
创建一个云服务器备份存储库名为server_backup,容量为100G。将ChinaSkill-node-1云服务器制作镜像文件chinaskill-image。
3.2.1 云容器引擎
在公有云上,按照要求创建一个x86架构的容器云集群。
3.2.2 云容器管理
使用插件管理在kcloud容器集群中安装Dashboard可视化监控界面。
3.2.3 使用kubectl操作集群
在kcloud集群中安装kubectl命令,使用kubectl命令管理kcloud集群。
3.2.4 安装Helm
使用提供的Helm软件包,在kcloud集群中安装Helm服务。
3.2.5 WordPress应用部署
根据提供的chart包wordpress-13.0.23.tgz部署WordPress服务。
3.2.6 ChartMuseum仓库部署
在k8s集群中创建chartmuseum命名空间,编写yaml文件在chartmuseum命名空间中使用chartmuseum:latest镜像创建本地私有chart仓库。
3.3.1 开发环境搭建
创建一台云主机,并登录此云服务器,安装Python3.68运行环境与SDK依赖库。
3.3.2 云主机管理
调用SDK云主机管理的方法,实现云主机的的增删查改。
3.3.3 云主机组管理
调用SDK云主机组管理的方法,实现云主机组的的增删查改。
3.3.4 弹性伸缩组管理
编写Python代码,调用弹性伸缩组API,创建弹性伸缩组。
3.3.5 完成公有云平台自动化运维程序开发。(本任务只公布考试范围,不公布赛题)
3.4.1 云端部署
构建Kubernetes容器云平台,云端部署KubeEdge CloudCore云测模块,并启动cloudcore服务。
3.4.2 边端部署
在边侧部署KubeEdge EdgeCore边侧模块,并启动edgecore服务。
3.4.3 边缘应用部署
通过边缘计算平台完成应用场景镜像部署与调试。(本任务只公布考试范围,不公布赛题)
3.5.1 对接边缘计算系统,完成云应用微服务开发。(本任务只公布考试范围,不公布赛题)