2023 年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷 B(容器云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

#需要资源(软件包及镜像)或有问题的,可私聊博主!!!

容器云

【赛程名称】第一场:模块一 私有云、模块二 容器云

     项目需求:某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台建设,平台聚焦“DevOps 建运一体”和“数据驱动产品开发”,拟采用开源 OpenStack 搭建企业 内部私有云平台,开源 Kubernetes 搭建云原生服务平台,选择国内主流公有云平台服务,基于数字化平台底座,面向业务开发云应用产品。

     拟将该任务交给工程师A 与B,分工协助完成云平台服务部署、云应用开发、云系统运维等任务,系统架构如下:

系统架构如图1 所示,IP 地址规划如表1 所示。

图 1 系统架构图

表 1 IP 地址规划

设备名称

主机名

接口

IP 地址

说明

云服务器1

Controller

eth0

192.168.x.0/24

Vlan x

eth1

自定义

自行创建

云服务器2

Compute

eth0

192.168.x.0/24

Vlan x

eth1

自定义

自行创建

云服务器3...云服务器 n

自定义

eth0

192.168.x.0/24

用于实操题

PC-1

本地连接

172.16.232.0/24

PC 使用

说明:

  1. 竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;同组 2 名选手的账号密码一样。
  2. 表中的x 为赛位号;在进行OpenStack 搭建时的第二块网卡地址根据题意自行创建;
  3. 根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
  4. 考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
  5. 竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的 IP 地址,用户名和密码。

【任务 4】容器云服务搭建[5 分]

【适用平台】私有云

【题目 1】2.1.1 部署容器云平台[5 分]

使用 OpenStack 私有云平台创建两台云主机,云主机类型使用 4vCPU/12G/100G 类型,分别作为 Kubernetes 集群的 Master 节点和 node 节点,然后完成 Kubernetes 集群的部署,并完成 Istio 服务网格、KubeVirt 虚拟化和 Harbor 镜像仓库的部署。

完成后提交 Master 节点的用户名、密码和 IP 到答题框。

【任务 5】容器云服务运维[15 分]

【适用平台】私有云

【题目 1】2.2.1 容器化部署 MariaDB [0.5 分]

编写 Dockerfile 文件构建 mysql 镜像,要求基于 centos 完成 MariaDB 数据库的安装和配置,并设置服务开机自启。编写 Dockerfile 构建镜像 erp-mysql:v1.0,要求使用 centos7.9.2009 镜像作为基础镜像,完成 MariaDB 数据库的安装,设置 root 用户的密码为 tshoperp,新建数据库 jsh_erp 并导入数据库文件 jsh_erp.sql,并设置 MariaDB 数据库开机自启。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)

【题目 2】2.2.2 容器化部署 Redis [0.5 分]

编写 Dockerfile 文件构建 redis 镜像,要求基于 centos 完成 Redis 服务的安装和配置,并设置服务开机自启。编写 Dockerfile 构建镜像 erp-redis:v1.0,要求使用 centos7.9.2009 镜像作为基础镜像,完成 Redis 服务的安装,修改其配置文件关闭保护模式,并设置 Redis 服务开机自启。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)

【题目 3】2.2.3 容器化部署Nginx [0.5 分]

编写 Dockerfile 文件构建 nginx 镜像,要求基于 centos 完成 Nginx 服务的安装和配置,并设置服务开机自启。编写 Dockerfile 构建镜像 erp-nginx:v1.0,要求使用 centos7.9.2009 镜像作为基础镜像,完成 Nginx 服务的安装,使用提供的 app.tar.gz 和 nginx.conf 启动 Nginx 服务,并设置开机自启。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)

【题目 4】2.2.4 容器化部署 ERP[0.5 分]

编写 Dockerfile 文件构建 erp 镜像,要求基于 centos 完成 JDK 环境和 ERP 服务的安装与配置,并设置服务开机自启。编写 Dockerfile 构建镜像 erp-server:v1.0,要求使用 centos7.9.2009 镜像作为基础镜像,完成 JDK 环境的安装,启动提供的 jar 包,并设置服务开机自启。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)

【题目 5】2.2.5 编排部署 ERP 管理系统[1 分]

编写 docker-compose.yaml 文件,要求使用镜像 mysql、redis、nginx 和 erp 完成 ERP管理系统的编排部署。编写 docker-compose.yaml 完成 ERP 管理系统的部署,要求定义mysql、redis、nginx和erp 共四个Service,分别使用镜像erp-redis:v1.0、erp-mysql:v1.0、erp-nginx:v1.0和 erp-server:v1.0,并将 nginx 服务的 80 端口映射到宿主机的 8888 端口。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)

【题目 6】2.2.6 部署 GitLab [1 分]

    将 GitLab 部署到 Kubernetes 集群中,设置 GitLab 服务 root 用户的密码,使用Service 暴露服务,并将提供的项目包导入到 GitLab 中。在 Kubernetes 集群中新建命名空间 gitlab-ci,将 GitLab 部署到该命名空间下, Deployment 和 Service 名称均为 gitlab,以 NodePort 方式将 80 端口对外暴露为 30880,设置GitLab 服务root 用户的密码为admin@123,将项目包demo-2048.tar.gz 导入到GitLab中并命名为 demo-2048。

完成后提交 Master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包:CICD-Runner.tar.gz)

【题目 7】2.2.7 部署 GitLab Runner [1 分]

    将 GitLab Runner 部署到 Kubernetes 集群中,为 GitLab Runner 创建持久化构建缓存目录以加速构建速度,并将其注册到 GitLab 中。

将 GitLab Runner 部署到 gitlab-ci 命名空间下,Release 名称为 gitlab-runner,为 GitLab Runner 创建持久化构建缓存目录/home/gitlab-runner/ci-build-cache 以加速构建速度,并将其注册到 GitLab 中。

完成后提交 Master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包:CICD-Runner.tar.gz)

【题目 8】2.2.8 部署 GitLab Agent [1 分]

将 Kubernetes 集群添加到 GitLab 项目中指定名称和命名空间。

将 Kubernetes 集群添加到 demo-2048 项目中,并命名为 kubernetes-agent,项目命名空间选择 gitlab-ci。

完成后提交 Master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包:CICD-Runner.tar.gz)

【题目 9】2.2.9 构建 CI/CD [2 分]

编写流水线脚本触发自动构建,要求基于 GitLab 项目完成代码的编译、镜像的构建与推送,并自动发布应用到 Kubernetes 集群中。

编写流水线脚本.gitlab-ci.yml 触发自动构建,具体要求如下:

  1. 基于镜像 maven:3.6-jdk-8 构建项目的 drone 分支;
  2. 构建镜像的名称:demo:latest;
  3. 将镜像推送到 Harbor 仓库 demo 项目中;
  4. 将 demo-2048 应用自动发布到Kubernetes 集群 gitlab-ci 命名空间下。

完成后提交 Master 节点的用户名、密码和 IP 地址到答题框。(需要用到的软件包:CICD-Runner.tar.gz)

【题目 10】2.2.10 服务网格:创建 VirtualService [1 分]

   将 Bookinfo 应用部署到 default 命名空间下,为 Bookinfo 应用创建一个名为reviews的 VirtualService,要求来自名为 Jason 的用户的所有流量将被路由到 reviews 服务的 v2版本。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ServiceMesh.tar.gz)

【题目 11】2.2.11 KubeVirt 运维:创建 VMI [1 分]

    使用提供的镜像在default 命名空间下创建一台VMI,名称为exam,指定VMI 的内存、CPU、网卡和磁盘等配置,并开启 Sidecar 注入。将提供的镜像 cirros-0.5.2-x86_64-disk.img 转换为 docker 镜像 cirros:v1.0,然后使用镜像 cirros:v1.0 镜像在 default 命名空间下创建一台 vmi,名称为 vmi-cirros,内存为 1024M。

完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。

【题目 12】2.2.12 容器云平台优化:使用审计日志[2 分]

     启用审计日志可以帮助集群管理员快速的定位问题。请启用Kubernetes 集群的审计日志,要求以JSON 格式保存审计日志并输出到/etc/kubernetes/audit- logs/audit.log 文件中,日志最多保留 10 天,单个日志文件不超过 500M。然后编写审计策略文件/etc/kubernetes/audit-policy/policy.yaml,要求在日志中用 RequestResponse 级别记录 Pod 变化,并记录 kube-system 中 ConfigMap 变更的请求消息体。

  完成后提交 master 节点的用户名、密码和 IP 地址到答题框。

【题目 13】2.2.13 容器云平台排错:容器引擎报错[1.5 分]

使用提供的 chinaskill-k8s-error01 镜像创建一台云主机(云主机的登录用户名为 root,密码为 Abc@1234),该云主机中存在错误的容器服务,错误现象为无法正常使用 crictl ps -l 命令,请修复容器服务。修复完成后提交该云主机的用户名、密码和 IP 地址到答题框。

【题目 14】2.2.14 容器云平台排错:DNS 服务报错[1.5 分]

使用提供的 chinaskill-k8s-error01 镜像创建一台云主机(云主机的登录用户名为 root,密码为 Abc@1234),该云主机中存在错误的 DNS 服务,错误现象为 coredns 一直处于 CrashLoopBackOff 状态,请修复 CoreDNS 服务,并将并发上限更改为 5000。修复完成后提交该云主机的用户名、密码和 IP 地址到答题框。

【任务 6】容器云运维开发[10 分]

【适用平台】私有云

【题目 1】2.3.1 管理 service 资源[2 分]

Kubernetes Python 运维脚本开发,使用 Restful APIs 方式管理 service 服务。

使用已经部署完成的 Kubernetes 两节点云平台,在 Master 节点安装 Python 3.7.3 的运行环境与依赖库。

使用 python request 库和 Kubernetes Restful APIs ,在/root 目录下, 创建

api_manager_service.py 文件,要求编写 python 代码,代码实现以下任务:

  1. 首先查询查询服务 service,如果 service 名称“nginx-svc”已经存在,先删除。
  2. 如果不存在“nginx-svc”,则使用 service.yaml 文件创建服务。
  3. 创建完成后,查询该服务的信息,查询的 body 部分以 json 格式的文件输出到当前目录下的 service_api_dev.json 文件中。
  4. 然后使用 service_update.yaml 更新服务端口。
  5. 完成更新后,查询该服务的信息,信息通过控制台输出,并通过 json 格式追加到 service_api_dev.json 文件后。

编写完成后,提交该云主机的用户名、密码和 IP 地址到答题框。

【题目 2】2.3.2 管理 Pod 服务[3 分]

Kubernetes Python 运维脚本开发-使用 SDK 方式管理 Pod 服务。

使用已经部署完成的 Kubernetes 两节点云平台,在 Master 节点安装 Python 3.7.3 的运行环境与依赖库。

使用 Kubernetes python SDK 的“kubernetes”Python 库,在/root 目录下,创建

sdk_manager_deployment.py 文件,要求编写python 代码,代码实现以下任务:

  1. 首先使用 nginx-deployment.yaml 文件创建 deployment 资源。
  2. 创建完成后,查询该服务的信息,查询的 body 部分通过控制台输出,并以 json格式的文件输出到当前目录下的 deployment_sdk_dev.json 文件中。编写完成后,提交该云主机的用户名、密码和 IP 地址到答题框。

【题目 3】2.3.3 Kubernetes CRD 自定义资源的管理封装[3 分]

Kubernetes 容器云平台通过 CRD 机制进行自定义 APIs 资源拓展,将 chinaskill- cloud-*.yaml 共 5 个文件复制到 root 目录下。参考 chinaskill-cloud-11.yaml 文件,编写 CRD 文件“chinaskill-cloud-crd.yaml”,放在 root 目录下。

说明:Competition CRD 命名要求如下:

Kind 为 Competition

Plural 为 competitions

singular 为 competition

shortNames 为 cpt

session 含义是赛程

content 含义为竞内容。

使用已建好的 Kubernetes Python 运维开发环境,在/root 目录下创建 crd

_manager.py 脚本。crd_manager.py 编写基于 Kubernetes SDK 实现 Competition CRD 的创建、删除与事件变化监听。

crd_manager.py 内部实现 3 个方法:

crd_manager.py 内部实现 3 个方法:

  1. 实现方法 create_crd(),实现对 Competition CRD 的创建。
  2. 实现方法 delete_crd(),实现对 Competition CRD 的删除。
  3. 实现方法watch_crd_object(),实现对 CRD 资源的变化事件监听,将监听到Competition CRD 被删除,将 event 信息输出到控制台,并停止监听。

【题目 4】2.3.4 Kubernetes CRD 的自定义对象管理封装[2 分]

基于前一题目的 Competition CRD,使用已建好的 Kubernetes Python 运维开发环

境,在/root 目录下创建crd_object_manager.py 脚本。crd_object_manager.py 编写基于

Kubernetes SDK 实现 Competition CRD 的自定义对象的创建、删除与事件变化监听。

crd_manager.py 内部实现 3 个方法:

  1. 实现方法 create_crd_object(ymlfile:str),实现 CRD 的自定义对象的创建,yamlfile 为 CRD 的自定义对象 yaml 文件。
  1. 实现方法 delete_crd_object(crd_object_name:str),实现创建 CRD 功能,

crd_object_name 为 CRD 的自定义对象名称。

实现方法 watch_crd_object(crd_object_name:str),实现 CRD 的自定义对象变化事件监听,当监听到 CRD 的自定义对象的名称为crd_object_name 被删除时,将 event信息输出到控制台,并停止监听。

### 2024职业院校技能大赛高职云计算赛项试题及比详情 #### 比概述 2024职业院校技能大赛高职云计算应用赛项旨在评估参者在公有云、私有云以及容器化技术方面的实际操作能力和理论知识水平。事分为多个模块,涵盖不同类型的云计算应用场景和技术栈。 #### 公有云模块 (40分) 此部分主要考察学生对于主流公有云服务平台的理解与运用能力。具体任务可能涉及但不限于创建虚拟机实例、配置安全规则、设置负载均衡器等基础架构即服务(IaaS)层面的操作;同时也可能会涉及到更高级别的平台即服务(PaaS),比如数据库管理、对象存储等功能的部署和优化[^1]。 #### 私有云服务运维 (25分) 针对私有云环境下的日常维护工作流程展开测试,例如通过OpenStack这样的开源软件定义数据中心解决方案来实现资源池管理和分配的任务。考生需按照给定条件完成一系列指定动作,包括但不限于初始化集群节点、上传自定义镜像文件并启动相应数量的工作站/服务器实例,在此基础上还需保证各件间良好的互联互通性能表现良好[^3]。 #### Kubernetes 容器云平台自动化运维工具开发 (未公开具体内容) 虽然官方尚未透露确切题目细节,但从以往经验和行业趋势来看,这部分很可能是围绕着如何利用Kubernetes编排引擎构建高效稳定的微服务体系结构而设计的一系列挑战项目。这不仅考验选手们对Docker容器技术和K8S API接口调用机制掌握程度,还要求具备一定的编程功底以便能够独立编写满足特定需求场景下自动化的Shell脚本或其他形式的应用程序代码片段。 ```bash #!/bin/bash # 示例:简单的 K8s 自动化运维脚本 kubectl get pods --all-namespaces | grep "Running" ``` #### 准备建议 为了更好地应对上述各项考核指标,推荐参考一些高质量的学习材料来进行针对性复习准备。一份精心挑选出来的Linux系统管理员培训教程可以作为入门指南,它覆盖了大量关于命令行界面CLI技巧介绍以及常见问题排查方法等内容,这些都是成为一名合格云端工程师所必需的基础素养之一[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘川_ydy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值