2022 年全国职业院校技能大赛高职组云计算赛项试卷【赛程名称】云计算赛项第二场-容器云

发布时间:2023年12月27日

2022 年全国职业院校技能大赛高职组云计算赛项试卷

【赛程名称】云计算赛项第二场-容器云

目录

2022 年全国职业院校技能大赛高职组云计算赛项试卷

【赛程名称】云计算赛项第二场-容器云

【任务?1】容器云平台搭建[5 分]

【任务?2】容器云应用部署:?Docker Compose 编排部署[7.0 分]

【任务?3】容器云应用部署:?基于?Kubernetes?构建?CICD[8.0 分]

【任务?4】容器云服务运维:?Kubernetes 基于容器的运维[6 分]

【任务?5】容器云服务运维:?Kubernetes ?基于虚拟机的运维[4.0 分]

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

需要竞赛软件包环境可私信博主!

说明:?完成本任务需要两台安装了 CentOS7.9 ?操作系统的云主机:?master???node

Chinaskill_Cloud_PaaS.iso?镜像包中有本次容器云部署所需的所有文件,?运维所需的文件见附件。

某公司技术部产品开发上线周期长,?客户的需求经常得不到及时响应。引入?CICD

(Continuous Integration 持续集成、Continuous Delivery 持续交付) ?成了公司的当务之急,??发团队决定搭建基于?Kubernetes???CICD 环境,希望基于这个平台来实现?DevOps?的部分流

程,来减轻开发、部署、运维的负担。

为了能够让公司开发的?web 应用系统产品能够基于服务器的性能、可靠性、高可用性

与方便维护,研发部决定使用微服务架构,实现基于?Kubernetes?的容器化部署。

节点规划如表?1 所示。

?1 容器云平台节点规划

节点角色

主机名

VCPUS

内存

硬盘

Master?Harbor?CICD

master

8

12G

100G

Worker Node

node

8

8G

100G

【任务?1】容器云平台搭建[5 ]

【适用平台】私有云

【题目?1】平台部署--部署容器云平台[1.5 ]

登录?OpenStack 私有云平台,使用?CentOS7.9 镜像创建两台云主机,使用?kubeeasy 工具?完成?Kubernetes?1.22.1 集群的搭建。然后使用?nginx 镜像在?default 命名空间下创建一个名为

exam??Pod,并为该?Pod 设置环境变量?exam,其值为?2022

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

1.Kubernetes?集群部署成功得?1?分;

2.Pod?创建成功且环境变量设置正确得?0.5 分。

【题目?2】平台部署--部署?Istio 服务网格[0.5 ]

?Kubernetes 集群上完成?Istio 服务网格环境的安装, 然后新建命名空间?exam,为该命

名空间开启自动注入?Sidecar

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

1.Istio 所有组件运行成功得?0.3 分;

2.命名空间?exam?自动注入成功得?0.2 分。

【题目?3】平台部署--部署?KubeVirt 虚拟化[1 ]

?Kubernetes 集群上完成?KubeVirt 虚拟化环境的安装。

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

1.KubeVirt 所有组件运行成功得?1 分。

【题目?4】平台部署--部署?Harbor 仓库及?Helm 包管理工具[1?]

?master 节点上完成?Harbor 镜像仓库及?Helm 包管理工具的部署。然后使用?nginx?镜像?自定义一个 Chart?Deployment?名称为?nginx,副本数为 1,然后将该?Chart?部署到 default

命名空间下,Release 名称为?web

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

1.Harbor 仓库部署成功得?0.5 分;

2.Helm 工具安装成功得?0.2 分;

3.Chart 包部署成功得?0.3 分。

【题目?5】集群管理--备份?ETCD 数据[1 ]

Kubernetes 使用?ETCD 来存储集群的实时运行数据,为防止服务器宕机导致?Kubernetes

集群数据丢失,?请将?Kubernetes 集群数据备份到/root/etcd.db?中。

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

1.etcdctl 工具安装成功得?0.2 分;

2.ETCD 数据备份成功得?0.8 分。

【任务?2】容器云应用部署:?Docker Compose 编排部署[7.0 ]

【适用平台】私有云

Hyperf 是一个高性能、高灵活性的渐进式?PHP?协程框架,?内置协程服务器及大量常用?的组件,性能较传统基于?PHP-FPM?的框架有质的提升,?提供超高性能的同时,也保持着极?其灵活的可扩展性。请根据要求完成数据库服务?MariaDB、缓存服务?Redis、微服务?Hyperf

及前端服务?Nginx 按照要求进行容器化。

【题目?1】容器化?MariaDB 服务[1 ]

编写Dockerfile?文件构建hyperf-mariadb:v1.0?镜像,具体要求如下:(需要用到的软件包:

Hyperf.tar.gz

1)基础镜像:centos:7.9.2009

2)完成?MariaDB 服务的安装;

3)声明端口:3306

4)设置数据库?root 用户的密码为?root

5)将提供的数据库文件?hyperf_admin.sql 导入数据库;

6)设置服务开机自启。

完成后构建镜像,并提交?master 节点的用户名、密码和?IP 地址到答题框。

1.镜像构建成功得?0.5 分;

2.数据库安装且导入数据成功得?0.5 分。

【题目?2】容器化?Redis 服务[1 ]

编写?Dockerfile?文件构建?hyperf-redis:v1.0?镜像,具体要求如下:(需要用到的软件包:

Hyperf.tar.gz

1)基础镜像:centos:7.9.2009

2)安装?Redis 服务;

3)关闭保护模式;

4)声明端口:6379

5)设置服务开机自启。

完成后构建镜像,并提交?master 节点的用户名、密码和?IP 地址到答题框。

1.镜像构建成功的?0.5 分;

2.Redis 服务安装成功且配置正确得?0.5 分。

【题目?3】容器化?Nginx 服务[0.5 ]

编写?Dockerfile 文件构建?hyperf-nginx:v1.0 镜像,?具体要求如下:(要用到的软件包:

Hyperf.tar.gz

1)基础镜像:centos:7.9.2009

2)安装?nginx 服务;

3)声明端口:80

4)设置服务开机自启。

完成后构建镜像,并提交?master 节点的用户名、密码和?IP 地址到答题框。

1.镜像构建成功得?0.3 分;

2.Nginx?安装成功且配置正确得?0.2 分。

【题目?4】容器化?Hyperf?服务[1 ]

编写?Dockerfile 文件构建?hyperf-service:v1.0 镜像,具体要求如下:(需要用到的软件包:

Hyperf.tar.gz

1)基础镜像:centos:7.9.2009

2)安装?PHP 及扩展;

3)使用源码编译安装?Swoole

完成后构建镜像,并提交?master 节点的用户名、密码和?IP 地址到答题框。

1.镜像构建成功得?0.5 分;

2.PHP?安装成功得?0.2 分;

3.Swoole?安装成功得?0.3 分。

【题目?5】编排部署?Hyperf?框架[3.5 ]

编写/root/hyperf/project/docker-compose.yaml 文件,具体要求如下:

1)容器?1 名称:?hyperf-mysql;镜像:hyperf-mariadb:v1.0;端口映射: 3306:3306

2)容器?2 名称:?hyperf-redis;镜像:hyperf-redis:v1.0

3)容器?3 名称:?hyperf-ui;镜像:hyperf-nginx:v1.0;端口映射: 80:8081

4)容器?4 名称:?hyperf-service;镜像:?hyperf-service:v1.0

完成后编排部署?Hyperf?框架,并提交?master 节点的用户名、密码和?IP 地址到答题框。

1.docker-compose.yaml 文件编排成功得?1.5 分;

2.8081 端口访问服务成功得?1 分;

3.Hyperf-service 连接数据库和?Redis?成功得?1 分。

【任务?3】容器云应用部署:?基于?Kubernetes?构建?CICD[8.0 ]

该公司决定采用?Kubernetes?+?GitLab?CI 来构建?CICD 环境, 以缩短新功能开发上线周?期,?及时满足客户的需求,实现?DevOps?的部分流程,?来减轻部署运维的负担,?实现可视化?容器生命周期管理、应用发布和版本迭代更新,请完成?GitLab?CI?+?Kubernetes??CICD ?境部署(构建持续集成所需要的所有软件包在软件包?CICD-Runner.tar.gz?中)。CICD 应用系

统架构如下:

【适用平台】私有云

【题目?1】安装?GitLab 环境[1 ]

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

1.GitLab 部署正确且能正常访问得?0.5 分;

2.项目导入成功得?0.5 分。

【题目?2】部署?GitLab Runner[2 ]

?GitLab ?Runner 部署到?gitlab-ci 名空间下,Release 名称为?gitlab-runner,为?GitLab?Runner?创建持久化构建缓存目录/home/gitlab-runner/ci-build-cache?以加速构建速度, 并将其注册到?GitLab?中。完成后提交?master?节点的用户名、密码和?IP?地址到答题框。(需要用到的软件包路径CICD-Runner.tar.gz)

1.GitLab?Runner?部署成功得?0.5?分;

2.GitLab?Runner?注册成功得?0.5?分;

3.GitLab?Runner?持久化配置成功得?1?分。

【题目?3】配置?GitLab[1.5 ]

?Kubernetes?集群添加到?demo-2048?项目中, 并命名为?kubernetes-agent,项目命名空

间选择?gitlab-ci

完成后提交?master?节点的用户名、密码和?IP?地址到答题框。(需要用到的软件包路径

CICD-Runner.tar.gz

1.GitLab?Agent?安装成功得?1?分;

2.Kubernetes?连接成功得?0.5 分。

【题目?4】构建?CICD[3.5 ]

编写流水线脚本.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

1.项目变异成功得?0.5?分;

2.镜像构建成功得?1?分;

3.服务发布成功得?1?分;

4.服务能正常访问得?1?分。

【任务?4】容器云服务运维:?Kubernetes 基于容器的运维[6 ]

【适用平台】私有云

【题目?1Pod 管理--创建?Pod[0.5 ]

?default 命名空间下使用?nginx:latest 镜像创建一个?QoS 类为?Guaranteed??Pod,名称

?qos-demo

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

1.Pod 创建成功得?0.2 分;

2.Pod QoS 类型为?Guaranteed ?0.3?分。

【题目?2】安全管理--配置?Pod 安全上下文[0.5 ]

使用?busybox 镜像启动一个名为?context-demo??Pod,为该?Pod 配置安全上下文,?要求

容器内以用户?1000 和用户组?3000 来运行所有进程,并在启动时执行“sleep?1h”命令。

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

1.Pod 安全上下午配置正确得?0.5 分。

【题目?3CRD?管理--创建自定义资源类型[0.5 ]

?Kubernetes 集群中自定义一种资源类型?StudentAPI ?stable.example.com/v1,单数?形式为?student,复数形式为?students,简写为?stu,作用域为命名空间级,然后在?default?

名空间下创建一个名为?exam??Student?对象。

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

1.资源类型?Student 定义成功的?0.3 分;

2.exam 创建成功得?0.2 分。

【题目?4】解析管理--添加主机别名到?Pod[0.5 ]

使用?nginx 镜像在?default 命名空间下创建一个名为?nginx??Pod,并?Pod?/etc/hosts

中添加?IP 地址?127.0.0.1??chinaskills?的解析。

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

1.自定义解析配置正确得?0.5 分。

【题目?5HPA?管理--创建?HPA 规则[1 ]

默认情况下?HPA?是无法调整伸缩灵敏度的,但不同的业务场景对伸缩灵敏度的要求不?一样。要求在?default?命名空间下使用?nginx?镜像创建一个名为?web??deployment,自定义?HPA?的伸缩灵敏度, 为该?deployment 创建一个名为?web??HPA,扩容时立即新增当前?9 ?数量的副本数,?时间窗口为?5s,伸缩范围为?1--?1000。例如一开始只有?1 ?Pod,当?CPU 使

用率超过?80%时,?Pod?数量变化趋势为: 1 ??10 ??100???1000

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

1.HPA 创建成功得?0.2?分;

2.HPA 伸缩策略配置正确得?0.8 分。

【题目?6】节点亲和性管理--创建硬限制规则的?Pod[0.5 ]

default??命名空间下使用?nginx??镜像运行一个?Pod?,名称为 nginx?,要求使用?requiredDuringSchedulingIgnoredDuringExecution?策略将?Pod?调度到具有“disktype=ssd”标

签的节点。

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

1.Pod 调度策略配置正确得?0.5 分。

【题目?7】网络策略管理--创建?Pod?网络策略[0.5 ]

创建一个网络策略?network-exam,要求只有 internal?命名空间下的?Pod?可以通过 TCP

协议的?8080 端口访问到?mysql 命名空间下的?Pod

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

1.网络策略创建成功得?0.2 分;

2.规则配置正确得?0.3 分。

【题目?8】驱逐机制管理--配置节点压力驱逐[0.5 ]

设置kubelet 数据存储在/apps/data/kubelet?目录下,并设置当kubelet 的存储空间不足?5%

或者当容器运行时文件系统可用存储空间不足?5%时开始驱逐?Pod

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

1.节点压力驱逐配置正确得?0.5 分。

【题目?9】流量管理--创建?Ingress Gateway[0.5 ]

使用提供的软件包?ServiceMesh.tar.gz ?Bookinfo 应用部署到?default?命名空间下,?使用?Istio??Gateway?????现应?用程?????访?????Bookinfo???用创??????bookinfo-gateway?的网关,指定所?HTTP 流量通过?80 端口流入网格,然后将网关绑定到虚

拟服务?bookinfo 上。

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

1.Bookinfo 应用部署成功得?0.2?分;

2.Bookinfo?能通过网关访问得?0.3 分。

【题目?10】服务网格--创建基于用户身份的路由[0.5 ]

创建一个名为 reviews??路由,要求来自名为 Jason??的用户的所有流量将被路由到服务

reviews:v2

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

1.路由创建成功得?0.2 分;

2.用户限制正确得?0.3 分。

【题目?11】服务网格--创建请求路由[0.5 ]

default?命名空间下创建一个名为reviews-route 的虚拟服务,默认情况下,所有的HTTP?流量都会被路由到标签为?version:v1??reviews?服务的?Pod?上。此外, 路径以/wpcatalog/?/consumercatalog/开头的?HTTP 请求将被重写/newcatalog,并被发送到标签为?version:v2?

Pod?上。

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

1.请求路由创建成功得?0.2 分;

2.路由策略配置正确得?0.3 分。

【任务?5】容器云服务运维:?Kubernetes ?基于虚拟机的运维[4.0 ]

【适用平台】私有云

【题目?1VM 管理--创建?VM[0.5 ]

使用镜像?fedora-virt:v1.0 ?default 命名空间下创建一台?vm,名称为?vm-fedora,内存为

1G

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

1.VM 创建成功得?0.3 分;

2.VM 配置正确得?0.2 分。

【题目?2】存储与卷--创建?emptyDisk [1 ]

使用镜像?fedora-virt:v1.0 ?default 命名空间下创建一台?vmi,名称为?vmi-fedora?,并使

?emptyDisk 卷为?vmi 挂载一块?2G?的磁盘。

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

1.VMI 创建成功得?0.4 分;

2.卷挂载成功得?0.6 分。

【题目?3KubeVirt 运维--创建?VMI[1.5 ]

将提供的镜像?exam.qcow2 转换为?docker 镜像?exam:v1.0,然后使用镜像?exam:v1.0 镜像??default 命名空间下创建一台?vmi,名称为?exam,将虚拟机的?80 端口以?NodePort?的方式

对外暴露为?30082,并使用数据源在启动时将?VM?的主机名初始化为?exam

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

1.qcow2 镜像转化成功得?0.3 分;

2.VMI 创建成功得?0.3 分;

3.端口暴露成功得?0.3 分;

4.服务能正常访问得?0.4 分;

5.主机名初始化成功得?0.2 分。

【题目?4KubeVirt 运维--启用快照[1 ]

KubeVirt 支持对?VM 进行快照, 请启用?KubeVirt 快照管理功能:

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

1.快照功能启用成功得?1 分。

【任务?6】容器云运维开发:Kubernetes?APIs 运维开发[10 ]

【适用平台】私有云

【题目?1Python 运维开发:基?Kubernetes Restful?API 实现?Deployment 创建[2 ]

在提供的?OpenStack 私有云平台上,使用?k8s-python-dev 镜像创建?1?台云主机,云主机?类型使用?4vCPU/12G?内存/100G 硬盘。该主机中已经默认安装了所需的开发环境, 登录默

认账号密码为“root/1DaoYun@2022”

使用?Kubernetes Restful?API 库,在/root ?录下,创建?api_deployment_manager.py 文件,

要求编写?python 代码,代码实现以下任务:

1)编写?Python 程序实现?Deployment?资源的创建。Deployment 配置信息如下。如果

同名?Deployment 存在, 先删除再创建。

2)创建完成后,?查询该?Deployment?的详细信息, 执行结果控制台输出,以?yaml

式展示。

创建?Deployment???yaml?的配置如下:

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas:?3

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx:1.15.4

ports:

- containerPort:?80

1.执行?api_deployment_manager.py 脚本,成功创建?deployment?资源,计?1 分;

2.检查创建的?deployment?资源, 配置信息无误计?1 分。

【题目?2Python 运维开发:基于?Kubernetes Python SDK 实现?Job 创建[1 ]

在前面已建好的?Kubernetes 开发环境云平台上。使用?Kubernetes python SDK?

“kubernetes”Python 库,?/root ?目录下,?创建?sdk_job_manager.py 文件,?要求编写?python

码,代码实现以下任务:

1)编写?Python 程序实现?Job?资源的创建。?Job 配置信息如下。如果同名?Job 存在,

先删除再创建。

2)创建完成后,?查询该?Job?的详细信息,?执行结果控制台输出,以json 格式展示。

Job 创建?yaml?的信息如下:

apiVersion: batch/v1

kind: Job

metadata:

name: pi

spec:

template:

spec:

containers:

- name: pi

image: perl

command:?["perl", ???"-Mbignum=bpi",?"-wle", "print bpi(2000)"]

restartPolicy: Never

backoffLimit: 4

1.执行?sdk_job_manager.py 脚本, 成功创建job?资源,计?0.5 分;

2.查询job?资源,?配置信息无误,计?0.5 分。

【题目?3Python 运维开发:?Pod?资源的?Restful?APIs HTTP 服务封装[3 ]

编写?Python 程序实现?Pod?资源管理程序,??Pod?资源管理的封装成?Web 服务。

/root?目录下创建pod_server.py?程序,实现Pod 的增删查改等Web?访问操作。http.server

?host ?localhost,端口?8889;程序内部实现?Kubernetes 认证。

提示说明:?Python 标准库?http.server 模块,提供了?HTTP Server 请求封装。

需要实现的?Restful?API 接口如下:

GET /pod/{name} ?,查询指定名称{name}?PodResponse??Body?json 格式输出。

POST /pod/{yamlfilename} ?创建?yaml 文件名称为{yamlfilename}?PodResponse?

Body?json?格式。

编码完成后,“手工下载”文件服务器主目录所有*.yaml 文件到?root ?目录下,“手动执

行”所编写?pod_server.py 程序, 提交答案进行检测。

1.HTTP 服务成功启动, 计?1?分;

2.发起指定参数的?GET?查询?Pod 请求,?成功查询指定名称的?pod 服务,??1 分;

3.发起指定参数的?POST 创建?Pod 请求,?成功创建?Pod 服务,计?1 分。

【题目?4Python 运维开发:?Service?资源?Restful?APIs HTTP 服务封装[4 ]

编写?Python 程序实现?Service?资源管理程序,将?Service?资源管理的封装成?Web 服务。

/root?目录下创建?service_server.py 程序, 实现?Service?的增删查改等?Web 访问操作。

http.server??host ?localhost,端口 8888;程序内部实现?Kubernetes 认证。

提示说明:?Python 标准库?http.server 模块,提供了?HTTP Server 请求封装。

需要实现的?Restful?API 接口如下:

GET /services/{name}?,查询指定名称{name}?ServiceResponse??Body?json 格式

输出。

POST /services/{yamlfilename} ?创建?yaml 文件名称为{yamlfilename}?Service

Response??Body?json 格式,(手工将文件服务器主目录所有*.yaml 件下载到?root ?目录

下)。

DELETE /services/{name};删除指定名称的?ServiceResponse??Body?json 格式。

编码完成后,自己手动执行提供?Web HTTP 服务的?service_server.py 程序,提交答案进

行检测。

1.HTTP 服务成功启动, 计?1?分;

2.发起指定参数的?POST 创建?service 请求,成功创建?service?资源,计?1 分;

3.发起指定参数的?GET?查询?service 请求?成功查询指定名称的?Service,计?1 分;

4.发起指定参数的?DELETE 删除?service?请求,成功删除指定名称的?Service,计 1 分。

需要竞赛软件包环境可私信博主!

文章来源:https://blog.csdn.net/qq_50377269/article/details/135247989
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。