#需要资源或有问题的,可私博主!!!
#需要资源或有问题的,可私博主!!!
#需要资源或有问题的,可私博主!!!
某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps 开发运维一体化”和“数据驱动产品开发”,拟采用开源 OpenStack 搭建企业内部私有云平台,开源 Kubernetes 搭建云原生服务平台,选择国内主流公有云平台服务,基于数字化平台底座,面向业务开发边缘计算云应用产品。
拟将该任务交给工程师 A 与 B,分工协助完成云平台服务部署、云应用开发、云系统运维等任务,系统架构如图 1 所示,IP 地址规划如表 1 所示。
|
图 1 系统架构图
表 1IP 地址规划
说明
- 竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,参赛选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题,2 名参赛选手的账号密码相同;
- 表中的x 为赛位号,在进行 OpenStack 搭建时的第二块网卡地址根据题意自行创建;
- 根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
- 考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
- 竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的IP 地址,用户名和密码。
模块一 私有云(50 分)
企业首先完成私有云平台搭建和运维,私有云平台提供云主机、云网络、云存储等基础架构云服务,并开发自动化运维程序。
任务 1 私有云服务搭建(10 分)
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 服务。
任务 2 私有云服务运维(**25** 分)
1.2.1 OpenStack 开放镜像权限
在 admin 项目中存在 glance-cirros 镜像文件,将 glance-cirros 镜像指定 demo项目进行共享使用。
1.2.2 SkyWalking 应用部署
申请一台云主机,使用提供的软件包安装 Elasticsearch 服务和SkyWalking 服务。再申请一台云主机,用于搭建 gpmall 商城应用,并配置 SkyWalking 监控gpmall 主机。
1.2.3 OpenStack 镜像压缩
在 HTTP 文件服务器中存在一个镜像为 CentOS7.5-compress.qcow2 的镜像, 请对该镜像进行压缩操作。
1.2.4 Glance 对接 Cinder 存储
在自行搭建的 OpenStack 平台中修改相关参数,使 Glance 可以使用 Cinder作为后端存储。
1.2.5 使用 Heat 模板创建容器
在自行搭建的OpenStack 私有云平台上,在/root 目录下编写Heat 模板文件, 要求执行 yaml 文件可以创建名为 heat-swift 的容器。
1.2.6 Nova 清除缓存
在 OpenStack 平台上,修改相关配置,让长时间不用的镜像缓存在过一定的时间后会被自动删除。
1.2.7 Redis 集群部署。
部署 Redis 集群,Redis 的一主二从三哨兵架构。
1.2.8 Redis AOF 调优
修改在 Redis 相关配置,避免 AOF 文件过大,Redis 会进行 AOF 重写。
1.2.9 JumpServer 堡垒机部署
使用提供的软件包安装 JumpServer 堡垒机服务,并配置使用该堡垒机对接自己安装的控制和计算节点。
1.2.10 完成私有云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务 3 私有云运维开发(15 分)
1.3.1 编写 Shell 一键部署脚本
编写一键部署脚本,要求可以一键部署 gpmall 商城应用系统。
1.3.2 Ansible 部署 FTP 服务
编写 Ansible 脚本,部署 FTP 服务。
1.3.3 Ansible 部署 Kafka 服务
编写 Playbook,部署的 ZooKeeper 和 Kafka。
1.3.4 编写 OpenStack 容器云平台自动化运维工具。(本任务只公布考试范围, 不公布赛题)
模块二 容器云(50 分)
企业构建 Kubernetes 容器云集群,引入 KubeVirt 实现 OpenStack 到Kubernetes 的全面转型,用 Kubernetes 来管一切虚拟化运行时,包含裸金属、VM、容器。同时研发团队决定搭建基于 Kubernetes 的 CI/CD 环境,基于这个平台来实现 DevOps 流程。引入服务网格 Istio,实现业务系统的灰度发布,治理和优化公司各种微服务,并开发自动化运维程序。
任务 1 容器云服务搭建(10 分)
2.1.1 部署容器云平台
使用 OpenStack 私有云平台创建两台云主机,分别作为 Kubernetes 集群的master 节点和 node 节点,然后完成 Kubernetes 集群的部署,并完成 Istio 服务网格、KubeVirt 虚拟化和 Harbor 镜像仓库的部署。
任务 2 容器云服务运维(25 分)
2.2.1 容器化部署 Node-Exporter
编写 Dockerfile 文件构建 exporter 镜像,要求基于 centos 完成 Node-Exporter服务的安装与配置,并设置服务开机自启。
2.2.2 容器化部署 Alertmanager
编写Dockerfile 文件构建alert 镜像,要求基于 centos:latest 完成Alertmanager服务的安装与配置,并设置服务开机自启。
2.2.3 容器化部署 Grafana
编写 Dockerfile 文件构建 grafana 镜像,要求基于 centos 完成 Grafana 服务的安装与配置,并设置服务开机自启。
2.2.4 容器化部署 Prometheus
编写 Dockerfile 文件构建 prometheus 镜像,要求基于 centos 完成 Promethues服务的安装与配置,并设置服务开机自启。
2.2.5 编排部署监控系统
编写 docker-compose.yaml 文件, 使用镜像 exporter、alert、grafana 和prometheus 完成监控系统的编排部署。
2.2.6 安装 Jenkins
将Jenkins 部署到default 命名空间下。要求完成离线插件的安装,设置Jenkins的登录信息和授权策略。
2.2.7 安装 GitLab
将 GitLab 部署到 default 命名空间下,要求设置 root 用户密码,新建公开项目,并将提供的代码上传到该项目。
2.2.8 配置 Jenkins 连接 GitLab
在 Jenkins 中新建流水线任务,配置 GitLab 连接 Jenkins,并完成 WebHook的配置。
2.2.9 构建 CI/CD
在流水线任务中编写流水线脚本,完成后触发构建,要求基于 GitLab 中的项目自动完成代码编译、镜像构建与推送、并自动发布服务到 Kubernetes 集群中。
2.2.10 服务网格:创建 Ingress Gateway
将 Bookinfo 应用部署到 default 命名空间下,请为 Bookinfo 应用创建一个网关,使外部可以访问 Bookinfo 应用。
2.2.11 KubeVirt 运维:创建 VM
使用提供的镜像在 default 命名空间下创建一台 VM,名称为 exam,指定 VM的内存、CPU、网卡和磁盘等配置。
2.2.12 完成容器云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务 3 容器云运维开发(15 分)
2.3.1 管理 job 服务
Kubernetes Python 运维脚本开发-使用 SDK 方式管理 job 服务。
2.3.2 自定义调度器
Kubernetes Python 运维脚本开发-使用 Restful API 方式管理调度器。
2.3.3 编写 Kubernetes 容器云平台自动化运维工具。(本任务只公布考试范围,不公布赛题)