#需要资源(软件包及镜像)或有问题的,可私聊博主!!!
#需要资源(软件包及镜像)或有问题的,可私聊博主!!!
#需要资源(软件包及镜像)或有问题的,可私聊博主!!!
某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“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 使用 | |
PC-2 | 本地连接 | 172.24.16.0/24 | PC 使用 |
说明
- 竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛私有云平台,创建云主机进行相应答题,2 名参赛选手的账号密码相同;
- 表中的 x 为赛位号,在进行 OpenStack 搭建时的第二块网卡地址根据题意自行创建;
- 根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
- 考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
- 竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的IP 地址,用户名和密码。
模块一 私有云(50 分)
企业首先完成私有云平台搭建和运维,私有云平台提供云主机、云网络、云存储等基础架构云服务,并开发自动化运维程序。
任务 1 私有云服务搭建(10 分)
1.1.1 基础环境配置
-
控制节点主机名为controller,设置计算节点主机名为compute;
-
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 KVM 调优
在自行搭建的OpenStack 私有云平台或赛项提供的all-in-one 平台上,修改相关配置文件,启用-device virtio-net-pci in kvm,
任务 2 私有云服务运维(25 分)
1.2.1 Keystone 优化-优化token 失效时间
请修改相关配置,将Keystone 的失效列表缓存时间增加到原来的两倍。
1.2.2 Nova 调优
安装 nova 完成后,修改相关配置文件将实例等待事件的最大时间调整为 600。
1.2.3 Nova 调度器管理
在OpenStack 中,修改调度器规则为会将 VM 放置到load 最低的节点上的调度器。
1.2.4 Linux 系统调优-swap 限制
修改controller 节点的配置文件,要求永久生效swappiness 为 20。
1.2.5 OpenStack 镜像压缩
在HTTP 文件服务器中存在一个镜像为CentOS7.5-compress.qcow2 的镜像,请对该镜像进行压缩操作。
1.2.6 Ceph 部署
使用提供的ceph.tar.gz 软件包,安装ceph 服务并完成初始化操作。
1.2.7 Minio 服务搭建
使用提供的OpenStack 云平台,申请一台云主机,使用提供的软件包安装部署MINIO 服务并使用systemctl 管理。
1.2.8 Glance 调优
在OpenStack 平台中,修改相关配置文件,将子进程数量相应的配置修改成 2。
1.2.9 Nova 资源优化
编辑nova.conf 文件,将内存预留量配置为 4GB。
1.2.10 Nova 安装与优化-优化数据库连接
修改nova 相关配置文件,修改连接池大小和最大允许超出的连接数为 10。
1.2.11 完成私有云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务 3 私有云运维开发(15 分)
1.3.1 编写Shell 脚本备份数据库编写数据库的定期备份shell 脚本。
1.3.2 Ansible 部署zabbix 服务
编写Ansible 脚本,部署zabbix 服务。
1.3.3 Ansible 部署ELK 服务编写Playbook,部署的ELK。
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 容器化部署Koko
编写Dockerfile 文件构建koko 镜像,要求基于 centos 完成Koko 服务的安装和配置;并设置服务开机自启。
2.2.2 容器化部署Guacamole
编写Dockerfile 文件构建guacamole 镜像,要求基于centos 完成Guacamole 服务的安装和配置,并设置服务开机自启。
2.2.3 容器化部署MariaDB
编写Dockerfile 文件构建mysql 镜像,要求基于centos 完成数据库的安装和配置,并设置服务开机自启。
2.2.4 容器化部署Core
编写Dockerfile 文件构建core 镜像,要求基于 centos 完成Python 环境的安装与配置,并设置服务开机自启。
2.2.5 编排部署JumpServer 堡垒机
编写 docker-compose.yaml 文件,要求使用镜像 mysql、redis、core、koko、 guacamole 和nginx 完成JumpServer 堡垒机的编排部署。
2.2.6 部署Jenkins
在default 命名空间下完成Jenkins 的部署,配置 Jenkins 的持久化存储,完成离线插件的安装,并设置登录信息。
2.2.7 配置Jenkins Slave
在Jenkins 中添加Kubernetes 云,并完成容器模板、Pod 模板和标签的配置。
2.2.8 部署GitLab
将 GitLab 部署到 default 命名空间下,部署完成后新建公开项目,并将提供的代码上传到该项目。
2.2.9 在Kubernetes 集群default 命名空间下完成RabbitMQ 和Nacos 环境的部署,并完成Nacos 服务的配置管理。
2.2.10 构建CI/CD
在Jenkins 中新建流水线任务,在 GitLab 项目中编写声明式Pipeline,触发项目构建,要求完成项目代码的编译,然后构建 Docker 镜像并推送到Harbor 仓库,并基于新构建的镜像将服务自动发布到Kubernetes 集群中。
2.2.11 服务网格:Sidecar 管理
在 default 命名空间下部署 Bookinfo 应用。创建 exam 命名空间,并声明一个 Sidecar 配置,允许向指定命名空间的公共服务输出流量。为所有指定标签的Pod 声明一个Sidecar 配置,接收和转发指定的流量。
2.2.12 KubeVirt 运维:创建VM
使用云端镜像在default 命名空间下创建一台VM,名称为exam,指定VM 的内存、CPU、运行策略、启动参数等配置。
2.2.13 完成容器云平台的调优或排错工作。(本任务只公布考试范围,不公布赛题)
任务 3 容器云运维开发(15 分)
2.3.1 管理Deployment 服务
Kubernetes Python 运维脚本开发-使用SDK 方式管理Deployment 服务。
2.3.2 自定义调度器
Kubernetes Python 运维脚本开发-使用Restful API 方式管理调度器。
2.3.3 编写Kubernetes 容器云平台自动化运维工具(。本任务只公布考试范围,不公布赛题)