某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“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地址,用户名和密码。
模块一 私有云(30分)
企业首先完成私有云平台搭建和运维,私有云平台提供云主机、云网络、云存储等基础架构云服务,并开发自动化运维程序。
任务1 私有云服务搭建(5分)
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 Cloudkitty服务安装与使用
在控制节点安装cloudkitty服务,安装完毕后,启用hashmap评级模块,并设置计费规则。
任务2 私有云服务运维(15分)
1.2.1 OpenStack平台内存优化
搭建完OpenStack平台后,关闭系统的内存共享,打开透明大页。
1.2.2 修改文件句柄数
修改相关参数,将控制节点的最大文件句柄数永久修改为65535。
1.2.3 Linux系统调优-防止SYN攻击
修改控制节点的相关配置文件,开启SYN cookie,防止SYN洪水攻击。
1.2.4 Keystone权限控制
使用自行搭建的OpenStack私有云平台,修改普通用户权限,使普通用户不能对镜像进行创建和删除操作。
1.2.5 Nova保持云主机状态
修改OpenStack相关参数,使得云平台在意外断电又开启后,云主机可以保持断电前的状态。
1.2.6 镜像转换
使用CentOS7.5-compress.qcow2 的镜像,将该镜像转换为RAW格式。
1.2.7 使用Heat模板创建网络
在自行搭建的OpenStack私有云平台上,编写Heat模板文件,完成网络的创建。
1.2.8 Glance镜像存储限制
在OpenStack平台上,请修改Glance后端配置文件,将用户的镜像存储配额限制为20GB。
1.2.9 KVM I/O优化
使用自行搭建的OpenStack私有云平台,优化KVM的I/O调度算法,将默认的模式修改为none模式。
1.2.10 Cinder限速
请修改cinder后端配置文件将卷复制带宽限制为最高100 MiB/s。
1.2.11 完成私有云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务3 私有云运维开发(10分)
1.3.1 编写Shell一键部署脚本
编写一键部署owncloud云网盘应用系统。
1.3.2 Ansible部署FTP服务
编写Ansible脚本,部署FTP服务。
1.3.3 Ansible部署zabbix服务
编写Ansible脚本,部署zabbix服务。
1.3.4 编写OpenStack容器云平台自动化运维工具。(本任务只公布考试范围,不公布赛题)
模块二 容器云(30分)
企业构建Kubernetes容器云集群,引入KubeVirt实现OpenStack到Kubernetes的全面转型,用Kubernetes来管一切虚拟化运行时,包含裸金属、VM、容器。同时研发团队决定搭建基于Kubernetes 的CI/CD环境,基于这个平台来实现DevOps流程。引入服务网格Istio,实现业务系统的灰度发布,治理和优化公司各种微服务,并开发自动化运维程序。
任务1 容器云服务搭建(5分)
2.1.1 部署容器云平台
使用OpenStack私有云平台创建两台云主机,分别作为Kubernetes集群的master节点和node节点,然后完成Kubernetes集群的部署,并完成Istio服务网格、KubeVirt虚拟化和Harbor镜像仓库的部署。
任务2 容器云服务运维(15分)
2.2.1 容器化Memcache服务:
编写Dockerfile文件构建memcached镜像,要求基于centos完成memcached服务的安装与配置,并设置服务开机自启。
2.2.2 容器化MariaDB服务
编写Dockerfile文件构建mysql镜像,要求基于centos完成MariaDB服务的安装与配置,并设置服务开机自启。
2.2.3 容器化前端服务
编写Dockerfile文件构建nginx镜像,要求基于centos完成Nginx服务的安装与配置,并设置服务开机自启。
2.2.4 容器化Blog服务
编写Dockerfile文件构建blog镜像,要求基于centos完成Python3.6环境和DjangoBlog服务的安装与配置,并设置服务开机自启。
2.2.5 编排部署博客系统
编写docker-compose.yaml文件,要求使用镜像:memcached、mysql、nginx和blog完成Blog博客系统的编排部署。
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 服务网格:创建DestinationRule
将Bookinfo应用部署到default命名空间下,为Bookinfo应用的四个微服务设置默认目标规则,指定各个服务的可用版本。
2.2.11 KubeVirt运维:创建VMI
使用提供的镜像在default命名空间下创建一台VMI,名称为exam,指定VMI的内存、CPU、启动参数等配置。
2.2.12 完成容器云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务3 容器云运维开发(10分)
2.3.1 管理job服务
Kubernetes Python运维脚本开发,使用SDK方式管理job服务。
2.3.2 管理service服务
Kubernetes Python运维脚本开发,使用Restful APIs方式管理service服务。
2.3.3 编写Kubernetes容器云平台自动化运维工具。(本任务只公布考试范围,不公布赛题)
模块三 公有云(40分)
企业选择国内公有云提供商,选择云主机、云网络、云硬盘、云防火墙、负载均衡等服务,可创建Web服务,共享文件存储服务,数据库服务,数据库集群等服务。搭建基于云原生的DevOps相关服务,构建云、边、端一体化的边缘计算系统,并开发云应用程序。
根据上述公有云平台的特性,完成公有云中的各项运维工作。
任务1 公有云服务搭建(5分)
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.1.10 负载均衡器
根据要求创建一个负载均衡器chinaskill-elb。
3.1.11 弹性伸缩管理
根据要求新建一个弹性伸缩启动配置。
任务2 公有云服务运维(10分)
3.2.1 云容器引擎
在公有云上,按照要求创建一个x86架构的容器云集群。
3.2.2 云容器管理
使用插件管理在kcloud容器集群中安装Dashboard可视化监控界面。
3.2.3 使用kubectl操作集群
在kcloud集群中安装kubectl命令,使用kubectl命令管理kcloud集群。
3.2.4 云硬盘存储卷
按照要求购买云硬盘存储卷。
3.2.5 多容器Pod管理
在kcloud集群节点/root目录下编写YAML文件mu-pod.yaml,要求一个pod中包含两个容器。
3.2.6 Namespace管理
在kcloud集群节点/root目录下编写YAML文件my-namespace.yaml并创建namespace。
任务3 公有云运维开发(10分)
3.3.1 开发环境搭建
创建一台云主机,并登录此云服务器,安装Python3.68运行环境与SDK依赖库。
3.3.2 虚拟私有云VPC管理
调用api安全组的接口,实现VPC的增删查改。
3.3.3 虚拟私有云VPC子网管理
调用api安全组的接口,实现虚拟私有云VPC子网的增删查改。
3.3.4 容器集群管理:调用SDK容器集群方法,实现容器集群增、删查、改。
3.3.5 完成公有云平台自动化运维程序开发。(本任务只公布考试范围,不公布赛题)
任务4 边缘计算系统运维(10分)
3.4.1 云端部署
构建Kubernetes容器云平台,云端部署KubeEdge CloudCore云测模块,并启动cloudcore服务。
3.4.2 边端部署
在边侧部署KubeEdge EdgeCore边侧模块,并启动edgecore服务。
3.4.3 边缘应用部署
通过边缘计算平台完成应用场景镜像部署与调试。(本任务只公布考试范围,不公布赛题)
任务5 边缘计算云应用开发(5分)
3.5.1 对接边缘计算系统,完成云应用微服务开发。(本任务只公布考试范围,不公布赛题)