推广网站挣钱,权威发布图片大全,网站备案注销申请书,个人业务网站免费制作2022年山东省职业院校技能大赛高职组云计算赛项试卷 目录
【赛程名称】云计算赛项第二场-容器云
需要竞赛软件包以及资料可以私信博主#xff01; 【赛程名称】云计算赛项第二场-容器云
【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00
说明#xff1a;完成本任务…2022年山东省职业院校技能大赛高职组云计算赛项试卷 目录
【赛程名称】云计算赛项第二场-容器云
需要竞赛软件包以及资料可以私信博主 【赛程名称】云计算赛项第二场-容器云
【赛程时间】2022-11-27 09:00:00至2022-11-27 16:00:00
说明完成本任务需要两台安装了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 4 12G 100G Worker Node node 4 12G 100G 【任务1】容器云平台搭建[5分]
【适用平台】私有云
【题目1】平台部署--部署容器云平台[1分]
使用提供的用户名和密码登录OpenStack私有云平台当前租户下已经存在两台云主机使用CRT工具进行连接使用kubeeasy工具完成Kubernetes 1.22.1集群的搭建。然后使用nginx镜像在default命名空间下创建一个名为exam的Pod并为该Pod设置环境变量exam其值为2022。搭建kubernetes集群需要用到的iso镜像已经在master节点中
完成后提交master节点的用户名、密码和IP到答题框。
【题目2】Pod管理--创建Pod[1分]
在default命名空间下使用nginx:latest镜像创建一个QoS类为Burstable的Pod名称为qos-demo。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目3】平台部署--部署Istio服务网格[1分]
在Kubernetes集群上完成Istio服务网格环境的安装在default命名空间下使用busybox镜像创建一个名为busybox的Pod并手动为该Pod注入Sidecar。
完成后提交master节点的用户名、密码和IP到答题框。
【题目4】平台部署--部署KubeVirt虚拟化[0.5分]
在Kubernetes集群上完成KubeVirt虚拟化环境的安装。
完成后提交master节点的用户名、密码和IP到答题框。
【题目5】平台部署--部署Harbor仓库及Helm包管理工具[0.5分]
在master节点上完成Harbor镜像仓库及Helm包管理工具的部署。然后使用nginx镜像自定义一个ChartDeployment名称为nginx副本数为1然后将该Chart部署到default命名空间下Release名称为web。
完成后提交master节点的用户名、密码和IP到答题框。
【题目6】集群管理--备份ETCD数据[1分]
Kubernetes使用ETCD来存储集群的实时运行数据为防止服务器宕机导致Kubernetes集群数据丢失请将Kubernetes集群数据备份到/root/etcd.db中。
完成后提交master节点的IP地址、用户名和密码到答题框。
【任务2】容器化应用搭建Docker Compose编排部署[7分]
【适用平台】私有云
【题目1】容器化Memcached服务[1分]
在master节点/root/DjangoBlog目录下编写Dockerfile-memcached文件构建blog-memcached:v1.0镜像具体要求如下需要用到的软件包Django.tar.gz
1基础镜像centos:7.9.2009
2完成memcached服务的安装
3声明端口11211
4设置服务开机自启。
完成后构建镜像并提交master节点的用户名、密码和IP地址到答题框。
【题目2】容器化Mariadb服务[1.5分]
在master节点/root/DjangoBlog目录下编写Dockerfile-mariadb文件构建blog-mysql:v1.0镜像具体要求如下需要用到的软件包Django.tar.gz
1基础镜像centos:7.9.2009
2安装MariaDB服务并设置root用户的密码为root
3创建数据库djangoblog并将sqlfile.sql导入该数据库
4声明端口3306
5设置服务开机自启。
完成后构建镜像并提交master节点的用户名、密码和IP地址到答题框。
【题目3】容器化前端服务[1分]
在master节点/root/DjangoBlog目录下编写Dockerfile-nginx文件构建blog-nginx:v1.0镜像具体要求如下需要用到的软件包Django.tar.gz
1基础镜像centos:7.9.2009
2安装nginx服务
3使用提供的nginx.conf作为默认的配置文件
3声明端口80
4设置服务开机自启。
完成后构建镜像并提交master节点的用户名、密码和IP地址到答题框。
【题目4】容器化Blog服务[1.5分]
在master节点/root/DjangoBlog目录下编写Dockerfile-blog文件构建blog-service:v1.0镜像具体要求如下需要用到的软件包Django.tar.gz
1基础镜像centos:7.9.2009
2安装Python3.6环境
3使用pip3工具离线安装requirements.txt中的软件包
4安装DjangoBlog服务
5声明端口8000
6设置DjangoBlog服务开机自启。
完成后构建镜像并提交master节点的用户名、密码和IP地址到答题框。
【题目5】编排部署博客系统[2分]
在master节点/root/DjangoBlog目录下编写docker-compose.yaml文件具体要求如下
1容器1名称blog-memcached镜像blog-memcached:v1.0端口映射11211:11211
2容器2名称blog-mysql镜像blog-mysql:v1.0端口映射3306:3306
3容器3名称blog-nginx镜像blog-nginx:v1.0端口映射80:8888
4容器4名称blog-service镜像blog-service:v1.0端口映射8000:8000。
完成后编排部署该博客系统并提交master节点的用户名、密码和IP地址到答题框。 【任务3】容器云应用部署基于Kubernetes构建CICD[8分]
该公司决定采用GitLab Jenkins来构建CICD环境以缩短新功能开发上线周期及时满足客户的需求实现DevOps的部分流程来减轻部署运维的负担实现可视化容器生命周期管理、应用发布和版本迭代更新请完成GitLab Jenkins Kubernetes的CICD环境部署构建持续集成所需要的所有软件包在软件包BlueOcean.tar.gz中。CICD应用系统架构如下 【适用平台】私有云
【题目1】安装Jenkins环境[1.5分]
使用镜像jenkins/Jenkins:latest在Kubernetes集群devops命名空间下完成Jenkins的部署Deployment和Service名称均为jenkins要求以NodePort方式将Jenkins的8080端口对外暴露为30880并使用提供的软件包完成Blue Ocean等离线插件的安装。部署完成后设置Jenkins用户名为jenkins密码为000000并在授权策略中配置“任何用户可以做任何事(没有任何限制)”。
完成后提交master节点的用户名、密码和IP地址到答题框。需要用到的软件包路径http://IP/BlueOcean.tar.gz
【题目2】安装GitLab环境[1.5分]
使用镜像gitlab/gitlab-ce:latest在Kubernetes集群devops命名空间下完成GitLab的部署Deployment和Service名称均为gitlab设置GitLab的root用户密码为admin123并以NodePort方式将GitLab的80端口对外暴露为30888。部署完成后新建公开项目springcloud并将springcloud文件夹中的代码上传到该项目。
完成后提交master节点的用户名、密码和IP地址到答题框。需要用到的软件包路径http://IP/BlueOcean.tar.gz
【题目3】配置Jenkins连接GitLab[1分]
在GitLab中生成名为jenkins的“Access Tokens”在Jenkins中配置GitLab凭据并测试其连通性。
完成后提交master节点的用户名、密码和IP地址到答题框。需要用到的软件包路径http://IP/BlueOcean.tar.gz
【题目4】构建CI/CD[4分]
在Jenkins中新建流水线任务springcloud流水线选择“Pipeline script from SCM”。在springcloud项目中新建Jenkinsfile脚本文件编写声明式Pipeline要求完成构建maven项目然后构建Docker镜像并推送到Harbor仓库的springcloud项目并基于新构建的镜像完成config和gateway服务自动发布到Kubernetes集群springcloud命名空间下。最后配置Webhook触发构建。
完成后提交master节点的用户名、密码和IP地址到答题框。需要用到的软件包路径http://IP/BlueOcean.tar.gz 【任务4】容器云服务运维Kubernetes基于容器的运维[10分]
【适用平台】私有云
【题目1】安全管理--配置Pod安全上下文[0.5分]
使用busybox镜像启动一个名为context-demo的Pod为该Pod配置安全上下文要求容器内以用户1000和用户组3000来运行所有进程并在启动时执行“sleep 1h”命令。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目2】CRD管理--创建自定义资源类型[0.5分]
在Kubernetes集群中自定义一种资源类型StudentAPI为stable.example.com/v1单数形式为student复数形式为students简写为stu作用域为命名空间级然后在default命名空间下创建一个名为exam的Student对象。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目3】HPA管理--创建HPA规则[0.5分]
默认情况下HPA是无法调整伸缩灵敏度的但不同的业务场景对伸缩灵敏度的要求不一样。要求在default命名空间下使用nginx镜像创建一个名为web的deployment自定义HPA的伸缩灵敏度为该deployment创建一个名为web的HPA扩容时立即新增当前9倍数量的副本数时间窗口为5s伸缩范围为1--1000。例如一开始只有1个Pod当CPU使用率超过80%时Pod数量变化趋势为1 → 10 → 100 → 1000。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目4】节点亲和性管理--创建软限制规则的Pod[1分]
在default命名空间下使用nginx镜像运行一个Pod名称为nginx要求使用preferredDuringSchedulinglgnoredDuringExecution策略将Pod调度到具有disktypessd标签的节点。
完成后提交master节点的用户名、密码和IP到答题框。
【题目5】驱逐机制管理--配置节点压力驱逐[0.5分]
设置kubelet数据存储在/apps/data/kubelet目录下并设置当kubelet的存储空间不足5%或者当容器运行时文件系统可用存储空间不足5%时开始驱逐Pod。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目6】LimitRange管理--配置内存默认值[0.5分]
创建命名空间default-mem-example在master节点/root目录下编写YAML文件具体要求如下
1LimitRange名称mem-limit-range
2命名空间default-mem-example
3设置容器默认分配256M的内存请求和512M的内存上限。
完成后使用该YAML文件创建LimitRange并提交master节点的用户名、密码和IP到答题框。
【题目7】RBAC管理--创建角色并绑定[1分]
创建一个名为deployment-clusterrole的clusterrole并且对该clusterrole只绑定对Deployment、Daemonset、Statefulset的创建权限。在指定命名空间exam创建一个名为exam-user的serviceaccount并且将上一步创建clusterrole和该serviceaccount绑定。
完成后提交master节点的用户名、密码和IP地址到答题框。
【题目8】存储卷管理--Pod时间同步[1分]
容器默认的时区采用的是UTC时区而宿主机采用的是CST时区。使用nginx:latest镜像在default命名空间下创建一个名为exam的Pod要求Pod时区与宿主机时区同步。
完成后提交master节点的IP、用户名和密码到答题框。
【题目9】流量管理--创建Ingress Gateway[0.5分]
使用提供的软件包ServiceMesh.tar.gz将Bookinfo应用部署到default命名空间下使用Istio Gateway可以实现应用程序从外部访问请为Bookinfo应用创建一个名为bookinfo-gateway的网关指定所有HTTP流量通过80端口流入网格然后将网关绑定到虚拟服务bookinfo上。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目10】服务网格--创建默认目标规则[1分]
为Bookinfo应用的四个微服务设置默认目标规则名称分别为productpage、reviews、ratings和details。定义好可用的版本productpage服务可用的版本为v1reviews服务可用的版本为v1、v2、v3ratings服务可用的版本为v1、v2details服务可用的版本为v1、v2。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目11】服务网格--创建基于用户身份的路由[0.5分]
创建一个名为reviews路由要求来自名为Jason的用户的所有流量将被路由到服务reviews:v2。
完成后提交master节点的用户名、密码和IP到答题框。
【题目12】VM管理--创建VM[0.5分]
使用镜像fedora-virt:v1.0在default命名空间下创建一台vm名称为vm-fedora内存为1G。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目13】存储与卷--创建emptyDisk卷[1分]
使用镜像fedora-virt:v1.0在default命名空间下创建一台vmi名称为vmi-fedora并使用emptyDisk卷为vmi挂载一块2G的磁盘。
完成后提交master节点的IP地址、用户名和密码到答题框。
【题目14】KubeVirt运维--创建VMI[1分]
将提供的镜像exam.qcow2转换为docker镜像exam:v1.0然后使用镜像exam:v1.0镜像在default命名空间下创建一台vmi名称为exam将虚拟机的80端口以NodePort的方式对外暴露为30082并使用数据源在启动时将VM的主机名初始化为exam。
完成后提交master节点的IP地址、用户名和密码到答题框。
【任务5】容器云运维开发Kubernetes APIs运维开发[10分]
【适用平台】私有云
【题目1】Kubernetes Python运维脚本开发使用Restful API方式管理service服务[3分]
在提供的OpenStack私有云平台上使用k8s-python-dev镜像创建1台云主机云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境登录默认账号密码为“root/1DaoYun2022”。
使用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】Python运维开发基于Kubernetes Python SDK方式管理deployment服务[3分]
在提供的OpenStack私有云平台上使用“k8s-python-dev”镜像创建1台云主机云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境登录默认账号密码为“root/1DaoYun2022”。使用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】Python运维开发Pod资源的Restful APIs HTTP服务封装[2分]
编写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程序提交答案进行检测。
【题目4】Python运维开发Service资源Restful APIs HTTP服务封装[2分]
编写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}的ServiceResponse的Body以json格式手工将文件服务器主目录所有*.yaml文件下载到root目录下。
DELETE /services/{name}删除指定名称的ServiceResponse的Body以json格式。
编码完成后自己手动执行提供Web HTTP服务的service_server.py程序提交答案进行检测。