版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年全国职业院校技能大赛高职组云计算赛项试卷
【赛程名称】云计算赛项第二场-容器云
说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机:master和node。
Chinaskill_Cloud_PaaS.iso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。
某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD
(ContinuousIntegration持续集成、ContinuousDelivery持续交付)成了公司的当务之急,研
发团队决定搭建基于Kubernetes的CICD环境,希望基于这个平台来实现DevOps的部分流
程,来减轻开发、部署、运维的负担。
为了能够让公司开发的web应用系统产品能够基于服务器的性能、可靠性、高可用性
与方便维护,研发部决定使用微服务架构,实现基于Kubernetes的容器化部署。
节点规划如表1所示。
表1容器云平台节点规划
节点角色主机名VCPUS内存硬盘
Master、Harbor、CICDmaster812G100G
WorkerNodenode88G100G
【任务1】容器云平台搭建[5分]
【适用平台】私有云
【题目1】平台部署--部署容器云平台[1.5分]
登录OpenStack私有云平台,使用CentOS7.9镜像创建两台云主机,使用kubeeasy工具
完成Kubernetes1.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】容器云应用部署:DockerCompose编排部署[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+GitLabCI来构建CICD环境,以缩短新功能开发上线周
期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化
容器生命周期管理、应用发布和版本迭代更新,请完成GitLabCI+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】部署GitLabRunner[2分]
将GitLabRunner部署到gitlab-ci命名空间下,Release名称为gitlab-runner,为GitLab
Runner创建持久化构建缓存目录/home/gitlab-runner/ci-build-cache以加速构建速度,并将其
注册到GitLab中。
完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径
CICD-Runner.tar.gz)
1.GitLabRunner部署成功得0.5分;
2.GitLabRunner注册成功得0.5分;
3.GitLabRunner持久化配置成功得1分。
【题目3】配置GitLab[1.5分]
将Kubernetes集群添加到demo-2048项目中,并命名为kubernetes-agent,项目命名空
间选择gitlab-ci。
完成后提交master节点的用户名、密码和IP地址到答题框。(需要用到的软件包路径
CICD-Runner.tar.gz)
1.GitLabAgent安装成功得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分]
【适用平台】私有云
【题目1】Pod管理--创建Pod[0.5分]
在default命名空间下使用nginx:latest镜像创建一个QoS类为Guaranteed的Pod,名称
为qos-demo。
完成后提交master节点的IP地址、用户名和密码到答题框。
1.Pod创建成功得0.2分;
2.PodQoS类型为Guaranteed得0.3分。
【题目2】安全管理--配置Pod安全上下文[0.5分]
使用busybox镜像启动一个名为context-demo的Pod,为该Pod配置安全上下文,要求
容器内以用户1000和用户组3000来运行所有进程,并在启动时执行“sleep1h”命令。
完成后提交master节点的IP地址、用户名和密码到答题框。
1.Pod安全上下午配置正确得0.5分。
【题目3】CRD管理--创建自定义资源类型[0.5分]
在Kubernetes集群中自定义一种资源类型Student,API为/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地址与chinaskills的解析。
完成后提交master节点的IP地址、用户名和密码到答题框。
1.自定义解析配置正确得0.5分。
【题目5】HPA管理--创建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】流量管理--创建IngressGateway[0.5分]
使用提供的软件包ServiceMesh.tar.gz将Bookinfo应用部署到default命名空间下,使用
IstioGateway可以实现应用程序从外部访问,请为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分]
【适用平台】私有云
【题目1】VM管理--创建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分。
【题目3】KubeVirt运维--创建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分。
【题目4】KubeVirt运维--启用快照[1分]
KubeVirt支持对VM进行快照,请启用KubeVirt快照管理功能:
完成后提交master节点的IP地址、用户名和密码到答题框。
1.快照功能启用成功得1分。
【任务6】容器云运维开发:KubernetesAPIs运维开发[10分]
【适用平台】私有云
【题目1】Python运维开发:基于KubernetesRestfulAPI实现Deployment创建[2分]
在提供的OpenStack私有云平台上,使用k8s-python-dev镜像创建1台云主机,云主机
类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默
认账号密码为“root/1DaoYun@2022”。
使用KubernetesRestfulAPI库,在/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分。
【题目2】Python运维开发:基于KubernetesPythonSDK实现Job创建[1分]
在前面已建好的Kubernetes开发环境云平台上。使用KubernetespythonSDK的
“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","printbpi(2000)"]
restartPolicy:Never
backoffLimit:4
1.执行sdk_job_manager.py脚本,成功创建job资源,计0.5分;
2.查询job资源,配置信息无误,计0.5分。
【题目3】Python运维开发:Pod资源的RestfulAPIsHTTP服务封装[3分]
编写Python程序实现Pod资源管理程序,将Pod资源管理的封装成Web服务。
在/root目录下创建pod_server.py程序,实现Pod的增删查改等Web访问操作。http.server
的host为localhost,端口8889;程序内部实现Kubernetes认证。
提示说明:Python标准库http.server模块,提供了HTTPServer请求封装。
需要实现的RestfulAPI接口如下:
GET/pod/{name},查询指定名称{name}的Pod;Response的Body以json格式输出。
POST/pod/{yamlfilename}创建yaml文件名称为{yamlfilename}的Pod;Response的
Body以json格式。
编码完成后,“手工下载”文件服务器主目录所有*.yaml文件到root目录下,“手动执
行”所编写pod_server.py程序,提交答案进行检测。
1.HTTP服务成功启动,计1分;
2.发起指定参数的GET查询Pod请求,成功查询指定名称的pod服务,计1分;
3.发起指定参数的POST创建Pod请求,成功创建Pod服务,计1分。
【题目4】Python运维开发:Service资源RestfulAPIsHTTP服务封装[4分]
编写Python程序实现Service资源管理程序,将Service资源管理的封装成Web服务。
在/root目录下创建service_server.py程序,实现Service的增删查改等Web访问操作。
http.server的host为localhost,端口8888;程序内部实现Kubernetes认证。
提示说明:Python标准库http.server模块,提供了HTTPServer请求封装。
需要实现的RestfulAPI接口如下:
GET/services/{name},查询指定名称{name}的Service;Response的Body以json格式
输出。
POST/services/{yamlfilename}创建yaml文件名称为{yamlfilename}的Service;
Response的Body以json格式,(手工将文件服务器主目录所有*.yaml文件下载到root目录
下)。
DELETE/services/{name};删除指定名称的Service;Response的Body以json格式。
编码完成后,自己手动执行提供WebHTTP服务的service_server.py程序,提交答案进
行检测。
1.HTTP服务成功启动,计1分;
2.发起指定参数的POST创建service请求,成功创建service资源,计1分;
3.发起指定参数的GET查询service请求,成功查询指定名称的Service,计1分;
4.发起指定参数的DELETE删除service请求,成功删除指定名称的Service,计1分。
2022年全国职业院校技能大赛高职组云计算赛项试卷
【赛程名称】云计算赛项第二场-容器云
说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机:master和node。
Chinaskill_Cloud_PaaS.iso镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。
某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入CICD
(ContinuousIntegration持续集成、ContinuousDelivery持续交付)成了公司的当务之急,研
发团队决定搭建基于Kubernetes的CICD环境,希望基于这个平台来实现DevOps的部分流
程,来减轻开发、部署、运维的负担。
为了能够让公司开发的web应用系统产品能够基于服务器的性能、可靠性、高可用性
与方便维护,研发部决定使用微服务架构,实现基于Kubernetes的容器化部署。
节点规划如表1所示。
表1容器云平台节点规划
节点角色主机名VCPUS内存硬盘
Master、Harbor、CICDmaster812G100G
WorkerNodenode88G100G
【任务1】容器云平台搭建[5分]
【适用平台】私有云
【题目1】平台部署--部署容器云平台[1.5分]
登录OpenStack私有云平台,使用CentOS7.9镜像创建两台云主机,使用kubeeasy工具
完成Kubernetes1.22.1集群的搭建。然后使用nginx镜像在default命名空间下创建一个名为
exam的Pod,并为该Pod设置环境变量exam,其值为2022。
完成后提交master节点的用户名、密码和IP到答题框。
1.Kubernetes集群部署成功得1分;
2.Pod创建成功且环境变量设置正确得0.5分。
【题目2】平台部署--部署Istio服务网格[0.5分]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年特定区域独家销售代表合同版B版
- 城市物流园区停车场施工合同
- 隧道建设三方施工合同
- 临时文化展览馆租赁合同
- 自行车店防火门安装协议
- 农村自建房屋协议
- 限时优惠促销二手房买卖合同
- 旅游景区供水井施工合同
- 城市公交站设施安全合同样本
- 快递公司配送司机劳动合同
- MOOC 药物化学-沈阳药科大学 中国大学慕课答案
- 消防栓检查记录卡
- 艺术经纬:面料设计与织造工艺智慧树知到期末考试答案2024年
- 药物化学(广东药科大学)智慧树知到期末考试答案2024年
- MOOC 大学计算机-西安交通大学 中国大学慕课答案
- 健身与减脂塑型智慧树知到期末考试答案2024年
- 压力容器的保养、安全附件
- 《光伏发电工程安全预评价规程》(NBT 32039-2017)
- 24春国家开放大学《计算机网络应用》大作业1-4参考答案
- 银企对接方案
- 反恐防范重点目标档案 空白模板2023年
评论
0/150
提交评论