2022年全国职业院校技能大赛(高职组)“云计算”赛项赛卷①第二场次:容器云

2022年全国职业院校技能大赛(高职组)

云计算”赛项赛卷1

第二场次:容器云(40分)

目录

2022年全国职业院校技能大赛(高职组)

“云计算”赛项赛卷1

第二场次:容器云(40分)

任务一、容器云服务搭建任务(5分)

任务二、容器云应用部署任务(15分)

任务三、容器云服务运维任务(10分)

任务四、容器云运维开发任务(10分)(本任务为4-6道Kubernetes APIs 运维开发题,只公布考试范围,不公布赛题)

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


说明:完成本任务需要两台安装了CentOS7.9操作系统的云主机master和node,镜像包中有本次容器云平台部署和运维所需的所有文件。

云梦公司存在两套虚拟化调度平台,虚拟机使用OpenStack调度,容器使用Kubernetes调度,两套系统两班人马,人力和资源都存在着一定的重叠和浪费。且该公司产品开发上线周期长,用户规模大且版本更新频繁。新版本的每次上线,产品都要承受极大的压力。

经过技术调研,公司决定引入KubeVirt实现OpenStack到Kubernetes的全面转型,用Kubernetes来管一切虚拟化运行时,包含裸金属、VM、容器等,实现一套调度,多种运行时。同时研发团队决定搭建基于Kubernetes 的CICD环境,基于这个平台来实现DevOps的部分流程,并基于Kubernetes实现业务系统的灰度发布。

为了能够让云梦公司开发的Web应用系统产品能够缩减开发周期,快速迭代版本,并实现业务从老版本到新版本的平滑过渡,避免升级过程中出现的问题对用户造成的影响。研发部决定使用微服务架构,实现基于Kubernetes的容器化部署、CICD和运维开发。

任务一、容器云服务搭建任务(5分)

题目1. 容器云平台搭建(5分)

1. 在master节点完成Docker CE、docker-compose以及Harbor仓库的安装,导入所有镜像,并推送到私有仓库。

2. 在master、node节点完成Kubernetes集群的安装。

3. 在Kubernetes集群中完成KubeVirt环境的安装。

4. 在Kubernetes集群中完成服务网格(ServiceMesh)项目Istio环境的安装。

5. 集群部署完成后,使用kubectl自带排序功能,列出集群内所有的Pod,并以name字段排序。

任务二、容器云应用部署任务(15分)

题目2. 容器云应用(7分)

该公司开发了一套基于Spring Cloud的分布式系统套件,并实现全容器化部署,该系统主要模块如下:

模块

说明

Config

配置中心

Gateway

微服务网关

Eureka

注册中心

Spring Boot Admin

监控和管理的源软件

Zipkin

分布式实时数据追踪系统

Hello Service

服务注册

试将Gateway组件、Eureka组件、Spring Boot Admin组件和Zipkin组件按照要求进行容器化,其它组件Config、Hello Service已经实现容器化,直接从仓库中拉取镜像运行容器即可。

1. 编写Dockerfile基于centos:7.9.2009基础镜像制作Gateway镜像,生成镜像名为chinaskill-gateway:v1.0,要求安装JDK环境和Gateway服务,并设置服务自启动。

2. 编写Dockerfile基于centos:7.9.2009基础镜像制作Eureka镜像,生成镜像名为chinaskill-eureka:v1.0,要求安装JDK环境和Eureka服务,并设置服务自启动。

3. 编写Dockerfile基于centos:7.9.2009基础镜像制作Zipkin镜像,生成镜像名为chinaskill-zipkin:v1.0,要求安装JDK环境和Zipkin服务,并设置服务自启动。

4. 编写Dockerfile基于centos:7.9.2009基础镜像制作Hello Service镜像,生成镜像名为chinaskill-hello:v1.0,要求安装Hello Service服务,并设置服务自启动。

5. 编写docker-compose.yaml文件,使用上述镜像编排部署Spring Cloud分布式系统。

题目3. 基于Kubernetes构建CICD(8分)

该公司决定采用GitLab + GitLab CI + Harbor + Kubernetes架构来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成CICD环境部署。CICD应用系统架构如下:

1.在Kubernetes集群上完成GitLab程序的部署,副本数为2,使用NodePort方式将GitLab服务对外暴露30081端口。

2.在Kubernetes集群上完成GitLab-Runner的部署,并完成Shared Runner的注册。

3. 在GitLab中开启Container Registry,并完成Environment variables的设置。

4.将Kubernetes集群添加到GitLab中,并命名为cicd-cluster。

5. 编写.gitlab-ci.yml自动化脚本,要求整个构建流程包含test、build、release、review和deploy几个阶段。

6.将提供的项目包推送到GitLab仓库并触发自动构建,完成代码编译、镜像构建、镜像推送和服务发布的自动化实现。

任务三、容器云服务运维任务(10分)

题目4. Kubernetes基于容器的运维(6分)

1.将master节点设置为污点,并且重新调度该节点上所有允许的pods。

2.  Kubernetes默认的证书有效期只有一年时间,对于某些场景下一个时间足够长的证书有效期是非常有必要的,请将Kubernetes集群证书的有效期延长至20年。

3.在master节点/root目录下编写YAML文件limitrange.yaml,具体要求如下:

(1)LimitRange名称:mem-limit-range;

(2)命名空间:default;

(3)容器默认资源请求为256Mi内存、500m CPU;

(4)容器资源请求上限为800Mi内存、3000m CPU;

(5)内存和CPU超售的比率均为2。

完成后使用该yaml文件创建LimitRange。

4. 为master节点打上标签“disktype=ssd”和标签“exam=chinaskill”,然后在master节点/root目录下编写YAML文件deployment.yaml创建Deployment,具体要求如下:

(1)Deployment名称:nginx-deployment;

(2)要求Pod只能调度到具有标签“disktype=ssd”的节点上;

(3)具有标签“exam=chinaskill”的节点优先被调度。

完成后使用该YAML文件创建Deployment。

5. 在master节点/root目录下编写YAML文件role.yaml文件创建集群角色,具体要求如下:

(1)集群角色名称:deployment-clusterrole;

(2)该角色拥有对Deployment、Daemonset、StatefulSet的创建权限。

完成后使用该YAML文件创建集群角色。

6. 在master节点/root目录下编写YAML文件创建network.yaml创建网络策略,具体要求如下:

(1)网络策略名称:exam-nework;

(2)针对namespace test下的Pod,只允许相同namespace下的Pod访问,并且可访问Pod的9000端口。

完成后使用该YAML文件创建网络策略。

7. 在master节点/root目录下编写YAML文件pv.yaml创建PV,具体要求如下:

(1)PV名称:app-pv;

(2)容量为10Gi;

(3)访问模式为ReadWriteMany;

(4)volume的类型为hostPath,位置为/src/app-config。

完成后使用该YAML文件创建PV。

8. 在Kubernetes集群中完成Bookinfo样例程序的部署,在master节点/root目录下编写YAML文件istio.yaml创建请求路由,具体要求如下:

(1)路由名称:bookinfo-virtualservice;

(2)将所有流量路由到每个微服务的 v1 版本。

完成后使用该YAML文件创建请求路由。

题目5. Kubernetes基于虚拟机的运维(4分)

根据Garnter的最新预测,到2022年将会有75%的生产应用全部跑在容器环境之上。由于技术原因,某公司的多数架构仍运行在虚拟机上。经过技术调研,KubeVirt支持完全的虚拟机纳管,可以完美迁移因为内核版本过于陈旧或者语言问题而无法迁移到容器的部分应用,所以公司决定将业务全部迁移到Kubernetes集群中。

1. 在KubeVirt中启用实时迁移功能,以实现将一台正在运行的虚拟机实例从一个节点迁移到另一个节点,期间工作负载继续运行且能保持持续访问。

2.使用提供的OpenStack qcow2镜像,在master节点/root目录下编写YAML文件创建VMI,具体要求如下:

(1)VMI名称:chinaskill-vmi;

(2)运行策略:Manual;

(3)磁盘驱动:virtio。

完成后使用该YAML文件创建VMI,然后使用virtctl工具启动该VMI。

3. 在master节点上编写YAML文件vmi-sshkey.yaml为虚拟实例chinaskill-vmi进行动态密钥注入,具体要求如下:

(1)使用 qemuGuestAgent 将访问凭证api附加到chinaskill-vmi。

完成后运行该YAML文件并使用SSH验证VMI的连通性。

任务四、容器云运维开发任务(10分)(本任务为4-6道Kubernetes APIs 运维开发题,只公布考试范围,不公布赛题)

题目6. Kubernetes APIs 运维开发(10分)

编写Python脚本,调用Kubernetes API实现对Kubernetes容器云平台进行管理和运维。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/276461.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源预约挂号平台 - 从0到上线

文章目录 开源预约挂号平台 - 从0到上线演示地址源码地址可以学到的技术前端技术后端技术部署上线开发工具其他技术业务功能 项目讲解前端创建项目 - 安装PNPM - 使用VSCODE - 安装插件首页顶部与底部 - 封装组建 - 使用scss左右布局中间内容部分路由 - vue-routerBANNER- 走马…

阿里云30个公共云地域、89个可用区、5个金融云和政务云地域

阿里云基础设施目前已面向全球四大洲,公共云地域开服运营30个公共云地域、89个可用区,此外还拥有5个金融云、政务云地域,并且致力于持续的新地域规划和建设,从而更好的满足用户多样化的业务和场景需求。伴随着基础设施的加速投入和…

【机器学习】深度学习概论(一)

经典的机器学习算法与深度学习对比 一、机器学习面临的挑战 1.1 机器学习算法用于各种应用问题时所利用的典型特征 1.2 采用人工特征的机器学习算法处理流程 1.3 人工设计特征面临的问题 二、 深度学习技术 2.1 采用受限玻尔兹曼机和逐层训练的方法训练深层网络 2.2 自动编码器…

首次使用TypeScript,报错:无法重新声明块级范围变量(声明变量报错)

前几天在书写TypeScript代码时,出现了声明变量报错的情况,具体情况如下: let arr: number; arr 10; console.log(arr);报错如下: 解决方案: 在配置文件tsconfig.json中,配置如下代码: { &q…

js_常用事件演示

✨前言✨ 1.如果代码对您有帮助 欢迎点赞👍收藏⭐哟 后面如有问题可以私信评论哟🗒️ 2.博主后面将持续更新哟😘🎉文章目录 🍔一、在JavaScript中什么是事件?🍟二、为什么要使用事件&#x…

西软云XMS 反序列化RCE漏洞复现

0x01 产品简介 西软云XMS是基于云平台数据中心开发的支持多酒店、多语言、多平台的酒店管理系统。致力于以新一代云架构为国内四,五星级中高端酒店提供灵活、高度整合酒店业务,助力酒店智能转型升级。 0x02 漏洞概述 西软云XMS /fox-invoker/FoxLookupInvoker接口处存在反…

Erlang、RabbitMQ下载与安装教程(windows超详细)

目录 安装Erlang 1.首先安装RabbitMQ需要安装Erlang环境 2.点击下载好的.exe文件进行傻瓜式安装,一直next即可 3.配置Erlang环境变量 安装RabbitMQ 1.给出RabbitMQ官网下载址:Installing on Windows — RabbitMQ,找到 2.配置RabbitMQ环境变量&#xff0…

国际物流公司科普_集装箱种类区分和介绍_箱讯科技

集装箱运输的不断发展,为适应装载不同种类货物的需要,因而出现了不同种类的集装箱。今天和大家一起来总结一下。 按使用材料分类 根据箱子主体部件(侧壁、端壁、箱顶等)采用什么材料,就叫做什么材料制造的集装箱&…

机器学习的任务

根据学习任务的不同,机器学习算法大致可分为3类:监督学习、无监督学习和半监督学习。 监督学习(Supervised Learning) 在监督学习中,我们有一组带有标签(即已知输出)的训练样本作为输入。目标是…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存(C++)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK实现Raw格式的图像保存(C) Baumer工业相机Baumer工业相机通过SDK实现Raw格式的图像保存的技术背景通过SDK获取相机信息的代码分析Baumer工业相机回调函数里保存原始图像数据Baumer保存Raw图像格式重要核心代…

用Html和js和layui写一个简单猜拳小游戏

简单学习技术&#xff0c;写了一个小游戏&#xff0c;用html和js写一个简单的小游戏。玩家点击按钮出拳&#xff0c;玩家胜利结果显示绿色&#xff0c;玩家输了结果显示红色&#xff0c;平局结果显示蓝色。 页面效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <…

低代码平台快速开发CRM 可灵活自定义的CRM软件

白码低代码平台以其简化和加速应用程序开发的方法而闻名&#xff0c;无需大量编写代码&#xff0c;只需通过可视化界面和配置来构建应用程序。在快速开发CRM方面&#xff0c;白码低代码平台具有许多优势和应用。 白码低代码平台快速搭建CRM 快速开发是白码低代码平台的一大优势…

最新AI系统ChatGPT网站系统源码,Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图+思维导图一站式解决方案

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

MD5算法

一、引言 MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一种广泛应用的密码散列算法&#xff0c;由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密&#xff0c;将消息压缩成固定长度的摘要&#xff08;通常为128位&#xff09;。在密码学…

算法设计与分析期末上机板子——课内题目题意与题解分析+课外知识点总结!

真正的模板&#xff01;&#xff01;&#xff01; 文章目录 课内堆实现C语言矩阵连乘E1D连分数计算C3A-钢管切割&#xff1a;动态规划C3C-流水线调度&#xff1a;动态规划C3E-矩阵连乘效率&#xff1a;区间动态规划C3F-导弹轰炸&#xff08;小偷问题&#xff09;&#xff1a;动…

flutter dio使用proxyman抓包进行网络调试

证书 wifi 手机和电脑连上同一个wifi&#xff0c;并且手机wifi使用代理&#xff0c;代理地址为电脑的ip和proxyman设置的监听端口 代码 import package:dio/dio.dart; import package:dio/io.dart; import dart:io;class ProxyUtil {static String proxyIP "";st…

MySQL GTID 主从错误

错误 搭建主从出现以下错误 Last_IO_Error: The replication receiver thread cannot start because the master has GTID_MODE OFF and this server has GTID_MODE ON. 原因 MySQL主从的 Master 和 Slave 必须 同时开启或者关闭 enforce-gtid-consistency和 gtid-mode 功能…

Centos如何修改ssh端口

想必很大一部分的同学用的是centos服务器&#xff0c;对于默认的22端口存在一定的安全风险&#xff0c;所以今天我们一起看下如何修改ssh端口 一、什么是SSH SSH&#xff08;Secure Shell&#xff09;是一种安全的远程登录协议&#xff0c;它允许您通过网络远程连接到Linux系统…

YOLOv5改进 | 2023主干篇 | 华为最新VanillaNet主干替换Backbone实现大幅度长点

一、本文介绍 本文给大家来的改进机制是华为最新VanillaNet网络&#xff0c;其是今年最新推出的主干网络&#xff0c;VanillaNet是一种注重极简主义和效率的神经网络架构。它的设计简单&#xff0c;层数较少&#xff0c;避免了像深度架构和自注意力这样的复杂操作(需要注意的是…

docker中部署mysql

原文链接&#xff1a; Docker 安装mysql8.0_docker安装mysql8.0-CSDN博客 1&#xff1a;拉取mysql镜像 docker pull mysql:8.0指定8.0版本的&#xff0c;因为我之前装的是5.6&#xff0c;不支持窗口函数&#xff0c;8版本之后的才支持&#xff0c;所以更换版本。 2&#xf…
最新文章