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信息输出到控制台,并停止监听。

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

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

相关文章

【011】网上鲜花商店(SSM+JSP)

【011】网上鲜花商店(SSMJSP) 一、系统情况介绍 网上鲜花商店分为前台端和后台端,是致力于可以便捷购花而开发的一套系统,可以按照不同种类进行分类管理,清晰客观的展示鲜花的详情信息以及价格等等,适合新手学习开发…

Redis(基础指令和五大数据类型)

文章目录 1.基本介绍1.多种数据结构支持2.应用场景 2.Redis安装(直接安装到云服务器)1.安装gcc1.yum安装gcc2.查看gcc版本 2.将redis6.2.6上传到/opt目录下3.进入/opt目录下然后解压4.进入 redis-6.2.6目录5.编译并安装6.进入 /usr/local/bin 查看是否有…

多域名证书一个域名50元

多域名SSL数字证书是一种特殊的域名SSL证书,它可以同时保护多个不同的独立域名,对于域名网站比较多的个人和企事业开发者来说,为每个网站购买不同的SSL证书是一项不小的开销。因此,CA认证机构推出了两种SSL证书——通配符SSL证书和…

内网使用有道云翻译(安装离线包,支持翻译长句)

当我们使用有道云翻译时,为了在没网的情况下也能准确进行翻译,我们需要下载一些离线包增强翻译效果,但是我们在内网进行有道云安装时,他只提供了一个有道云的exe安装,并没有提供离线包的安装,我们这里实现在…

vue快速入门(五十五)插槽基本用法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 当传输内容只有一种时的基础写法 源码 App.vue <template><div id"app"><h1>被淡化的背景内容</h1><my-dialog><!-- 插槽内容:文字以及dom结构都可以传 --><span>你确…

分布式锁与秒杀

分布式锁与秒杀 1. 分布式锁1.1 常用Redis分布式锁方案三&#xff1a;使用Lua脚本(包含SETNX EXPIRE两条指令) 秒杀 1. 分布式锁 https://www.cnblogs.com/shoshana-kong/p/17519673.html 1.1 常用Redis分布式锁方案三&#xff1a;使用Lua脚本(包含SETNX EXPIRE两条指令) …

Gradio的Dataframe数据显示不全,例如只能显示前15行数据

Gradio的Dataframe数据显示不全&#xff0c;例如只能显示前15行数据 ⚙️1.软件环境⚙️&#x1f50d;2.问题描述&#x1f50d;&#x1f421;3.解决方法&#x1f421;&#x1f914;4.结果预览&#x1f914; ⚙️1.软件环境⚙️ Windows10 教育版64位 Python 3.10.6 Chrome 版本…

RFC 791 (1)-导论

目录 浅论 IP是啥 IP可以管啥 操作 范例查看 提示&#xff1a;本系列将会开始RFC文档阅读&#xff0c;这里会给出我的一些笔记 浅论 我们这篇RFC文档描述的是IP和ICMP协议&#xff0c;我们都知道&#xff0c;在传统的OSI七层或者是现在被简化的五层&#xff1a;应用层&…

绘唐3工具怎么成为团长阿

绘唐3怎么成为团长阿 这里https://qvfbz6lhqnd.feishu.cn/wiki/D3YLwmIzmivZ7BkDij6coVcbn7W

统一大型语言模型和知识图谱:路线图

【摘要】 大型语言模型&#xff08;LLM&#xff09;&#xff0c;如ChatGPT和GPT4&#xff0c;由于其涌现能力和泛化性&#xff0c;正在自然语言处理和人工智能领域掀起新的浪潮。然而&#xff0c;LLM是黑箱模型&#xff0c;通常无法捕捉和获取事实知识。相反&#xff0c;知识图…

图片如何转换成jpg?分享三种简单方法

在日常生活中&#xff0c;我们经常需要将照片转换为JPG格式以便于分享或者上传&#xff0c;然而&#xff0c;小伙伴不知道的是不同的设备和软件可能会有不同的默认保存格式。如果你发现你的照片不是jpg格式&#xff0c;那么如何将图片如何转换成jpg呢? 如果您有其他格式的图片…

Windows 系统使用Jenkins 实现CI一键打包部署操作

一 下载安装jenkins jenkins 中文官网链接: 下载地址 点击下载&#xff0c;完成后是一个.msi后缀的安装文件&#xff0c;双击安装 安装和普通软件一样&#xff0c;一路next&#xff0c;安装路径自己设置一下&#xff0c;默认是C盘&#xff0c;我C盘不够用了&#xff0c;设置…

【C++基础】this指针

一&#xff0c;this指针引入 不同对象调用相同函数时 &#xff0c;打印出来的值不一样&#xff0c;为什么&#xff1f; 这就隐含了一个this指针。this指针又叫隐含的this指针。&#xff08;不能显示写&#xff0c;但能显示用&#xff09; 注&#xff1a;1&#xff0c;红色部…

企业计算机服务器中了rmallox勒索病毒怎么处理,rmallox勒索病毒解密恢复

网络在为企业提供便利的同时&#xff0c;也为企业的数据安全带来严重威胁。随着网络技术的不断发展&#xff0c;越来越多的企业利用网络开展各项工作业务&#xff0c;网络数据安全问题&#xff0c;一直成为企业关心的主要话题&#xff0c;但网络威胁随着网络技术的不断成熟&…

《Fundamentals of Power Electronics》——一些常用变换器的正则电路参数值

对于理想的CCM PWM dc-dc转换器&#xff0c;其包含一个电感和电容&#xff0c;正则模型有效的低通滤波器需要包含一个电感和一个电容。正则模型简化为如下图所示。 假设电容与负载直接相连。基础的buck、boost和buck-boost转换器的参数值如下表所示。 该模型可以用传统的线性电…

Leetcode—1652. 拆炸弹【简单】

2024每日刷题&#xff08;127&#xff09; Leetcode—1652. 拆炸弹 实现代码 class Solution { public:vector<int> decrypt(vector<int>& code, int k) {int codeSize code.size();vector<int> ans(codeSize, 0);if(k 0) {return ans;}if(k > 0)…

【Linux】命令行参数和环境变量

目录 一、命令行参数 1.1 main函数的参数 1.2 命令行参数 二、环境变量 2.1 概念 2.2 查看和设置环境变量 2.2.1 查看环境变量 2.2.2 设置环境变量 2.2.3 设置PATH环境变量 2.2.4 环境变量表 2.2.5 本地变量和环境变量的区别 2.2.6 内建命令和常规命令 2.3 环境变…

新人0基础拼多多入门,纯小白快速入门多多(21节课)

课程内容&#xff1a; 1 店铺体系说明 .mp4 2 ㄠ衬雛饯铺运营雷区 ,mp4 3 店铺领航员 .mp4 4 店铺设置及管理 ,mp4 5 多多客服设置,mp4 6 店铺资金中心 .mp4 7 店铺运营小工具 ,mp4 8 售后及商品管理,mp4 9 发布机会商品.mp4 10 店铺营销 .mp4 11 产品类型 .mp4 12…

速锐得深入研究比亚迪E5电控系统及BCU数据及DBC控制策略

新能源汽车中比亚迪作为世界品牌的佼佼者&#xff0c;其E5车型凭借出色的电控系统成为了市场上的一颗璀璨明星。比亚迪E5电控系统不仅体现了技术的先进性&#xff0c;更是智能化、高效率的代名词&#xff0c;它如同一位智慧的指挥官&#xff0c;精确地掌控着汽车的每一个动作&a…

VGA项目:联合精简帧+双fifo+sobel算法 实现VGA显示(未完)

前言&#xff1a;该项目实际上是在很多基础的小练习上合成起来的&#xff0c;例如涉及到uart&#xff08;rs232&#xff09;的数据传输、双fifo流水线操作、VGA图像显示&#xff0c;本次内容在此基础上又增添了sobel算法&#xff0c;能实现图像的边沿监测并VGA显示。 文章目录…