鼠扑 发表于 2024-8-17 16:55:42

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

#必要资源(软件包及镜像)或有题目的,可私聊博主!!!

#必要资源(软件包及镜像)或有题目的,可私聊博主!!!

#必要资源(软件包及镜像)或有题目的,可私聊博主!!!

【赛程名称】云计算赛项第二场-容器云
        阐明: 完成本任务必要两台安装了 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】容器云平台搭建 分]

【适用平台】私有云
【标题 1】平台部署--部署容器云平台

登录OpenStack 私有云平台,利用 CentOS7.9 镜像创建两台云主机,利用 kubeeasy 工具完成Kubernetes 1.22.1 集群的搭建。然后利用 nginx 镜像在 default 定名空间下创建一个名为 exam 的Pod,并为该 Pod 设置环境变量 exam,其值为 2022。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。

[*] Kubernetes 集群部署乐成得 1 分;

[*] Pod 创建乐成且环境变量设置准确得 0.5 分。

【标题 2】平台部署--部署 Istio 服务网格

在 Kubernetes 集群上完成 Istio 服务网格环境的安装,然后新建定名空间 exam,为该定名空间开启自动注入Sidecar。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。

[*] Istio 所有组件运行乐成得 0.3 分;

[*] 定名空间 exam 自动注入乐成得 0.2 分。

【标题 3】平台部署--部署 KubeVirt 假造化

在 Kubernetes 集群上完成KubeVirt 假造化环境的安装。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。
1.KubeVirt 所有组件运行乐成得 1 分。

【标题 4】平台部署--部署 Harbor 堆栈及Helm 包管理工具

在 master 节点上完成Harbor 镜像堆栈及Helm 包管理工具的部署。然后利用 nginx 镜像自定义一个 Chart,Deployment 名称为 nginx,副本数为 1,然后将该 Chart 部署到 default定名空间下,Release 名称为 web。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。

[*] Harbor 堆栈部署乐成得 0.5 分;

[*] Helm 工具安装乐成得 0.2 分;

[*] Chart 包部署乐成得 0.3 分。

【标题 5】集群管理--备份 ETCD 数据 分]

Kubernetes 利用 ETCD 来存储集群的实时运行数据,为防止服务器宕机导致 Kubernetes集群数据丢失,请将Kubernetes 集群数据备份到/root/etcd.db 中。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] etcdctl 工具安装乐成得 0.2 分;
[*] ETCD 数据备份乐成得 0.8 分。

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

【适用平台】私有云
Hyperf 是一个高性能、高灵活性的渐进式 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提拔,提供超高性能的同时,也保持着极其灵活的可扩展性。请根据要求完成数据库服务 MariaDB、缓存服务 Redis、微服务 Hyperf及前端服务Nginx 按照要求进行容器化。
【标题 1】容器化 MariaDB 服务

编写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 地址到答题框。

[*] 镜像构建乐成得 0.5 分;

[*] 数据库安装且导入数据乐成得 0.5 分。

【标题 2】容器化Redis 服务

编写 Dockerfile 文件构建 hyperf-redis:v1.0 镜像,详细要求如下:(必要用到的软件包:Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2) 安装Redis 服务;
(3) 关闭掩护模式;
(4) 声明端口:6379;
(5) 设置服务开机自启。
完成后构建镜像,并提交master 节点的用户名、暗码和 IP 地址到答题框。

[*] 镜像构建乐成的 0.5 分;

[*] Redis 服务安装乐成且配置准确得 0.5 分。

【标题 3】容器化Nginx 服务

编写 Dockerfile 文件构建hyperf-nginx:v1.0 镜像,详细要求如下:(必要用到的软件包:Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2) 安装nginx 服务;
(3) 声明端口:80;
(4) 设置服务开机自启。
完成后构建镜像,并提交master 节点的用户名、暗码和 IP 地址到答题框。

[*] 镜像构建乐成得 0.3 分;

[*] Nginx 安装乐成且配置准确得 0.2 分。

【标题 4】容器化Hyperf 服务

编写Dockerfile 文件构建hyperf-service:v1.0 镜像,详细要求如下:(必要用到的软件包:Hyperf.tar.gz)
(1)基础镜像:centos:7.9.2009;
(2) 安装 PHP 及扩展;
(3) 利用源码编译安装Swoole。
完成后构建镜像,并提交master 节点的用户名、暗码和 IP 地址到答题框。

[*] 镜像构建乐成得 0.5 分;

[*] PHP 安装乐成得 0.2 分;

[*] Swoole 安装乐成得 0.3 分。

【标题 5】编排部署Hyperf 框架

编写/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 分]

该公司决定采用Kubernetes + GitLab CI 来构建 CICD 环境,以缩短新功能开发上线周期,实时满意客户的需求,实现 DevOps 的部门流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成GitLab CI + Kubernetes 的 CICD 环境部署(构建持续集成所必要的所有软件包在软件包 CICD-Runner.tar.gz 中)。CICD 应用体系架构如下:
https://img-blog.csdnimg.cn/direct/8499ecaa43144f0fa529d93a7eec3497.png
【适用平台】私有云
【标题 1】安装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)

[*] GitLab 部署准确且能正常访问得 0.5 分;

[*] 项目导入乐成得 0.5 分。

【标题 2】部署GitLab Runner

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

[*] GitLab Runner 部署乐成得 0.5 分;

[*] GitLab Runner 注册乐成得 0.5 分;
[*] GitLab Runner 长期化配置乐成得 1 分。

【标题 3】配置GitLab

将 Kubernetes 集群添加到 demo-2048 项目中,并定名为 kubernetes-agent,项目定名空间选择 gitlab-ci。
完成后提交 master 节点的用户名、暗码和 IP 地址到答题框。(必要用到的软件包路径CICD-Runner.tar.gz)

[*] GitLab Agent 安装乐成得 1 分;

[*] Kubernetes 毗连乐成得 0.5 分。

【标题 4】构建CICD

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

[*] 项目变异乐成得 0.5 分;

[*] 镜像构建乐成得 1 分;

[*] 服务发布乐成得 1 分;

[*] 服务能正常访问得 1 分。

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

【适用平台】私有云
【标题 1】Pod 管理--创建 Pod

在 default 定名空间下利用nginx:latest 镜像创建一个QoS 类为 Guaranteed 的 Pod,名称为 qos-demo。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] Pod 创建乐成得 0.2 分;

[*] Pod QoS 范例为Guaranteed 得 0.3 分。

【标题 2】安全管理--配置 Pod 安全上下文 分]

利用 busybox 镜像启动一个名为 context-demo 的Pod,为该 Pod 配置安全上下文,要求容器内以用户 1000 和用户组 3000 来运行所有进程,并在启动时执行“sleep 1h”下令。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。
1.Pod 安全上下战书配置准确得 0.5 分。

【标题 3】CRD 管理--创建自定义资源范例 分]

在 Kubernetes 集群中自定义一种资源范例 Student,API 为 stable.example.com/v1,单数形式为 student,复数形式为 students,简写为 stu,作用域为定名空间级,然后在 default 定名空间下创建一个名为 exam 的 Student 对象。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] 资源范例Student 定义乐成的 0.3 分;

[*] exam 创建乐成得 0.2 分。

【标题 4】剖析管理--添加主机别名到 Pod 分]

利用 nginx 镜像在 default 定名空间下创建一个名为 nginx 的 Pod,并在 Pod 的/etc/hosts中添加 IP 地址 127.0.0.1 与 chinaskills 的剖析。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。
1.自定义剖析配置准确得 0.5 分。

【标题 5】HPA 管理--创建 HPA 规则 分]

默认情况下 HPA 是无法调整伸缩敏捷度的,但不同的业务场景对伸缩敏捷度的要求不一样。要求在 default 定名空间下利用 nginx 镜像创建一个名为 web 的 deployment,自定义 HPA 的伸缩敏捷度,为该deployment 创建一个名为web 的HPA,扩容时立即新增当前 9 倍数量的副本数,时间窗口为 5s,伸缩范围为 1--1000。例如一开始只有 1 个 Pod,当 CPU 利用率超过 80%时,Pod 数量变革趋势为:1 → 10 → 100 → 1000。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] HPA 创建乐成得 0.2 分;

[*] HPA 伸缩计谋配置准确得 0.8 分。

【标题 6】节点亲和性管理--创建硬限制规则的 Pod

在 default 定名空间下利用 nginx 镜像运行一个 Pod, 名称为 nginx, 要求利用 requiredDuringSchedulingIgnoredDuringExecution 计谋将 Pod 调度到具有“disktype=ssd”标签的节点。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。
1.Pod 调度计谋配置准确得 0.5 分。

【标题 7】网络计谋管理--创建 Pod 网络计谋

创建一个网络计谋 network-exam,要求只有 internal 定名空间下的 Pod 可以通过 TCP协议的 8080 端口访问到 mysql 定名空间下的Pod。
完成后提交 master 节点的 IP、用户名和暗码到答题框。

[*] 网络计谋创建乐成得 0.2 分;

[*] 规则配置准确得 0.3 分。

【标题 8】驱逐机制管理--配置节点压力驱逐 分]

设置kubelet 数据存储在/apps/data/kubelet 目次下,并设置当kubelet 的存储空间不足5%,大概当容器运行时文件体系可用存储空间不足 5%时开始驱逐 Pod。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。
1.节点压力驱逐配置准确得 0.5 分。

【标题 9】流量管理--创建 Ingress Gateway 分]

利用提供的软件包 ServiceMesh.tar.gz 将Bookinfo 应用部署到 default 定名空间下,利用 Istio Gateway 可以实现应用程序从外部访问, 请为 Bookinfo 应用创建一个名为 bookinfo-gateway 的网关,指定所有 HTTP 流量通过 80 端口流入网格,然后将网关绑定到假造服务 bookinfo 上。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] Bookinfo 应用部署乐成得 0.2 分;

[*] Bookinfo 能通过网关访问得 0.3 分。

【标题 10】服务网格--创建基于用户身份的路由

创建一个名为 reviews 路由,要求来自名为 Jason 的用户的所有流量将被路由到服务reviews:v2。
完成后提交 master 节点的用户名、暗码和 IP 到答题框。

[*] 路由创建乐成得 0.2 分;

[*] 用户限制准确得 0.3 分。

【标题 11】服务网格--创建请求路由 分]

在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 基于假造机的运维 分]

【适用平台】私有云
【标题 1】VM 管理--创建 VM 分]

利用镜像 fedora-virt:v1.0 在 default 定名空间下创建一台 vm,名称为 vm-fedora,内存为 1G。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] VM 创建乐成得 0.3 分;

[*] VM 配置准确得 0.2 分。

【标题 2】存储与卷--创建 emptyDisk 卷 分]

利用镜像 fedora-virt:v1.0 在 default 定名空间下创建一台 vmi,名称为 vmi-fedora,并利用 emptyDisk 卷为 vmi 挂载一块 2G 的磁盘。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] VMI 创建乐成得 0.4 分;

[*] 卷挂载乐成得 0.6 分。

【标题 3】KubeVirt 运维--创建 VMI 分]

将提供的镜像 exam.qcow2 转换为 docker 镜像 exam:v1.0,然后利用镜像 exam:v1.0 镜像在 default 定名空间下创建一台 vmi,名称为 exam,将假造机的 80 端口以 NodePort 的方式对外暴露为 30082,并利用数据源在启动时将 VM 的主机名初始化为exam。
完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。

[*] qcow2 镜像转化乐成得 0.3 分;

[*] VMI 创建乐成得 0.3 分;

【标题 4】KubeVirt 运维--启用快照 分]

KubeVirt 支持对 VM 进行快照,请启用KubeVirt 快照管理功能:完成后提交 master 节点的 IP 地址、用户名和暗码到答题框。
1.快照功能启用乐成得 1 分。

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

【适用平台】私有云
【标题 1】Python 运维开发:基于 Kubernetes Restful API 实现 Deployment 创建 分]

在提供的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

[*] 执行api_deployment_manager.py 脚本,乐成创建 deployment 资源,计 1 分;

[*] 查抄创建的 deployment 资源,配置信息无误计 1 分。

【标题 2】Python 运维开发:基于 Kubernetes Python SDK 实现 Job 创建 分]

在前面已建好的 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

[*] 执行 sdk_job_manager.py 脚本,乐成创建job 资源,计 0.5 分;

[*] 查询 job 资源,配置信息无误,计 0.5 分。

【标题 3】Python 运维开发:Pod 资源的 Restful APIs HTTP 服务封装 分]

编写 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}的 Pod;Response 的 Body 以 json 格式输出。
POST /pod/{yamlfilename} 创建 yaml 文件名称为{yamlfilename}的 Pod;Response 的
Body 以 json 格式。
编码完成后,“手工下载”文件服务器主目次所有*.yaml 文件到 root 目次下,“手动执行”所编写pod_server.py 程序,提交答案进行检测。

[*] HTTP 服务乐成启动,计 1 分;
[*] 发起指定参数的GET 查询 Pod 请求,乐成查询指定名称的 pod 服务,计 1 分;

【标题 4】Python 运维开发:Service 资源 Restful APIs HTTP 服务封装 分]

编写 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}的 Service;Response 的 Body 以 json 格式输出。
POST /services/{yamlfilename} 创建yaml 文件名称为{yamlfilename}的 Service;
Response 的Body 以 json 格式,(手工将文件服务器主目次所有*.yaml 文件下载到 root 目次下)。
DELETE /services/{name};删除指定名称的 Service;Response 的 Body 以 json 格式。
编码完成后,本身手动执行提供 Web HTTP 服务的 service_server.py 程序,提交答案进行检测。

[*] HTTP 服务乐成启动,计 1 分;

[*] 发起指定参数的 POST 创建 service 请求,乐成创建 service 资源,计 1 分;

[*] 发起指定参数的GET 查询 service 请求,乐成查询指定名称的 Service,计 1 分;

[*] 发起指定参数的DELETE 删除 service 请求,乐成删除指定名称的 Service,计 1 分。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 2022 年全国职业院校技能大赛高职组云计算赛项试卷(容器云)