2025-2026广东省职业技能大赛云计算赛项赛题
2025-2026学年广东省职业院校学生专业技能大赛云计算应用赛题总结
模块一:OpenStack云计算平台部署与运维
1.1 基础环境与核心服务部署
1.1.1 集群主机环境配置
- 创建两台云主机,设置控制节点主机名
controller,计算节点主机名compute - 修改
/etc/hosts实现IP映射 - 配置yum源文件
/etc/yum.repos.d/local.repo - 配置controller节点无密钥访问compute节点
1.1.2 基础软件包安装
- 安装
iaas-yoga软件包 - 配置脚本文件
/etc/1cloud/openrc.sh中的基本变量(数据库密码、各服务密码、域名、网卡等,密码均为000000)
1.1.3 数据库及消息服务安装与使用
- 使用
iaas-install-mariadb.sh安装Mariadb、Memcached、RabbitMQ - 修改
/etc/my.cnf:支持大小写、innodb缓冲4G、log buffer 64MB、redo log大小256MB且文件组2、最大通信包64M - 修改Memcached:内存512MB、最大连接数2048、hash算法md5
1.1.4 Keystone服务安装与使用
- 使用
iaas-install-keystone.sh安装Keystone - 编写
/etc/keystone/admin-openrc.sh - 创建域
210Demo,包含Engineering和Production项目,组Devops - 创建用户:Robert(Engineering member+admin)、George(Engineering member)、William(Production member+admin)、John(Production member),并设置对应邮箱
1.1.5 Glance安装与使用
- 使用
iaas-install-glance.sh安装Glance - 上传镜像
cirros-0.5.2-x86_64-disk.img,名称为cirros-0.5.2
1.1.6 Nova安装
- controller执行
iaas-install-nova-controller.sh,compute执行iaas-install-nova-compute.sh - 配置调度器采用缓存调度器,缓存主机信息(不重启服务)
1.1.7 Neutron安装
- controller执行
iaas-install-neutron-controller-openvswitch.sh - compute执行
iaas-install-neutron-compute-openvswitch.sh
1.1.8 Dashboard安装
- 使用
iaas-install-horizon.sh安装 - 修改Django数据存储为文件
- 登录页面标题改为“私有云云计算基础架构平台”
1.1.9 Swift安装
- controller执行
iaas-install-swift-controller.sh,compute执行iaas-install-swift-storage.sh - 创建容器
examcontainer - 上传
cirros-0.3.4-x86_64-disk.img,设置分段存放每段10M
1.1.10 Cinder安装与创建硬盘
- controller执行
iaas-install-cinder-controller.sh,compute执行iaas-install-cinder-storage.sh - 在计算节点分出5G分区,加入cinder块存储后端
1.2 云平台运维与调优
1.2.1 Cgroup运维
- 使用cgroup创建
cpu_limit组,限制yes命令CPU使用率最多20%单核
1.2.2 Glance调优
- 配置镜像缓存目录,设置缓存最大容量50GB,超过12小时未访问自动清理
1.2.3 Glance API调优
- 设置socket超时180秒,启用KeepAlive机制
1.2.4 监控系统部署与应用
- 部署Prometheus和Grafana到
/opt/monitor/,配置systemd - 另一台云主机安装node_exporter到
/usr/local/ - 配置Prometheus为Grafana数据源,导入JSON监控面板,监控网络带宽
1.2.5 OpenStack镜像压缩
- 使用qemu命令压缩
CentOS7.5-compress.qcow2为/root/chinaskill-js-compress.qcow2
1.2.6 Nova调优
- 修改nova配置文件,限制同时只创建3台虚拟机
1.2.7 ISCSI存储配置
- 计算节点作为服务端,创建target:
iqn.2024-11.com.chinaskills:compute - 创建存储设备
chinaskills.iscsi_store并绑定 - 设置ACL仅允许controller主机访问,关闭密码验证
- 客户端连接共享存储
1.2.8 Keystone调优
- 修改keystone配置文件,启用memcached缓存(IP以controller主机名代替)
1.2.9 Nova组件优化
- 修改nova相关配置,缩短非root用户执行系统命令的耗时(减少命令白名单加载开销)
1.2.10 Heat模板创建容器
- 编写
/root/create_container.yaml,执行后创建名为heat-swift的容器
1.3 云计算应用开发
1.3.1 MariaDB数据库操作开发
- 安装Python 3.7.3环境
- 编写
/root/mysql_db_manager.py,实现DM_Manager类 - 方法:
__init__(db_name)、create_table()(创建member表)、insert_table_data(**kwargs)、update_table_data(**kwargs)、run_table_raw_sql(raw_sql)、delete_table() - member表字段:id(主键自增), name(VARCHAR256), level(INT), place(VARCHAR256)
1.3.2 OpenStack用户命令行管理工具开发
- 使用FastAPI+argparse,端口9046,编写
/root/onecloud/onecloud.py - 命令格式:
onecloud stack user <list|show|create|delete> [参数] - list:表格化输出所有user(ID、Name)
- show:通过ID或Name查询详细信息,表格Field-Value
- create:
--name --password创建用户 - delete:通过ID或Name删除用户
模块二:Kubernetes容器云平台部署与运维
2.1 集群与组件部署
2.1.1 部署Kubernetes容器云平台
- 使用两台4vCPU/12G/100G云主机,部署K8s集群(Master+Node)
2.1.2 部署Harbor镜像仓库
- 在K8s集群中部署Harbor
2.1.3 部署Istio服务网格
- 在K8s集群中部署Istio
2.1.4 部署kubeVirt虚拟化组件
- 在K8s集群中部署kubeVirt
2.2 容器化与CI/CD
2.2.1 容器化部署Node-Exporter
- Dockerfile构建
monitor-exporter:v1.0 - 基础镜像centos:centos7.9.2009,安装node_exporter-0.18.1,声明端口9100,开机自启
2.2.2 容器化部署Alertmanager
- 构建
monitor-alert:v1.0 - 安装alertmanager-0.19.0,声明端口9093、9094,开机自启
2.2.3 容器化部署Grafana
- 构建
monitor-grafana:v1.0 - 安装grafana-6.4.1,声明端口3000,用户名密码admin/admin,开机自启
2.2.4 容器化部署Prometheus
- 构建
monitor-prometheus:v1.0 - 安装prometheus-2.13.0,配置
/data/prometheus/prometheus.yml含三个任务模板(prometheus, node, alertmanager),声明端口9090,开机自启
2.2.5 编排部署监控系统
- 编写docker-compose.yaml,部署四个容器:monitor-node、monitor-alertmanager、monitor-grafana、monitor-prometheus
- 端口映射对应9100、9093/9094、3000、9090
- 配置Grafana数据源Prometheus,密码admin/admin
2.2.6 部署GitLab
- 命名空间
gitlab-ci,Deployment和Service名称gitlab,NodePort 30880暴露80端口 - root密码
admin@123,导入项目包demo-2048.tar.gz并命名为demo-2048
2.2.7 部署GitLab Runner
- 部署到
gitlab-ci命名空间,Release名gitlab-runner - 创建持久化缓存目录
/home/gitlab-runner/ci-build-cache并注册到GitLab
2.2.8 部署GitLab Agent
- 将K8s集群添加到
demo-2048项目中,命名为kubernetes-agent,命名空间gitlab-ci
2.2.9 构建CI/CD
- 编写
.gitlab-ci.yml:基于maven:3.6-jdk-8构建,镜像名demo:latest,推送到Harbor仓库demo项目,自动发布应用到K8s集群gitlab-ci命名空间
2.2.10 Etcd配额优化
- 扩容etcd数据库空间配额至8GB
2.2.11 Kubernetes控制器调优
- 配置服务控制器,增加Service资源的并发处理数为100
2.3 开发任务
2.3.1 Docker Restful API实现容器创建
- 启用Docker API端口2375
- 编写
/root/api_docker_manager.py,使用nginx:latest创建容器:主机名chinaskills-nginx,开机自启,端口8010,标签chinaskill: nginx,网络bridge - 查询容器信息,控制台输出并以JSON保存到
api_containers.json
2.3.2 Kubernetes资源监控开发
- 安装Python 3.7.3,使用FastAPI框架,编写
/root/k8s/main.py,端口9089,host 0.0.0.0,uvicorn启动热重启 - 定义GET接口
/cluster/metrics/,返回集群节点名称、CPU数量、内存容量、可分配内存/CPU等
模块三:边缘计算
3.1 边缘计算平台部署
3.1.1 云端部署
- 使用k8s-allinone-v1.22.1镜像创建云主机(已内置K8s)
- 部署KubeEdge 1.11 cloudcore模块,配置systemd管理服务
3.1.2 边端部署
- 创建两台CentOS7.9云主机(edge-node1, edge-node2)
- 编译部署MQTT服务和KubeEdge edgecore模块,启动edgecore服务,启用metrics监控
3.1.3 边缘应用部署
- 编写DeviceModel(counter-model):属性status(字符串,读写,默认空)
- 编写Device(counter):引用counter-model,通过节点选择器绑定edge-node1,twins定义status期望值"OFF"、真实值"0"
- 部署DeviceModel、Device、云端计数应用控制器和计数应用,打开计数器
3.2 边缘计算云服务开发
3.2.1 FastAPI封装AI识别服务
- 导入ai_face.tar.gz,在apps目录下编写
face_recognition.py - 服务端口7047,地址0.0.0.0,接口
/detect_face,识别material_video.mp4中的人脸,返回人脸坐标字典
3.2.2 边缘设备管理开发
- 导入fastapi_device.zip,使用FastAPI+K8s SDK,端口8070
- 实现接口:
- GET
/cloud_edge_service/node/cloudnode:获取设备资源 - GET
/device/{name}:查询default命名空间中的Device资源 - PUT
/device/device:根据name更新status.twins.desired.value - POST
/device/device:根据name、dmName、nodeName创建设备(需先创建DeviceModel test-devicemodel) - DELETE
/device/device:删除default命名空间中的Device资源
- GET
模块四:大语言模型应用
4.1 基础服务部署
4.1.1 Dify服务部署
- 使用CentOS7.9安装docker,导入dify-1.9.1和dify_images.zip
- 修改配置:Python初始化超时320秒,插件最大执行时长2400秒,知识库上传文件大小限制100M
4.1.2 Ollama服务部署
- 部署Ollama容器(名称ollama),暴露11434端口
- 导入models.tar.gz中的离线大模型进行管理
4.2 智能聊天机器人开发
4.2.1 智能聊天机器人
- 安装Python 3.7.3,编写
/root/chatbot.py,使用Streamlit+Ollama,端口7860,host 0.0.0.0 - 功能要求:
- 对话历史展示(实时显示、区分用户和模型)
- 文件解析(支持docx、txt、pdf,作为上下文)
- 清空对话按钮
- 多轮流式对话(流式生成)
- 多模型切换下拉框(切换后上下文保留)
0