资源简介 2021年职业院校技能大赛“云计算”赛项 赛卷2021年全国职业院校技能大赛高职组云计算赛项试卷【赛程名称】云计算赛项第一场-私有云【赛程时间】2021-06-08 09:00:00至 2021-06-08 16:00:00某企业拟使用 OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。系统架构如图 1所示,IP地址规划如表 1所示。图 1系统架构图表 1 IP地址规划设备名称 主机名 接口 IP地址 说明eth0 172.129.x.0/24 Vlan x云服务器1 Controllereth1 自定义 自行创建eth0 172.129.x.0/24 Vlan x云服务器2 Computeeth1 自定义 自行创建云服务器3...自定义 eth0 172.129.x.0/24 用于实操题云服务器 n2021年职业院校技能大赛“云计算”赛项 赛卷PC-1 本地连接 172.24.16.0/24 PC使用说明:1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题;2.表中的 x为工位号;在进行 OpenStack搭建时的第二块网卡地址根据题意自行创建;3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息时,请确认自己的 IP地址,用户名和密码。【任务 1】基础运维任务[5分]【适用平台】私有云【题目 1】基础环境配置[1.5分]使用提供的用户名密码,登录提供的 OpenStack私有云平台,自行使用 CentOS7.5镜像创建两台云主机,控制节点 flavor 使用 4v_12G_100G 的配置,计算节点 flavor 使用4v_8G_100G_50G的配置。第一张网卡使用提供的网络,第二张网卡使用的网络自行创建(网段为 10.10.X.0/24,X为工位号)。创建完云主机后确保网络正常通信,然后按以下要求配置服务器:(1)设置控制节点主机名为 controller,设置计算节点主机名为 compute;(2)修改 hosts文件将 IP地址映射为主机名;完成后提交控制节点的用户名、密码和 IP地址到答题框。1.使用 hostnamectl 命令查看主机名为 controller 计 0.5 分2.查看 hosts 文件中有正确的主机名和 IP 映射计 0.5 分3.控制节点正确使用两块网卡计 0.5 分【题目 2】Yum源配置[1分]使用提供的 http服务地址,在 http服务下,存在 centos7.5和 iaas的网络 yum 源,使用该 http源作为安装 iaas平台的网络源。分别设置 controller节点和 compute节点的 yum 源文件 http.repo。完成后提交控制节点的用户名、密码和 IP地址到答题框。2021年职业院校技能大赛“云计算”赛项 赛卷1.查看/etc/yum.repos.d/http.repo文件,有正确的 baseurl路径,计 1分【题目 3】时间同步配置[1.5分]在 controller节点上部署 chrony服务器,允许其他节点同步时间,启动服务并设置为开机启动;在 compute 节点上指定 controller节点为上游 NTP 服务器,重启服务并设为开机启动。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.查看/etc/chrony.conf 配置文件,有正确的配置文件计 1 分2.查看时间同步服务的状态,正常计 0.5 分【题目 4】计算节点分区[1分]在 compute 节点上利用空白分区划分 2 个 20G分区。完成后提交计算节点的用户名、密码和 IP地址到答题框。1.使用 lsblk 命令查看分区,有两个 20G 分区计 1 分,每个 0.5 分【任务 2】OpenStack搭建任务[10分]【适用平台】私有云【题目 1】基础安装[1分]任务需要完成 openstack平台的安装搭建及运维任务(无安装脚本),表 2提供了在安装过程中需要使用相关服务参数。表 2 云平台配置信息服务名称 变量 参数/密码root 000000Keystone 000000Mysql Glance 000000Nova 000000Neutron 0000002021年职业院校技能大赛“云计算”赛项 赛卷Heat 000000Zun 000000DOMAIN_NAME demoAdmin 000000Rabbit 000000Glance 000000KeystoneNova 000000Neutron 000000Heat 000000Zun 000000Metadata 000000NeutronExternal Network eth1(第二块网卡名)使用提供的脚本框架 iaas-pre-host.sh 和 openrc.sh 环境变量文件,填充脚本(只需填充中文注释下的内容),在 controller和 compute 节点上分别安装 openstack平台的基础组件并完成相关配置。(脚本框架 install_openstack.tar.gz软件包在 http服务下)安装完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 2】数据库与基础服务安装[1分]使用提供的脚本框架 iaas-install-mysql.sh,填充脚本(只需填充中文注释下的内容),在 controller节点上安装 mariadb、mencached、rabbitmq 等服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 3】Keystone服务安装[1分]使用提供的脚本框架 iaas-install-keystone.sh,填充脚本(只需填充中文注释下的内容),在 controller节点上安装 keystone 服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 4】Glance安装[1分]使用提供的脚本框架 iaas-install-glance.sh,填充脚本(只需填充中文注释下的内容),在 controller节点上安装 glance服务并完成相关配置。安装完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 5】Nova 安装[1分]使用提供的脚本框架 iaas-install-nova-controller.sh 和 iaas-install-nova-compute.sh,填充脚本(只需填充中文注释下的内容),在 controller和 compute 节点上安装 nova服务并完成配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 6】Neutron安装[1分]使用提供的脚本框架 iaas-install-neutron-controller.sh和 iaas-install-neutron-compute.sh,填充脚本(只需填充中文注释下的内容),在 controller和 compute节点上安装 neutron服务并完成配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 7】Doshboard安装[1分]使用提供的脚本框架 iaas-install-dashboard.sh,填充脚本(只需填充中文注释下的内容),在 controller节点上安装 dashboard服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 8】Cinder安装[1分]使用提供的脚本框架 iaas-install-cinder-controller.sh 和 iaas-install-cinder-compute.sh,填充脚本(只需填充中文注释下的内容),在 controller和 compute 节点上安装 cinder服务并完成配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 9】Swift安装[1分]使用提供的脚本框架 iaas-install-swift-controller.sh 和 iaas-install-swift-compute.sh,填充脚本(只需填充中文注释下的内容),在 controller和 compute节点上安装 swift服务并完成配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【题目 10】Heat安装[1分]使用提供的脚本框架 iaas-install-heat.sh,填充脚本(只需填充中文注释下的内容),在controller节点上安装 heat服务并完成相关配置。完成后提交控制节点的用户名、密码和 IP地址到答题框。1.根据提供的框架补全云计算脚本并执行,查看到正确安装了基础包及服务计 1 分【任务 3】OpenStack API运维任务[10分]【适用平台】私有云【题目 1】使用 python调用 api实现创建 user[2分]在自行搭建的 OpenStack私有云平台或提供的 all-in-one 平台上,根据 http 服务中提供的 Python-api.tar.gz 软件包,完成 python3.6 软件和依赖库的安装。在 controller 节点的/root2021年职业院校技能大赛“云计算”赛项 赛卷目录下创建 create_user.py文件,编写 python代码对接 OpenStack API,完成用户的创建。要求在 OpenStack私有云平台中创建用户 chinaskill,描述为“API create user!”。执行完代码要求输出“用户创建成功”。根据上述要求编写 python代码,完成后,将 controller节点的IP地址,用户名和密码提交。(考试系统会连接到你的 controller节点,去执行 python脚本,请准备好运行的环境,以便考试系统访问)1.检查 python 版本是否为 3.6.8 计 0.3 分2.检查 pip 版本计 0.3 分3.执行脚本有正确的返回计 0.2 分4.查看用户是否被正确创建计 0.2 分5.查看用户是否有正确的描述计 0.2 分6.查看是否有正确的获取 token 的方式、调用 user 接口、使用 requests.post、requests.get 等方法计 0.8 分【题目 2】使用 python调用 api实现创建 flavor[2分]在自行搭建的OpenStack私有云平台或提供的 all-in-one平台上。在 controller节点的/root目录下创建 create_flavor.py 文件,在该文件中编写 python 代码对接 openstack api,要求在openstack 私有云平台上创建一个云主机类型,名字为 pvm_flavor、vcpu 为 1 个、内存为1024m、硬盘为 20G、ID为 9999。执行完代码要求输出“云主机类型创建成功”。根据上述要求编写 python代码,完成后,将 controller节点的 IP地址,用户名和密码提交。(考试系统会连接到你的 controller节点,去执行 python脚本,请准备好运行的环境,以便考试系统访问)1.执行脚本有正确的返回计 0.2 分2.查看 flavor 是否被正确创建,即 flavor 的详细信息是否正确计 0.2 分3.查看是否有调用了 flavor 的接口计 0.3 分4.查看是否有正确的获取 token 的方式、调用 user 接口、使用 requests.post、requests.get 等方法计 1.3 分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 3】使用 python调用 api实现创建网络[2分]在自行搭建的OpenStack私有云平台或提供的 all-in-one平台上。在 controller节点的/root目录下创建 create_network.py文件,编写 python代码对接 OpenStack API,完成网络的创建。要求:(1)为平台创建内部网络 pvm_int,子网名称为 pvm_intsubnet;(2)设置云主机网络子网 IP 网段为 192.168.x.0/24(其中 x是考位号),网关为 192.168.x.1(如果存在同名内网,代码中需先进行删除操作)。执行完代码要求输出“网络创建成功”。根据上述要求编写 python 代码,完成后,将 controller节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller节点,去执行 python脚本,请准备好运行的环境,以便考试系统访问)1.执行脚本有正确的返回计 0.3 分2.查看网络是否被正确创建,即网络的详细信息是否正确计 0.3 分3.查看是否有调用了 net 的接口计 0.3 分4.查看是否有正确的获取 token 的方式、调用 user 接口、使用 requests.post、requests.get 等方法计 1.1 分【题目 4】使用 python调用 api实现创建镜像[2分]在自行搭建的OpenStack私有云平台或提供的 all-in-one平台上。在 controller节点的/root目录下创建 create_image.py文件,编写 python 代码对接 OpenStack API,完成镜像的上传。要求在 OpenStack私有云平台中上传镜像 cirros-0.3.4-x86_64-disk.img,名字为 pvm_image,disk_format 为 qcow2,container_format 为 bare。执行完代码要求输出“镜像创建成功,id为:xxxxxx”。根据上述要求编写 python代码,完成后,将 controller节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller节点,去执行 python脚本,请准备好运行的环境,以便考试系统访问)1.执行脚本有正确的返回计 0.2 分2.查看镜像是否被正确创建,即镜像的详细信息是否正确计 0.2 分3.查看是否有调用了 image 的接口计 0.3 分4.查看是否有正确的获取 token 的方式、调用 user 接口、使用 requests.post、requests.get 等方法计 1.3 分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 5】使用 python调用 api实现创建云主机[2分]在自行搭建的OpenStack私有云平台或提供的 all-in-one平台上。在 controller节点的/root目录下创建 create_vm.py文件,编写 python代码对接 OpenStack API,完成云主机的创建。要求使用 pvm_image、pvm_flavor、pvm_intsubnet创建 1 台云主机 pvm1(如果存在同名虚拟主机,代码中需先进行删除操作)。执行完代码要求输出“创建云主机成功”。根据上述要求编写 python代码,完成后,将 controller节点的 IP 地址,用户名和密码提交。(考试系统会连接到你的 controller节点,去执行 python脚本,请准备好运行的环境,以便考试系统访问)1.执行脚本有正确的返回计 0.2 分2.查看云主机是否被正确创建,即云主机的详细信息是否正确计 0.2 分3.查看是否有调用了 servers 的接口计 0.2 分4.查看是否有调用了 images 的接口计 0.2 分5.查看是否有调用了 flavor 的接口计 0.2 分4.查看是否有正确的获取 token 的方式、调用 user 接口、使用 requests.post、requests.get 等方法计 1 分【任务 4】OpenStack运维开发任务[10分]【适用平台】私有云【题目 1】Heat模板管理[0.5分]在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,在/root目录下编写 Heat 模板 create_net.yaml,创建名为 Heat-Network 网络,选择不共享;创建子网名为Heat-Subnet,子网网段设置为10.20.2.0/24,开启DHCP服务,地址池为10.20.2.20-10.20.2.100。完成后提交控制节点的用户名、密码和 IP 地址到答题框。(在提交信息前请准备好 yaml模板执行的环境)1.创建 heat 模板,查看是否正确创建计 0.2 分2.查看 heat 模板文件,有正确的网络,子网关键字计 0.3 分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 2】Heat模板管理[0.5分]在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,在/root目录下编写 Heat模板 create_user.yaml,创建名为 heat-user的用户,属于 admin项目,并赋予 heat-user用户 admin的权限,配置用户密码为 123456。完成后提交控制节点的用户名、密码和 IP地址到答题框。(在提交信息前请准备好 yaml模板执行的环境)1.创建 heat 模板,查看是否正确创建计 0.2 分2.查看 heat 模板文件,有正确的用户、role 和 project 关键字计 0.3 分【题目 3】OpenStack参数调优[1分]OpenStack 各服务内部通信都是通过 RPC 来交互,各 agent都需要去连接 RabbitMQ;随着各服务 agent增多,MQ的连接数会随之增多,最终可能会到达上限,成为瓶颈。在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,分别通过用户级别、系统级别、配置文件来设置 RabbitMQ 服务的最大连接数为 10240,配置完成后提交修改节点的用户名、密码和 IP地址到答题框。1.查看/etc/security/limits.conf 文件,有正确的配置连接数为 10240计 0.2分2.查看/etc/sysctl.conf,有 fs.file-max=10240计 0.2分3.查看/usr/lib/systemd/system/rabbitmq-server.service文件,有 LimitNOFILE=10240计 0.3分4.查看 rabbitmq状态,查到 total_limit,10140计 0.3分【题目 4】KVM 调优[1分]在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,修改相关配置文件,启用-device virtio-net-pci in kvm,配置完成后提交控制节点的用户名、密码和 IP地址到答题框。1.查看/etc/nova/nova.conf配置文件,有 libvirt_use_virtio_for_bridges=true 计 1分2021年职业院校技能大赛“云计算”赛项 赛卷【题目 5】修改 glance存储后端[1分]使用赛项提供的 OpenStack私有云平台,创建一台云主机(镜像使用 CentOS7.5,flavor使用带临时磁盘 50G的),配置该主机为 nfs的 server端,将该云主机中的/mnt/test目录进行共享(目录不存在可自行创建)。然后配置 controller节点为 nfs的 client端,要求将/mnt/test目录作为 glance后端存储的挂载目录。配置完成后提交 controller控制节点的用户名、密码和 IP地址到答题框。1.使用 mount 命令查看,有/mnt/test on /var/lib/glance/images type nfs4计 0.5分2.查看/var/lib/glance/权限,用户和用户组是 glance 计 0.5分【题目 6】redis主从[0.5分]使用赛项提供的 OpenStack私有云平台,申请两台 CentOS7.5系统的云主机,使用提供的 http源,在两个节点安装 redis服务并启动,配置 redis的访问需要密码,密码设置为 123456。然后将这两个 redis节点配置为 redis的主从架构。配置完成后提交 redis 主节点的用户名、密码和 IP地址到答题框。1.查看 redis 的 info 信息,有 connected_slaves:1计 0.3分2.查看/etc/redis.conf,有关闭保护模式计 0.2分【题目 7】数据库高可用集群与负载均衡[1分]使用赛项提供的 OpenStack私有云平台,申请三台 CentOS7.5系统的云主机,分别命令为 node1、node2、node3,(使用提供的 mariadb-repo.tar.gz软件包在 http 服务下),在这三个节点上安装数据库服务,数据库密码设置为 123456。将这三个节点配置为数据库高可用集群即MariaDB_Galera_Cluster。配置完高可用服务后,安装 haproxy负载均衡服务。配置node1节点为负载均衡的窗口,配置负载均衡为轮询算法;HA服务监听的端口为 node1节点的 3307端口;配置访问三个节点的权重依次为 1,2,4。配置完成后提交 node1节点的用户名、密码和 IP地址到答题框。1.查看数据的状态 mysql -uroot -p123456 -e "show status like 'wsrep_ready';",返回 ON计 0.2分2.mysql -uroot -p123456 -e "show status like 'wsrep_cluster_size';"查看集群数,返回 3计 0.3分2021年职业院校技能大赛“云计算”赛项 赛卷3.查看端口有 3307计 0.2分4.查看 ha的配置文件,权重配置正确计 0.3分【题目 8】私有云镜像排错[1分]使用赛项提供的 error1 镜像启动云主机,flavor使用 4vcpu/12G 内存/100G硬盘。启动后存在错误的私有云平台,错误现象为查看不到 image 列表,试根据错误信息排查云平台错误,使云平台可以查询到 image 信息。完成后提交云主机节点的用户名、密码和 IP 地址到答题框。1.镜像被错误删除,数据库中没有该镜像的信息,不限制恢复 image 镜像的方法,最后使用openstack image list 能查询到镜像 ID 计 1 分【题目 9】私有云镜像排错[1分]使用赛项提供的 error2 镜像启动云主机,flavor使用 4vcpu/12G 内存/100G硬盘。启动后存在错误的私有云平台,错误现象为所有的私有云命令都无法执行,试根据错误信息排查云平台错误,使命令变得可用。完成后提交云主机节点的用户名、密码和 IP地址到答题框。1.admin 用户的 admin 权限被错误删除,不限制恢复 admin 用户权限的方法,最后 admin 用户的权限恢复计 1 分【题目 10】Ansible部署服务[0.5分]使用赛项提供的 OpenStack 私有云平台,创建 2 台系统为 centos7.5的云主机,其中一台作为 ansible 的母机并命名为 ansible,另外一台云主机命名为 node1,通过 http 服务中的ansible.tar.gz 软件包在 ansible节点安装 ansible服务;并用这台母机,编写 ansible脚本(在/root 目录下创建 ansible_ftp 目录作为 ansible 工作目录,部署的入口文件命名为install_ftp.yaml)。install_ftp.yaml文件中需要完成的内容为(1)yaml中被执行节点为 node1,执行者为 root;(2)使用 copy模块将 ansible节点的 local.repo传到 node节点;(local.repo用于配置2021年职业院校技能大赛“云计算”赛项 赛卷node节点的 yum 源,可自行创建)(3)使用 yum 模块安装 ftp服务;(4)使用 service模块启动 ftp服务。完成后提交 ansible节点的用户名、密码和 IP 地址到答题框。(考试系统会连接到 ansible节点,执行 ansible脚本,准备好环境,以便考试系统访问)1.不使用 role 的方式,直接在 install_ftp.yaml 中编写2.执行 yaml 文件,没有报错计 0.1 分3.查看 ftp 服务状态为正确计 0.1 分4.查看 yaml 文件,是否用了 copy、yum、service模块计 0.3分【题目 11】Ansible部署 zabbix服务[2分]使用赛项提供的 OpenStack 私有云平台,创建 2 台系统为 centos7.5的云主机,其中一台作为 Ansible 的母机并命名为 ansible,另一台云主机命名为 node,通过 http 服务中的ansible.tar.gz软件包在 ansible节点安装 Ansible服务;并用这台母机,补全 Ansible脚本(在HTTP 中下载 install_zabbix.tar.gz 并解压到 /root 目录下),补全 Ansible 脚本使得执行install_zabbix.yaml可以在 node节点上完成 zabbix服务的安装。完成后提交 ansible节点的用户名、密码和 IP 地址到答题框。(考试系统会连接到 ansible节点,执行 ansible脚本,准备好环境,以便考试系统访问)1.执行 yaml 文件,没有报错计 0.2 分2.查看端口号,有 10051 端口计 0.4 分3.查看端口号,有 3306 端口计 0.3 分4.查看 yaml 模板,有正确的补齐计 0.7 分5.查看 zabbix 首页,进入安装页面计 0.4 分2021年全国职业院校技能大赛“云计算”赛项2021年全国职业院校技能大赛高职组云计算赛项试卷【赛程名称】云计算赛项第三场-公有云【赛程时间】2021-06-10 09:00:00至 2021-06-10 16:00:00【任务 1】基础设施构建[10分]【适用平台】华为云【题目 1】私有网络管理[0.5分]在公有云中完成虚拟私有云的创建,具体要求如下:(1)在上海一区域进行创建操作;(2)创建一个名为 intnetX的虚拟私有云:IP地址为 172.16.0.0/16;(3)创建子网名称为 intnetX-server:IP地址为 172.16.1.0/24;(4)创建一个名为 net-data的虚拟私有云:网段为 192.168.0.0/16(5)创建子网名称为 net-mysql:IP地址为 192.168.1.0/24;完成创建后,提交你当前的 AK(SecretId)、SK(SecretKey)和 intnetX网络的 ID到答题框。1.查看 vpc名字为 intnetX正确计 0.1分2.查看子网名为 intnetX-server正确计 0.2分3.查看子网网段正确计 0.2分【题目 2】对等连接[0.5分]创建对等连接 intnetX-net,配置 intnetX虚拟私有云和 net-data虚拟机私有云连通。操作完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和对等连接的 ID到答题框。1.查看对等连接是否运行及网络配置是否正确计 0.5分2021年全国职业院校技能大赛“云计算”赛项【题目 3】云实例管理[0.5分]登录华为云平台,创建两台云实例,具体要求如下:(1)计费模式:按需计费;(2)地域:上海一;(3)CPU架构:鲲鹏计算;(4)规格:kc1.xlarge.2;(5)镜像:CentOS 7.5 64位;(6)系统盘:高 IO 50G硬盘;(7)虚拟网络:intnetX-server;(8)实例名称:ChinaSkill-node-1、ChinaSkill-node-2;(9)登录方式:使用密码登录,密码自定义。创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和 ChinaSkill-node-1 的实例 ID到答题框。1.查看云实例使用的类型是否正确计 0.2分2.查看云实例使用的云硬盘是否正确计 0.3分【题目 4】云数据库管理[0.5分]创建一台云数据库,具体要求如下:(1)计费模式:按需计费;(2)地域:上海一;(3)数据库版本:MySQL 5.7;(4)实例类型:主备;(5)实例规格:鲲鹏 2核 8GB/40GB;(6)虚拟私有云:net-mysql;(7)字符集:UTF8;(8)端口:3306;2021年全国职业院校技能大赛“云计算”赛项(9)数据库密码:Root123456;(10)数据库名称:chinaskill-mysql;创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和云数据库的实例 ID到答题框。1.查看数据库类型创建是否正确,计 0.5分【题目 5】只读数据库[0.5分]给云数据库 chinaskill-mysql创建只读数据库 chinaskill-read 实例。使用 2vCPU、4GB内存规格。并给 chinaskill-mysql申请读写分离地址。完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和只读数据库实例 ID到答题框。1.查看数据库的类型,是否为只读,正确计 0.5分【题目 6】Redis管理[0.5分]在上海一区创建一个 Redis缓存实例,具体要求如下:(1)版本号:5.0;(2)实例类型:主备;(3)副本数:2;(4)实例规格:4G,x86 架构;(5)子网:net-mysql;(6)密码:Root123456;创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和实例 ID到答题框。1.是否购买了正确配置的 redis,计 0.5分【题目 7】安装 kafka和 zookeeper[0.5分]在 chinaskill-node-2云服务器上,使用提供的软件包安装 kafka和 zookeeper服务(软件包在 http 服务中的 gpmall-cloud.tar.gz 下)。安装完成后运行服务。完成后提交连接2021年全国职业院校技能大赛“云计算”赛项chinaskill-node-2节点的用户名、密码和公网 IP地址到答题框。1.查看 kafka和 zookeeper是否被正常安装计 0.5分【题目 8】应用商城迁移上云[0.5分]在 chinaskill-node-1 云服务上部署 gpmall,mysql 使用云数据库分写分离地址,配置公有云 Redis访问路径,(gpmall 应用商城的软件包 gpmall-cloud.tar.gz 在 http 服务下)完成商城的上云操作。并设置 gpmall所需 jar软件包开启自动启动。完成后提交 chinaskill-node-1的用户名、密码和公网 IP到答题框。1.查看前端页面是否有正常返回计 0.1分2.查看后端 jar包是否正常运行计 0.4分【题目 9】云备份[0.5分]创建一个云服务器备份存储库名为 server_backup,容量为 100G。将 ChinaSkill-node-1云服务器制作镜像文件 chinaskill-image。完成后,将你当前的 AK(SecretId)、SK(SecretKey)和存储库 ID到答题框。1.查看云服务器备份是否正确计 0.5分【题目 10】网络 ACL[1分]创建一个网络 ACL,具体要求如下:(1)名称:intnetX-acl;(2)允许策略:只放行源地址为 172.16.1.0/24访问 3306端口;(3)允许策略:只放行源地址为 172.16.1.0/24使用 ping命令访问;(4)关联子网:关联网络 ACL至 net-mysql子网中;创建完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和网络 ACL ID 到答题框。1.查看 ACL是否被创建计 0.3分2021年全国职业院校技能大赛“云计算”赛项2.查看安全组 tcp策略是否按要求创建计 0.3分3.查看安全组 icmp策略是否按要求创建计 0.4分【题目 11】WordPress上云[1.5分]自 行 购 买 一 台 鲲 鹏 云 服 务 器 , 使 用 http 服 务 中 提 供 的 软 件 包wordpress-5.0.2-zh_CN.tar.gz,部署 LNMP+WordPress 服务(LNMP 服务自行安装)。使用云数据库 chinaskill-mysql读写分离地址。完成WordPress系统上云后,将 ChinaSkill-node-1节点的用户名、密码和公网 IP到答题框。1.查看 wordpress首页是否有正确返回计 0.5分2.查看 php是否被正确安装计 0.5分3.查看是否有 9000端口开放计 0.5分【题目 12】应用迁移 ARM案例[3分]自行购买鲲鹏云服务器 1台,使用提供的源码包 nginx-1.18.0.tar.gz(软件包在 http服务下)完成 nginx 服务的编译安装,软件包解压到/root目录下。要求在 nginx-1.18.0目录下编写脚本 nginx_install.sh 文件,执行脚本文件完成 nginx 服务的编译安装。完成后提交chinaskill-node-1节点的用户名、密码和公网 IP地址到答题框。1.使用编译的方法安装 nginx并可以使用,计 3分,不限制编译时的参数,能正确编译安装nginx服务并使用即可【任务 2】系统管理与维护[10分]【适用平台】华为云【题目 1】软件包管理[0.5分]在 chinaskill-node-1云服务器上,通过华为云镜像站,寻找 10.1.20版本的 mariadb数据2021年全国职业院校技能大赛“云计算”赛项库,并安装启动。完成后提交 chinaskill-node-1节点的用户名、密码和公网 IP地址到答题框。1.查看数据库版本为 10.1.20版本计 0.5分,该版本在私有云安装包内可以找到【题目 2】云实例管理[0.5分]使用所创建的私有镜像 chinaskill-image 购买云服务器 ChinaSkill-node-3,配置与ChinaSkill-node-1云服务器相同。完成后提交 chinaskill-node-3的用户名、密码和公网 IP到答题框。1.因 node3与 node1相同,而 node1做了商城的自启动,所以查看 node3时,需要查看到商城系统是正常的计 0.5分【题目 3】负载均衡器[0.5分]创建一个负载均衡器 chinaskill-elb,将 ChinaSkill-node-1和 ChinaSkill-node-3 加入负载均衡的后端。设置一个可用的公网服务 IP,服务端口为 80。配置监听器,监听 80端口。对浮动公共 IP进行Web访问测试。完成后,提交你当前的 AK(SecretId)、SK(SecretKey)和负载均衡器的 ID到答题框。1.查看负载均衡器参数是否正确计 0.5分【题目 4】弹性伸缩管理[0.5分]新建一个启动配置,具体要求如下:(1)启动配置名称:template-exam;(2)计费模式:按量计费;(3)地域:上海一;(4)CPU架构:鲲鹏计算;(5)规格:kc1.xlarge.2;(6)镜像:chinaskill-image;2021年全国职业院校技能大赛“云计算”赛项(7)系统盘:高 IO 50G硬盘;(8)登录方式:使用密码登录,密码自定义。创建一个伸缩组,具体要求如下:(1)名称:as-exam;(2)最小伸缩数:1;起始实例数:1;最大伸缩数:5;(3)启动配置:template-exam;(4)使用负载均衡:chinaskill-elb;(5)移出策略:移出最旧的实例。为伸缩组 as-exam新建告警触发策略,具体要求如下:(1)如果实例的内存利用率在 5分钟内的最大值小于 40%,且连续发生 3次。则实例数减少 1台。冷却 60秒;(2)如果实例的内存利用率在 5分钟内的最大值大于 80%,且连续发生 3次。则实例数增加 1台。冷却 60秒;(3)如果实例的 CPU利用率在 5分钟内的最大值小于 40%,且连续发生 3次。则实例数减少 1台。冷却 60秒;(4)如果实例的 CPU利用率在 5分钟内的平均值大于等于 80%,且连续发生 3次。则实例数增加 1台。冷却 60秒。创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和伸缩组的实例 ID到答题框。1. 查 看 弹 性 伸 缩 参 数 是 否 为 as.instance.1.5 , as.policy.ALARM.ADD.1.60 ,as.policy.ALARM.REMOVE.1.6 , as.policy.ALARM.ADD.1.60 ,as.policy.ALARM.REMOVE.1.60计 0.5分【题目 5】云容器引擎[0.5分]创建一个鲲鹏架构集群,具体要求如下:(1)集群名称:kcloud;(2)集群版本:v1.15.11;(3)地域:上海一;2021年全国职业院校技能大赛“云计算”赛项(4)集群管理规模:50节点;(5)控制节点数:3;(6)节点使用子网:intnetX-server;(7)Pod实例上限:64;(8)容器网段:10.10.0.0/16。节点配置信息要求如下:(1)节点名称:kcloud-server;(2)节点规格:kc1.xlarge.2(3)节点:EulerOS 2.8创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和集群的 ID到答题框。1,查看云容器是否被正确创建 cce.0.kcloud.v1.15.11-r1.10.10.0.0/16计 0.5分【题目 6】云容器管理[0.5分]使用插件管理在 kcloud 容器集群中安装 dashboard 可视化监控界面。完成后,提交dashboard访问地址到答题框。1.查看 dashboard首页,有 Kubernetes Dashboard返回计 0.5分【题目 7】云硬盘存储卷[1分]购买云硬盘存储卷,具体配置如下:(1)名称为:ckloud-disk;(2)集群:kcloud;(3)容量:30G;(4)类型:高 I/O;完成后,创建完成后提交你当前的 AK(SecretId)、SK(SecretKey)和云硬盘的 ID到答题框。1.查看云硬盘存储卷 evs.SAS.30 是否正确计 1分2021年全国职业院校技能大赛“云计算”赛项【题目 8】使用 kubectl操作集群[1分]在 kcloud 集群中安装 kubectl命令,使用 kubectl命令管理 kcloud 集群。完成后提交连接 kcloud集群节点的用户名、密码和公网 IP地址到答题框。1,使用 kubectl命令查询,看命令是否可用,可用计 1分【题目 9】安装 helm[1分]使用提供的 helm软件包(软件包为 helm-v3.3.0-linux-arm64.tar.gz在 http服务下),在kcloud 集群中安装 helm 服务。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP地址到答题框。1.查看 helm是否被正确安装,查看 helm版本是否为 v3.3.0计 1分【题目 10】工作负载[1分]使用容器镜像服务作为镜像仓库,将提供的 httpd-2.4.33和 httpd-2.4.35镜像上传至服务中。在 kcloud集群中创建一个 Deployment,使用所上传的 httpd-2.4.33容器镜像,配置使其可以通过外部公网进行访问。完成后提交外部访问地址到答题框。1.查看负载是否正常工作,返回 It works!计 1分【题目 11】软件包适配[3分]自行申请一个鲲鹏云主机,在云主机中创建/data/build/工作目录,在该目录中,创建编译 rpm包所需的要的文件夹,使用提供的 libvirt-5.6.0-4.fc31.src.rpm包进行解压,并放入创建的对应目录,安装依赖制作适配鲲鹏架构的 libvirt-5.6.0 的 rpm 软件包,然后安装 libvirt服务。完成后提交云主机的用户名、密码、和公网 IP地址到答题框。1.创建正确的打包目录计 1分2.查看/data/build/RPMS/aarch64/有 libvirt-5.6.0-4.el7.centos.a.aarch64.rpm计 1分3.查看 libvirt包是否被正确安装计 1分2021年全国职业院校技能大赛“云计算”赛项【任务 3】Python自动化运维[10分]【适用平台】公有云【题目 1】使用 helm模板[0.5分]使用赛项提供的 mychart-0.1.0.tgz 模板包(在 http服务下),修改模板代码使外部可通过节点地址进行访问。在模板市场中上传我的模板 mychart,在 kcloud 集群中安装名为 nginx的模板实例。完成后提交连接 kcloud集群节点的用户名、密码和公网 IP地址到答题框。1.使用命令 kubectl describe svc nginx-mychart查看 service信息,返回 NodePort计 0.3分2.使用命令 kubectl describe svc nginx-mychart查看,返回 release=nginx计 0.2分【题目 2】创建存活探针[0.5分]在 kcloud集群中使用 k8s集群创建名为 liveness-http和 livenes-tcp的 pod,并分别设置http探针和 tcp探针监控 pod状态。完成后提交连接 kcloud集群节点的用户名、密码和公网IP地址到答题框。1.使用命令 kubectl describe po liveness-http,返回 http-get计 0.2分2.使用命令 kubectl describe po liveness-tcp,返回 tcp-socket计 0.3分【题目 3】创建 http存活探针[0.5分]在 kcloud集群中使用 k8s集群创建名为 liveness-http 的 pod,设置 http探针监控 pod状态,探针初始延迟时间为 15秒,探测失败 1次后重启容器。完成后提交连接 kcloud集群节点的用户名、密码和公网 IP地址到答题框。1.使用命令 kubectl describe po liveness-http查看,返回有 http-get 计 0.1分2.使用命令 kubectl describe po liveness-http查看,返回有 delay=15s计 0.2分3.使用命令 kubectl describe po liveness-http查看,返回有 failure=1 计 0.2分2021年全国职业院校技能大赛“云计算”赛项【题目 4】创建 tcp存活探针[0.5分]在 kcloud集群中使用 k8s集群创建名为 liveness-tcp的 pod,设置 tcp探针监控 pod状态,探针每 15秒探测一次容器,探测容器超时时间为 2秒。完成后提交连接 kcloud集群节点的用户名、密码和公网 IP地址到答题框。1.使用命令 kubectl describe po liveness-tcp查看,返回有 tcp-socket计 0.1分2.使用命令 kubectl describe po liveness-tcp查看,返回有 timeout=2s计 0.2分3.使用命令 kubectl describe po liveness-tcp查看,返回有 period=15s计 0.2分【题目 5】python环境准备[0.5分]通过华为云控制台,选择北京四区域,创建一台 x86 架构,按需计费的 2核,4G,硬盘 50G的云实例,实例名为 ChinaSkill,选择镜像为 CentOS 7.5 64bit(40GB),分配独立的公网 IP,带宽选择按使用流量计费 5M。登录此云服务器,安装 Python3,然后使用 Python安装 huaweicloud-sdk-python 库。(所需库文件 HUAWEICloud-Python.zip 在 http 下)完成后提交服务器节点的用户名、密码和 IP地址到答题框。(Python对接公有云的题均使用 X86架构)1.查看 pip3版本为 huaweicloud-sdk-python计 0.5分【题目 6】云服务器组管理[0.5分]在云服务器的/root/huawei目录下编写 create_server_group.py 文件,并导入赛项提供的huaweicloudapi.py 文件获取连接。编写 Python 代码,调用 compute 类,创建华为云的云服务器组,具体要求为(1)云服务器组名称:chinaskills_server_group;(2)云服务器组策略:反亲和性;(3)如果安全组已经存在,代码中需要先删除;(4)使用其源码的 get方法输出此云服务器组的详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。2021年全国职业院校技能大赛“云计算”赛项1.执行 python3 /root/huawei/create_server_group.py,有正确的返回及实现功能计 0.5分【题目 7】安全组管理[0.5分]在云服务器的/root/huawei目录下编写 create_security_group.py文件,并导入赛项提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 vpcv1类,创建华为云的安全组,具体要求为(1)安全组名称:chinaskills_security_group;(2)如果安全组已经存在,代码中需要先删除;(3)使用其源码的 get方法输出此安全组的详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 python3 /root/huawei/create_security_group.py,有正确的返回及实现功能计 0.5分【题目 8】安全组规则管理[0.5分]在云服务器的/root/huawei目录下编写 create_security_group_rule.py文件,并导入赛项提供的 huaweicloudapi.py文件获取连接。基于上一题的安全组,编写 Python代码,调用 vpcv1类,创建华为云的安全组规则,具体要求为(1)使用安全组名称获取其 ID(不允许直接填写安全组 ID);(2)删除此安全组里所有规则(保证代码可以重复执行);(3)放通出方向规则:所有协议端口;(4)放通入方向规则:TCP协议 22端口;(5)放通入方向规则:ICMP协议所有端口;(6)使用其源码的 get方法输出此安全组的详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_security_group_rule.py,有正确的返回及实现功能计 0.5分2021年全国职业院校技能大赛“云计算”赛项【题目 9】虚拟私有云管理[0.5分]在云服务器的 /root/huawei 目录下编写 create_vpc.py 文件,并导入赛项提供的huaweicloudapi.py 文件获取连接。编写 Python 代码,调用 vpcv1 类,创建华为云的虚拟私有云,具体要求为(1)虚拟私有云名称:chinaskills_vpc;(2)如果虚拟私有云已经存在,代码中需要先删除;(3)使用其源码的 get方法输出此虚拟私有云的详细信息(状态要求为 OK)。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_vpc.py,有正确的返回及实现功能计 0.5分【题目 10】虚拟私有云子网管理[0.5分]在云服务器的 /root/huawei 目录下编写 create_subnet.py 文件,并导入赛项提供的huaweicloudapi.py 文件获取连接。编写 Python 代码,调用 vpcv1 类,创建华为云的虚拟私有云子网,具体要求为(1)使用虚拟私有云名称获取其 ID(不允许直接填写虚拟私有云 ID);(2)虚拟私有云子网名称:chinaskills_subnet;(3)虚拟私有云子网网段:192.168.100.0/24;(4)虚拟私有云子网网关:192.168.100.1;(5)虚拟私有云子网可用区域:cn-north-4a;(6)如果虚拟私有云子网已经存在,代码中需要先删除;(7)使用其源码的 get方法输出此虚拟私有云子网的详细信息(状态要求为 ACTIVE)。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_subnet.py,有正确的返回及实现功能计 0.5分【题目 11】密钥对管理[0.5分]在云服务器的 /root/huawei 目录下编写 create_keypair.py 文件,并导入赛项提供的2021年全国职业院校技能大赛“云计算”赛项huaweicloudapi.py 文件获取连接。编写 Python 代码,调用 compute 类,创建华为云的秘钥对,具体要求为(1)秘钥对名称:chinaskills_keypair;(2)如果秘钥对已经存在,代码中需要先删除;(3)使用其源码的 get方法输出此秘钥对详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_keypair.py,有正确的返回及实现功能计 0.5分【题目 12】云服务器管理[1分]在云服务器的 /root/huawei 目录下编写 create_server.py 文件,并导入赛项提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 ecs类,创建华为云的云服务器,具体要求为(1)云服务器名称:chinaskills_server;(2)云服务器可用区域:cn-north-4a;(3)云服务器镜像:CentOS 7.5 64bit;(4)云服务系统盘:磁盘规格 SSD、大小 100G;(5)云服务数据盘:SSD、大小 50G;(6)云服务器规格:c6.large.2;(7)云服务器网络: chinaskills_subnet;(8)云服务器安全组:chinaskills_security_group;(9)云服务器组:chinaskills_server_group;(10)云服务器秘钥对:chinaskills_keypair;(11)云服务器弹性公网 IP:类型为全动态 BGP、带宽为 5 Mbit/s;(12)云服务器标签:chinaskills=true;(13)如果云服务器已经存在,代码中需要先删除;(14)以上需求可用直接使用其 ID,例如:镜像 ID、网络 ID等等;(15)使用其源码的 get方法输出此云服务器的详细信息。2021年全国职业院校技能大赛“云计算”赛项(云服务器状态要求为 ACTIVE且数据盘挂载成功)完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_server.py,有正确的返回及实现功能计 1分【题目 13】弹性伸缩配置[0.5分]在云服务器的/root/huawei 目录下编写 create_as_config.py 文件,并导入赛项提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 auto_scaling类,创建华为云的弹性伸缩配置,具体要求为(1)伸缩配置名称:chinaskills_as_config;(2)镜像配置:CentOS 7.5 64bit;(3)磁盘配置:系统盘规格 SSD、大小 100G;数据盘规格 SSD、大小 50G;(4)规格配置:c6.large.2;(5)安全组配置:chinaskills_security_group;(6)秘钥对配置:chinaskills_keypair;(7)弹性公网配置:类型为全动态 BGP、带宽为 5 Mbit/s;(8)如果弹性伸缩配置已经存在,代码中需要先删除;(9)使用其源码的 get方法输出此弹性伸缩配置的详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_as_config.py,有正确的返回及实现功能计 0.5分【题目 14】弹性伸缩组管理[1分]在云服务器的 /root/huawei 目录下编写 create_as_group.py 文件,并导入赛项提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 auto_scaling类,创建华为云的弹性伸缩组,具体要求为(1)伸缩组名称:chinaskills_as_group;(2)区域配置:cn-north-4a;(3)弹性伸缩配置:chinaskills_as_config;2021年全国职业院校技能大赛“云计算”赛项(4)vpc配置:chinaskills_vpc;(5)子网配置:chinaskills_subnet;(6)安全组配置:chinaskills_security_group;(7)云服务器数配置:最大实例 3台、最小实例 1台、期望实例 2台;(8)配置弹性公网 IP随实例释放;(9)以上需求可用直接使用其 ID,例如:网络 ID、安全组 ID等等;(10)如果弹性伸缩组已经存在,代码中需要先删除;(11)使用其源码的 get方法输出此弹性伸缩组的详细信息。完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_as_group.py,有正确的返回及实现功能计 1分【题目 15】弹性伸缩组策略管理[1分]在/root/huawei目录下编写 crerate_as_policy_daily.py文件,并导入提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 auto_scaling类,创建华为云的弹性伸缩组策略,具体要求如下:(1)基于伸缩组:chinaskills_as_group(不允许直接使用其 ID)(2)伸缩策略名称:chinaskills_as_policy_daily(3)策略类型:周期策略(4)重复周期:按天(5)触发时间:00:00(6)生效时间: 2021-06-10T00:00Z到 2021-12-31T00:00Z(7)执行动作:增加 1实例(8)冷却时间:900 (秒)(9)如果伸缩策略已经存在,代码中需要先删除(10)使用其源码的 get方法输出此伸策略的详细信息完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/crerate_as_policy_daily.py,有正确的返回及实现功能计 1分2021年全国职业院校技能大赛“云计算”赛项【题目 16】云硬盘管理[1分]在/root/huawei目录下编写 create_block_store.py文件,并导入提供的huaweicloudapi.py文件获取连接。编写 Python代码,调用 block_store 类,创建华为云的云硬盘,具体要求如下:(1)云硬盘可用区域:cn-north-4a(2)云硬盘名称:chinaskills_volume(3)云硬盘规格和大小:超高 IO,100G(4)设置云硬盘共享(5)设置云硬盘加密,加密秘钥为默认的 KMS 密钥(6)如果云硬盘已经存在,代码中需要先删除(7)使用其源码的 get方法输出此云硬盘的详细信息(状态要求为 available)完成后提交云服务器节点的用户名、密码和 IP地址到答题框。1.执行 python3 /root/huawei/create_block_store.py,有正确的返回及实现功能计 1分2021年全国职业院校技能大赛高职组云计算赛项试卷【赛程名称】云计算赛项第二场-容器云【赛程时间】2021-06-09 09:00:00至 2021-06-09 16:00:00说明:完成本任务需要两台安装了 CentOS7.5操作系统的云主机 master和 node,镜像包中有本次容器云平台部署和运维所需的所有文件。云梦公司技术部产品开发上线周期长,用户规模大且版本更新频繁。新版本的每次上线,产品都要承受极大的压力。引入 CICD (Continuous Integration持续集成、ContinuousDelivery持续交付) 和灰度发布成了公司的当务之急,研发团队决定搭建基于 Kubernetes 的CICD环境,希望基于这个平台来实现 DevOps 的部分流程,并基于 Kubernetes实现业务系统的灰度发布。为了能够让云梦公司开发的 web应用系统产品能够缩减开发周期,快速迭代版本,并实现业务从老版本到新版本的平滑过渡,避免升级过程中出现的问题对用户造成的影响。研发部决定使用微服务架构,实现基于 Kubernetes的容器化部署、CICD和灰度发布。节点规划如表 1所示。表 1容器云平台节点规划节点角色 主机名 VCPUS 内存 硬盘Master、Harbor、CICD master 8 12G 100GWorker Node node 4 8G 100G【任务 1】Docker CE及私有仓库安装任务[5分]【适用平台】私有云【题目 1】安装 Docker CE和 Docker Compose[1分]使用提供的 centos7.5-paas镜像启动两台云主机 master和 node,flavor如上表所示。在master、node各节点中分别安装 DockerCE和 docker-compose。完成后提交 master节点的用户名、密码和 IP到答题框。1.查看 docker 版本是否安装正确计 0.5 分2.查看 docker-compose 版本安装是否正确计 0.5 分【题目 2】安装私有仓库[1分]在 master 节点安装私有仓库,导入/opt/images 目录下所有镜像,并推送到私有仓库。完成后提交 master节点的用户名、密码和 IP到答题框。1.查看 Harbor 关联的容器是否正常运行计 0.5 分2.查看 Harbor 是否正确安装计 0.5 分【题目 3】容器编排[3分]在 master节点上编写/root/docker-compose.yaml文件(需要用到的镜像包 SkyWalking.tar在 http服务下),具体要求如下:(1)容器 1名称:elasticsearch;镜像:elasticsearch:7.8.0;端口映射:9200:9200;(2)容器 2 名称:oap;镜像:apache/skywalking-oap-server:8.0.1-es7;端口映射:11800:11800,12800:12800;(3)容器 3名称:ui;镜像:apache/skywalking-ui:8.0.1;端口映射:8082:8080。完成后编排部署 Skywalking服务,并提交 master节点的用户名、密码和 IP到答题框。1.docker-compose ps 命令查看容器为 UP 计 1.4 分2.查看 Skywalking 首页返回正确计 1.6分【任务 2】基于 Docker容器的 web应用系统部署[10分]云梦公司开发了一套基于SpringBoot+MyBatis微服务架构的ChinaSkillsMall电商系统,并实现全容器化部署,ChinaSkillsMall电商应用系统架构如图 1所示,系统说明如表 2所示。图 1 ChinaSkillsMall电商应用系统架构图表 2 ChinaSkillsMall电商应用系统说明模块 说明mall-monitor 监控中心mall-gateway 微服务网关mall-auth 认证中心mall-admin 商城后台服务mall-portal 商城前台服务将MariaDB数据库组件、Redis消息组件、RabbitMQ消息组件、Nacos-Registry注册中心服务组件和前端 Nginx组件按照要求进行容器化。(所需要的软件包 mall-swarm.tar.gz在 http服务中)。【适用平台】私有云【题目 1】容器化部署MariaDB[2分]在 master 节 点 上 编 写 /root/mall-swarm/Dockerfile-mariadb 文 件 构 建chinaskillmall-mariadb:v1.1镜像,具体要求如下:(1)基础镜像:centos:centos7.5.1804;(2)作者:Chinaskill;(3)安装并初始化 mariadb,密码:root;(4)设置数据库编码为 UTF-8;(5)开放端口:3306(6)设置 mariadb开机自启。完成后构建镜像,并提交 master节点的用户名、密码和 IP到答题框。1.docker build 容器镜像,返回正确计 1 分2.启动容器,查看容器内部数据库字符编码,有正确返回计 0.5 分3.进入容器内部,有正确的数据库表计 0.5 分【题目 2】容器化部署 Redis[1.5分]在 master节点上编写/root/mall-swarm/Dockerfile-redis 文件构建 chinaskillmall-redis:v1.1镜像,具体要求如下:(1)基础镜像:centos:centos7.5.1804;(2)作者:Chinaskill;(3)安装 redis服务;(4)修改配置文件中的 bind 127.0.0.1为 bind 0.0.0.0;(5)设置 redis免密,并关闭保护模式;(6)开放端口:6379;(7)设置服务开机自启。完成后构建镜像,并提交 master节点的用户名、密码和 IP到答题框。1.docker build 构建镜像,有正确的返回计 0.4 分2.启动容器,进入容器查看 redis 的 info 信息,有 connected_clients:1 计 0.5分3.进入容器查看配置文件,取消保护模式计 0.6分【题目 3】容器化部署 Nacos-Registry[2分]在 master 节 点 上 编 写 /root/mall-swarm/Dockerfile-nacos 文 件 构 建chinaskillmall-nacos:v1.1镜像,具体要求如下:(1)基础镜像:centos:centos7.5.1804;(2)作者:Chinaskill;(3)安装 jdk工具和 nacos-server工具;(4)设置 nacos服务开机自启。完成后构建镜像,并提交 master节点的用户名、密码和 IP到答题框。1.docker build 构建镜像,有正确的返回计 0.6 分2.启动容器,查看 nacos 首页有三方 css开始,第三方 js结束计 1.4分【题目 4】容器化部署前端服务[2分]在 master 节点上安装 node 工具,对 mall-admin-web 项目进行打包,然后编写/root/mall-swarm/Dockerfile-nginx文件构建 chinaskillmall-nginx:v1.1镜像,具体要求如下:(1)基础镜像:centos:centos7.5.1804;(2)作者:Chinaskill;(3)安装 nginx 服务;(4)将 mall-admin-web项目打包后的文件拷贝到/usr/share/nginx/html目录下;(5)设置 nginx 服务开机自启。完成后构建镜像,并提交 master节点的用户名、密码和 IP到答题框。1.docker build 构建镜像,有正确的返回计 1分2.启动容器并进入容器,查看/usr/share/nginx/html/目录下是否存在 index.html,计 0.5分3.查看容器内 npm的版本号是否正确计 0.5分【题目 5】编排部署 ChinaSkillsMall商城[2.5分]在 master节点上编写/root/mall-swarm/docker-compose.yaml文件,具体要求如下:(1)容器 1名称:chinaskillmall-admin;镜像:mall/mall-admin:1.0-SNAPSHOT;端口映射:8080:8080;(2)容器 2名称: chinaskillmall-auth;镜像:mall/mall-auth:1.0-SNAPSHOT;端口映射:8401:8401;(3)容器 3 名称:chinaskillmall-gateway;镜像:mall/mall-gateway:1.0-SNAPSHOT;端口映射:8201:8201;(4)容器 4名称:chinaskillmall-mysql;镜像:chinaskillmall-mariadb:v1.1;端口映射:3306:3306;(5)容器 5 名称:chinaskillmall-nacos;镜像:chinaskillmall-nacos:v1.1;端口映射:8848:8848;(6)容器 6 名称:chinaskillmall-nginx;镜像:chinaskillmall-nginx:v1.1;端口映射:8888:80;(7)容器 1 名称:chinaskillmall-redis;镜像:chinaskillmall-redis:v1.1;端口映射:6379:6379。完成后编排部署 ChinaSkillsMall商城。然后提交 master节点的用户名、密码和 IP到答题框。1.使用 docker-compose ps 命令查看所有容器是否正常启动,计 1 分2.查看商城页面,是否有正确的返回计 1.5 分【任务 3】基于 Kubernetes构建持续集成[10分]该公司决定采用 GitLab +Jenkins来构建 CICD 环境,以缩短新功能开发上线周期,及时满足客户的需求,实现 DevOps 的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成 GitLab + Jenkins + Kubernetes的 CICD环境部署(所需要的软件包 CICD_Offline.tar在 http 服务中)。CICD应用系统架构如下:【适用平台】私有云【题目 1】安装 Jenkins环境[2分]在 master 节点上编写/root/jenkins/docker-compose.yaml 文件编排部署 Jenkins 服务,具体要求如下:(1)容器名称:jenkins;(2)端口映射:8080:8080;(3)使用 root身份生成容器;(4)离线安装 Jenkins插件;(5)设置 Jenkins用户:springcloud;密码:000000;(6)在授权策略中配置“任何用户可以做任何事(没有任何限制)”。使用 chinaskill 用户登录 Jenkins,完成后提交 master节点的用户名、密码和 IP 到答题框。1.docker-compose ps查看 Jenkins容器是否正常启动计 0.4分2.查看 http://localhost:8080/pluginManager/installed是否有正确返回计 1.2分3.进入 Jenkins容器查看容器版本是否正确计 0.4分【题目 2】安装 Gitlab环境[1分]在 master节点上编写/root/gitlab/docker-compose.yaml文件编排部署 Gitlab服务,具体要求如下:(1)容器名称:gitlab;(2)端口映射:1022:22、81:80、443:443;(3)容器重启策略:always;(4)设置 root用户及密码;(5)使用 root用户登录 Gitlab,密码:00000000;(6)新建项目 Springcloud,将/opt/Springcloud中的代码上传到 Springcloud项目中。完成后提交 master节点的用户名、密码和 IP到答题框。1.使用 docker-compose ps 命令查看 gitlab 是否正常启动计 0.4 分2.使用 git clone http://master:81/root/springcloud.git /data/springcloud && ls /data/springcloud 命令,查看是否有正确的返回计 0.6分【题目 3】配置 Jenkins连接 Gitlab[1分]配置 Jenkins连接 Gitlab,具体要求如下:(1)设置 Outbound requests;(2)生成“Access Tokens”并命名为 jenkins;(3)设置 Jenkins取消对'/project' end-point进行身份验证;(4)测试 Jenkins与 Gitlab的连通性。完成后提交 master节点的用户名、密码和 IP到答题框。1.查看 http://localhost:8080/credentials/界面是否有 GitLab API token返回计 1分【题目 4】配置 Jenkins连接 maven[1分]配置 Jenkins连接 maven,具体要求如下:(1)采用 docker in docker的方式在 Jenkins内安装 maven;(2)在 Jenkins中配置 maven信息。完成后提交 master节点的用户名、密码和 IP到答题框。1.进入 Jenkins 容器查看 mvn 的版本信息是否正确计 0.6 分2.查看 curl -L http://localhost:8080/configureTools/ |grep local 是否有 value="/usr/local/maven"返回计 0.4分【题目 5】配置 CI/CD[1分]配置 CI/CD,具体要求如下:(1)新建一个流水线任务 Springcloud;(2)编写流水线脚本,构建 Springcloud项目中的 gateway和 config服务,将构建后的镜像自动上传到 Harbor 仓库的 springcloud 项目,并自动发布 gateway 和 config 服务到Kubernetes集群的 springcloud命名空间下;(3)配置Webhook;(4)在 Harbor中新建公开项目 springcloud。完成后提交 master节点的用户名、密码和 IP到答题框。1. 编 写 流 水 线 脚 本 , 使 用 命 令 查 看 curl -u springcloud:000000http://master:8080/job/springcloud/configure,有正确的返回计 1分【题目 6】触发 CI/CD[4分]将 Springcloud项目中的代码上传到 Gitlab中触发构建,完成后提交 master节点的用户名、密码和 IP到答题框。1.使用命令 kubectl -n springcloud get service 查看 service 有正确的 config 和 gateway 计 0.4 分2.使用命令 kubectl -n springcloud get pods查看 pods,有正确的 config和 gateway计 0.4分3. 查 看 curl -L http://localhost:8080/job/Springcloud/wfapi/runs fullStages=true|grep -o'"status":"SUCCESS"',返回"status":"SUCCESS"计 0.8分4.curl http://master:30010/返回 Accumulation account 计 1分5.能正确 pull config和 gateway镜像计 1分6.进入 Jenkins容器查看/root/.m2/repository内容有 aopalliance和 commons-beanutils计 0.4分【任务 4】Kubernetes容器云平台部署与运维[10分]【适用平台】私有云【题目 1】健康检查--ExecAction[0.5分]在 master节点/root目录下编写 yaml文件 liveness_exec.yaml,具体要求如下:(1)Pod名称:liveness-exec;(2)命名空间:default;(3)镜像:busybox;容器名称:liveness;(4)容器启动时运行命令“touch /tmp/healthy; sleep 60; rm -rf /tmp/healthy; sleep 600”,此命令在容器启动时创建/tmp/healthy文件,并于 60秒之后将其删除;(5)存活性探针运行“test -e /tmp/healthy”命令检查文件的存在性,若文件存在则返回状态码为 0,表示成功通过测试;(6)启动后延时 5秒开始运行检测;(7)每隔 5秒执行一次 liveness probe。完成后使用该 yaml文件创建 Pod,并提交 master节点的用户名、密码和 IP到答题框。1.使用 kubectl apply -f liveness_exec.yaml && kubectl get pods 命令查看,能查看到 liveness-exec这个 pod并且正常运行计 0.1分2.查看 liveness-exec 的详细信息,有正确的返回计 0.4分【题目 2】更新证书[1.5分]Kubernetes默认的证书有效期只有一年时间,对于某些场景下一个足够长的证书有效期是非常有必要的。请将 Kubernetes集群证书的有效期延长至 10年。完成后提交 master节点的用户名、密码及 IP到答题框。(需要用到的软件包 kubernetes_v1.18.1.tar.gz在 http 服务下)1.使用命令 kubeadm alpha certs check-expiration|grep 9y|awk '{print$1" "$7}'查看证书时间,有正确的返回 admin.conf 9y、apiserver 9y、apiserver-etcd-client 9y计 1.5分,每个计 0.5分【题目 3】自定义资源管理[1分]在 Kubernetes 中一切都可视为资源,通过自定义资源我们可以向 Kubernetes API中增加新资源类型。在 master节点/root目录下编写 yaml文件 resource.yaml,具体要求如下:(1)自定义资源名称:crontabs.stable.;(2)指定自定义资源作用范围为命名空间;(3)指定每个版本都可以通过 served标志来独立启用或禁止;(4)指定其中有且只有一个版本必需被标记为存储版本 v1。完成后使用该 yaml文件创建自定义资源,并提交 master节点的用户名、密码和 IP到答题框。1.使用命令 kubectl get crd查看,返回 crontabs.stable.计 0.1分2.使 用 命令 kubectl describe crd crontabs.stable. 查 看 ,有 正 确 的 返 回 Group:stable.、Scope: Namespaced、v1 共计 0.9分【题目 4】HPA管理[0.5分]在 master节点/root目录下编写 yaml文件 deployment-hpa.yaml,具体要求如下:(1)HPA名称:deployment-hpa;(2)命名空间:default;(3)基于 deployment进行伸缩,副本数伸缩范围:1--10;(4)期望每个 Pod的 CPU 和内存使用率为 50%。完成后使用该 yaml文件创建 HPA,并提交 master节点的用户名、密码和 IP到答题框。1.运行 /root/deployment-hpa.yaml 并 kubectl get HorizontalPodAutoscaler,返回 deployment-hpaDeployment计 0.2分2.使用 kubectl describe horizontalpodautoscaler.autoscaling/deployment-hpa 命令查看,有正确返回计 0.3分【题目 5】NetworkPolicy管理 [0.5分]在 master节点/root目录下编写 yaml文件 network-policy-deny.yaml,具体要求如下:(1)NetworkPolicy名称:default-deny;(2)命名空间:default;(3)默认禁止所有入 Pod流量。完成后使用该 yaml 文件创建 NetworkPolicy,并提交 master 节点的用户名、密码和 IP到答题框。1.使用命令 kubectl apply -f network-policy-deny.yaml && kubectl get networkpolicy 查看,有default-deny返回计 0.2分2.使用命令 kubectl describe networkpolicy default-deny查看,有 Selected pods are isolated for ingressconnectivity返回计 0.3分【题目 6】修改 Pod数量限制[0.5分]Kubernetes 默认每个节点只能启动 110个 Pod,由于业务需要,将每个节点默认限制的Pod数量改为 200。完成后提交 master节点的用户名、密码和 IP到答题框。1.使用命令 kubectl describe node master node|grep -w pods|grep 200|wc -l查看,返回 4计 0.5分【题目 7】修改 NodePort端口范围[0.5分]Kubernetes 以 NodePort 方式暴露服务,默认的端口范围为 30000-32767,将 NodePort的端口范围修改为 20000-65535。完成后提交 master节点的用户名、密码和 IP到答题框。1. 使 用 kubectl describe pod $apiserver_pods -n kube-system 查 看 , 返 回--service-node-port-range=20000-65535计 0.5分【题目 8】金丝雀发布-安装 Istio[1分]由于 Kubernetes 使用的 IPVS 模块需要系统内核版本支持,试使用提供的软件包(Canary_v1.0.tar.gz 在 http 服务下)将系统内核进行升级,在 Kubernetes 集群上完成 Istio的安装,并将 default Namespace设置自动注入。完成后提交 master节点的用户名、密码及IP到答题框。1.使用命令 kubectl -n istio-system get all 查看,有 service/istio-egressgateway ClusterIP |,deployment.apps/istio-egressgateway 1/1,replicaset.apps/istiod计 0.3分2.使用命令 kubectl get ns --show-labels=true|grep default 查看,返回 istio-injection=enabled 计 0.3分3.使用命令 uname -r查看系统内核版本 5.4.119-1.el7.elrepo.x86_64计 0.4分【题目 9】金丝雀发布-流量控制[0.5分]使用赛项提供的文件(istio-1.9.5/samples/helloworld/helloworld.yaml)在 default 命名空间下完成 hellworld 服务的部署,然后设置路由规则来控制流量分配,创建一个虚拟服务helloworld;再创建一个目标规则 helloworld,将 10%的流量发送到金丝雀版本(v2)。完成后提交 master节点的用户名、密码及 IP到答题框。1. 使 用 命 令 kubectl get VirtualService,DestinationRule , 有working.istio.io/helloworld [helloworld] ,working.istio.io/helloworld helloworld计 0.2分2.使用命令 kubectl describe VirtualService helloworld |grep Route -A 10 | xargs,返回 Subset: v1Weight: 90,Subset: v2 Weight: 10计 0.3分【题目 10】金丝雀发布-熔断[0.5分]使用赛项提供的文件(istio-1.9.5/samples/httpbin/httpbin-fortio.yaml)在 default命名空间下完成 httpbin服务的部署,创建一个目标规则 httpbin,在调用 httpbin 服务时应用熔断设置,具体要求为(1)定义到目标主机的 HTTP1/TCP 最大连接数为 1;(2)定义针对一个目标的 HTTP 请求的最大排队数量为 1;(3)定义对某一后端的请求中,一个连接内能够发出的最大请求数量为 1。完成后提交 master节点的用户名、密码及 IP到答题框。1. 使 用 命 令 kubectl describe DestinationRule httpbin 查 看 , 返 回 maxConnections: 1 ,http1MaxPendingRequests: 1,maxRequestsPerConnection: 1计 0.5分【题目 11】金丝雀发布-流量镜像[1分]使用赛项提供的文件(istio-1.9.5/samples/httpbin/httpbin-sleep.yaml)在 default 命名空间下完成 httpbin-v1、httpbin-v2以及 sleep服务的部署,创建一个虚拟服务 httpbin和一个目标规则 httpbin,将所有流量路由到 httpbin-v1 服务,然后将 100%的相同流量镜像(即发送)到httpbin-v2服务。完成后提交 master节点的用户名、密码及 IP到答题框。1.使用命令 kubectl describe virtualservice httpbin 查看,返回有 Mirror Percent: 100,Weight:100计 1分【题目 12】金丝雀发布-Ingress Gateway [1.5分]使用赛项提供的文件(istio-1.9.5/samples/httpbin/httpbin.yaml)在 default 命名空间下完成httpbin服务的部署,在 80端口为 HTTP流量配置一个网关 httpbin-gateway,并为 httpbin服务创建了虚拟服务配置 httpbin,包含 1个路由规则,允许流量流向路径/headers,并允许通过浏览器访问服务。完成后提交 master节点的用户名、密码及 IP到答题框。1.使用命令 kubectl get virtualservice查看,返回有 httpbin [httpbin-gateway] [*]计 0.5分2.使用命令 kubectl describe virtualservice httpbin查看,返回有 Prefix: /headers计 0.5分3.使用命令 curl -s -I -HHost:httpbin. "http://node:$(kubectl -n istio-system get serviceistio-ingressgateway -o jsonpath='{.spec.ports[ (@.name=="http2")].nodePort}')/headers"查看。返回有 HTTP/1.1 200 OK计 0.5分【题目 13】污点与容忍[0.5分]请将 master节点设置为污点,策略设置为资源尽量不调度到污点节点中去。完成后提交 master节点的用户名、密码和 IP到答题框。1.使用命令 kubectl describe node master查看,返回有 PreferNoSchedule 计 0.5分 展开更多...... 收起↑ 资源列表 2021全国职业院校技能大赛云计算赛项-(第1天).pdf 2021全国职业院校技能大赛云计算赛项-(第2天).pdf 2021全国职业院校技能大赛云计算赛项-(第3天).pdf