赞
踩
说明:文件搬运于全国职业院校技能大赛官网
项目需求:某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台建设, 平台聚焦“DevOps 建运一体”和“数据驱动产品开发”,拟采用开源 OpenStack 搭建企业 内部私有云平台,开源 Kubernetes 搭建云原生服务平台,选择国内主流公有云平台服务, 基于数字化平台底座,面向业务开发云应用产品。
拟将该任务交给工程师 A 与 B,分工协助完成云平台服务部署、云应用开发、云系统运 维等任务,系统架构如下: 系统架构如图1所示,IP 地址规划如表1所示。
说明:
1.竞赛使用集群模式进行,比赛时给每个参赛队提供独立的租户与用户,各用户的资 源配额相同,选手通过用户名与密码登录竞赛用私有云平台,创建云主机进行相应答题; 同组 2 名选手的账号密码一样。
2.表中的x为赛位号;在进行OpenStack搭建时的第二块网卡地址根据题意自行创建;
3.根据图表给出的信息,检查硬件连线及网络设备配置,确保网络连接正常;
4.考试所需要的账号资源、竞赛资源包与附件均会在考位信息表与设备确认单中给出;
5.竞赛过程中,为确保服务器的安全,请自行修改服务器密码;在考试系统提交信息 时,请确认自己的 IP 地址,用户名和密码。
【适用平台】私有云
【题目 1】1.1.1 基础环境配置[0.2 分]
1.控制节点主机名为 controller,设置计算节点主机名为 compute;
2.hosts 文件将 IP 地址映射为主机名。
使用提供的用户名密码,登录提供的 OpenStack 私有云平台,在当前租户下,使用 CentOS7.9 镜像,创建两台云主机,云主机类型使用 4vCPU/12G/100G_50G 类型。当前租户 下默认存在一张网卡,自行创建第二张网卡并连接至 controller 和 compute 节点(第二张 网卡的网段为 10.10.X.0/24,X 为工位号,不需要创建路由)。自行检查安全组策略,以 确保网络正常通信与 ssh 连接,然后按以下要求配置服务器:
设置控制节点主机名为 controller,设置计算节点主机名为 compute;
修改 hosts 文件将 IP 地址映射为主机名;
完成后提交控制节点的用户名、密码和 IP 地址到答题框。
使用提供的 http 服务地址,分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。
使用提供的 http 服务地址,在 http 服务下,存在 centos7.9 和 iaas 的网络 yum 源, 使用该 http 源作为安装 iaas 平台的网络源。分别设置 controller 节点和 compute 节点的 yum 源文件 http.repo。
完成后提交控制节点的用户名、密码和 IP 地址到答题框。
配置 controller 节点可以无秘钥访问 compute 节点。
配置 controller 节点可以无秘钥访问 compute 节点,配置完成后,尝试 ssh 连接 compute 节点的 hostname 进行测试。
完成后提交 controller 节点的用户名、密码和 IP 地 址到答题框。
在控制节点和计算节点上分别安装 openstack-iaas 软件包。
在控制节点和计算节点上分别安装 openstack-iaas 软件包,根据表 2 配置两个节点脚 本文件中的基本变量(配置脚本文件为/etc/openstack/openrc.sh)。
完成后提交控制节点的用户名、密码和 IP 地址到答题框。
在控制节点上使用安装 Mariadb、RabbitMQ 等服务。并进行相关操作。
在 controller 节点上使用 iaas-install-mysql.sh 脚本安装 Mariadb、Memcached、 RabbitMQ 等服务。安装服务完毕后,修改/etc/my.cnf 文件,完成下列要求:
设置数据库支持大小写;
设置数据库缓存 innodb 表的索引,数据,插入数据时的缓冲为 4G;
设置数据库的 log buffer 为 64MB;
设置数据库的 redo log 大小为 256MB;
设置数据库的 redo log 文件组为 2。
修改 Memcached 的相关配置,将内存占用大小设置为 512MB,调整最大连接数参数为 2048;
调整 Memcached 的数据摘要算法(hash)为 md5;
完成后提交控制节点的用户名、密码和 IP 地址到答题框。
在控制节点上安装 Keystone 服务并创建用户。
在 controller 节点上使用 iaas-install-keystone.sh 脚本安装 Keystone 服务。
然后创建 OpenStack 域 210Demo,其中包含 Engineering 与 Production 项目,在域 210Demo 中创建组 Devops,其中需包含以下用户:
在控制节点上安装 Glance 服务。上传镜像至平台,并设置镜像启动的要求参数。
在 controller 节点上使用 iaas-install-glance.sh 脚本安装 glance 服务。然后使 用提供的 coreos_production_pxe.vmlinuz 镜像(该镜像为 Ironic Deploy 镜像,是一个 AWS 内核格式的镜像,在 OpenStack Ironic 裸金属服务时需要用到)上传到 OpenStack 平 台中,命名为 deploy-vmlinuz。完成后提交控制节点的用户名、密码和 IP 地址到答题框。
在控制节点和计算节点上分别安装 Nova 服务。安装完成后,完成 Nova 相关配置。
在 controller 节点和 compute 节点上分别使用 iaas-install-placement.sh 脚本、 iaas-install-nova -controller.sh 脚本、iaas-install-nova-compute.sh 脚本安装 Nova 服务。在 OpenStack 中,修改相关配置文件,修改调度器规则采用缓存调度器,缓存主机 信息,提升调度时间。配置完成后提交controller点的用户名、密码和IP地址到答题框。
在控制和计算节点上正确安装 Neutron 服务。
使用提供的脚本 iaas-install-neutron-controller.sh 和 iaas-install-neutroncompute.sh,在 controller 和 compute 节点上安装 neutron 服务。完成后提交控制节点的 用户名、密码和 IP 地址到答题框。
在控制节点上安装 Dashboard 服务。安装完成后,将 Dashboard 中的 Django 数据修改 为存储在文件中。
在 controller 节点上使用 iaas-install-dashboad.sh 脚本安装 Dashboard 服务。 安装完成后,修改相关配置文件,完成下列两个操作:
在控制节点和计算节点上分别安装 Swift 服务。安装完成后,将 cirros 镜像进行分片 存储。
在控制节点和计算节点上分别使用 iaas-install-swift-controller.sh 和 iaasinstall-swift-compute.sh 脚本安装 Swift 服务。安装完成后,使用命令创建一个名叫 examcontainer 的容器,将 cirros-0.3.4-x86_64-disk.img 镜像上传到 examcontainer 容 器中,并设置分段存放,每一段大小为 10M。完成后提交控制节点的用户名、密码和 IP 地 址到答题框。
在控制节点和计算节点分别安装 Cinder 服务,请在计算节点,对块存储进行扩容操作。
在 控 制 节 点 和 计 算 节 点 分 别 使 用 iaas-install-cinder-controller.sh 、 iaasinstall-cinder-compute.sh 脚本安装 Cinder 服务,请在计算节点,对块存储进行扩容操 作,即在计算节点再分出一个 5G 的分区,加入到 cinder 块存储的后端存储中去。完成后 提交计算节点的用户名、密码和 IP 地址到答题框。
修改 controller 节点的相关配置文件,配置 controller 节点禁止其他节点可以 ping 它。 配置完之后。完成后提交 controller 节点的用户名、密码和 IP 地址到答题框。
【适用平台】私有云
编写 Heat 模板 create_user.yaml,创建名为 heat-user 的用户。
使用自己搭建的OpenStack 私有云平台,使用heat 编写摸板(heat_template_version: 2016-04-08)创建名为”chinaskills”的 domain,在此 domain 下创建名为 beijing_group的租户,在此租户下创建名为 cloud 的用户,将此文件命名及保存在 /root/user_create.yml,完成后提交 controller 点的用户名、密码和 IP 地址到答题框。
(竞赛系统会执行yaml 文件,请确保执行的环境)
在OpenStack平台上修改相关配置文件,启用-device virtio-net-pci in kvm。
在自行搭建的OpenStack私有云平台或赛项提供的all-in-one平台上,修改相关配置文件,启用-device virtio-net-pci in kvm,配置完成后提交控制节点的用户名、密码和IP地址到答题框。
使用OpenStack私有云平台,创建一台云主机,安装NFS服务,然后对接Glance后端存储。
使用赛项提供的OpenStack私有云平台,创建一台云主机(镜像使用CentOS7.9,flavor使用带临时磁盘50G的),配置该主机为nfs的server端,将该云主机中的50G磁盘通过/mnt/test目录进行共享(目录不存在可自行创建)。然后配置controller节点为nfs的client端,要求将/mnt/test目录作为glance后端存储的挂载目录。配置完成后提交controller控制节点的用户名、密码和IP地址到答题框。
使用赛项提供的OpenStack私有云平台,创建两台云主机,配置为redis的主从架构。
使用赛项提供的OpenStack私有云平台,申请两台CentOS7.9系统的云主机,使用提供的http源,在两个节点安装redis服务并启动,配置redis的访问需要密码,密码设置为123456。然后将这两个redis节点配置为redis的主从架构。配置完成后提交redis主节点的用户名、密码和IP地址到答题框。
修改系统配置文件,要求将回写磁盘的时间临时调整为60秒。
Linux系统内存中会存在脏数据,一般系统默认脏数据30秒后会回写磁盘,修改系统配置文件,要求将回写磁盘的时间临时调整为60秒。完成后提交controller节点的用户名、密码和IP地址到答题框。
在OpenStack平台中,修改相关配置文件,将子进程数量相应的配置修改成2。
在OpenStack平台中,glance-api处理请求的子进程数量默认是0,只有一个主进程,请修改相关配置文件,将子进程数量相应的配置修改成2,这样的话有一个主进程加2个子进程来并发处理请求。完成后提交控制节点的用户名、密码和IP地址到答题框。
使用提供的ceph.tar.gz软件包,安装ceph服务并完成初始化操作。
使用提供的ceph-14.2.22.tar.gz软件包,在OpenStack平台上创建三台CentOS7.9系统的云主机,使用这三个节点安装ceph服务并完成初始化操作,第一个节点为mon/osd节点,第二、三个节点为osd节点,部署完ceph后,创建vms、images、volumes三个pool。完成后提交第一个节点的用户名、密码和IP地址到答题框。
修改OpenStack平台中Glance服务的配置文件,将Glance后端存储改为Ceph存储。
在自己搭建的OpenStack平台中修改glance服务的相关配置文件,将glance后端存储改为ceph存储。也就是所以的镜像会上传至ceph的images pool中。通过命令使用cirros-0.3.4-x86_64-disk.img镜像文件上传至云平台中,镜像命名为cirros。完成后提交controller节点的用户名、密码和IP地址到答题框。
修改OpenStack平台中cinder服务的配置文件,将cinder后端存储改为Ceph存储。
修改OpenStack平台中cinder服务的相关配置文件,将cinder后端存储改为ceph存储。使创建的cinder块存储卷在ceph的volumes pool中。配置完成后,在OpenStack平台中使用创建卷cinder-volume1,大小为1G。完成后提交controller节点的用户名、密码和IP地址到答题框。
修改OpenStack平台中Nova服务的配置文件,将Nova后端存储改为Ceph存储。
修改OpenStack平台中nova服务的相关配置文件,将nova后端存储改为ceph存储。使nova所创建的虚拟机都存储在ceph的vms pool中。配置完成后在OpenStack平台中使用命令创建云主机server1。完成后提交controller节点的用户名、密码和IP地址到答题框。
使用自行创建的OpenStack云计算平台,配置控制节点的网络缓存,使得每个UDP连接(发送、 接受)保证能有最小358 KiB最大460 KiB的buffer,重启后仍然生效。配置完成后提交controller控制节点的用户名、密码和IP地址到答题框。
使用赛项提供的chinaskill-error01镜像创建一台云主机(云主机的登录用户名为root,密码为Abc@1234),该云主机中存在错误的网络服务,错误现象为dashboard不能查看网络相关的页面,请修复neutron服务。修复完成后提交该云主机的用户名、密码和IP地址到答题框。
使用赛项提供的chinaskill-error01镜像创建一台云主机(云主机的登录用户名为root,密码为Abc@1234),该云主机中存在错误的卷服务,错误现象为无法正常使用cinder命令,请修复卷服务,然后使用命令创建名为chinaskill-cinder的卷,大小为2G。修复完成后提交该云主机的用户名、密码和IP地址到答题框。
【适用平台】私有云
编写一键部署nfs云网盘应用系统。
在OpenStack私有云平台,创建一台云主机,使用提供的软件包,在root目录下编写一键部署脚本install_owncloud.sh,要求可以一键部署owncloud云网盘应用系统。完成后提交节点的IP地址、用户名和密码到答题框。
编写Playbook,部署的ELK。
使用赛项提供的OpenStack私有云平台,创建三台CentOS7.9系统的云主机分别命名为elk-1、elk-2和elk-3,Ansible主机可以使用上一题的环境。要求Ansible节点编写剧本,执行Ansible剧本可以在这三个节点部署ELK集群服务(在/root目录下创建install_elk目录作为ansible工作目录,部署的入口文件命名为install_elk.yaml)。具体要求为三个节点均安装Elasticserach服务并配置为Elasticserach集群;kibana安装在第一个节点;Logstash安装在第二个节点。(需要用到的软件包在HTTP服务下)完成后提交ansible节点的用户名、密码和IP地址到答题框。(考试系统会连接到ansible节点,执行ansible脚本,准备好环境,以便考试系统访问)
编写Playbook,部署的ZooKeeper和Kafka。
使用提供的OpenStack私有云平台,创建4台系统为centos7.5的云主机,其中一台作为Ansible的母机并命名为ansible,另外三台云主机命名为node1、node2、node3,通过附件中的/ansible/ansible.tar.gz软件包在ansible节点安装Ansible服务;使用这一台母机,编写Ansible脚本(在/root目录下创建example目录作为Ansible工作目录,部署的入口文件命名为cscc_install.yaml),编写Ansible脚本使用roles的方式对其他三台云主机进行安装kafka集群的操作(zookeeper和kafka的安装压缩包在gpmall-single.tar.gz压缩包中,将zookeeper和kafka的压缩包解压到node节点的/opt目录下进行安装)。完成后提交ansible节点的用户名、密码和IP地址到答题框。(考试系统会连接到你的ansible节点,去执行ansible脚本,请准备好环境,以便考试系统访问)
使用已建好的OpenStack Python运维开发环境,在root目录下创建resource_manager.py脚本,基于OpenStack资源配额管理服务封装客户端工具,resource_manager.py程序支持命令行带参数执行,命令参数要求说明如下:
功能要求如下:
使用已建好的OpenStack Python运维开发环境,在/root目录下创建mysql_db_manager.py脚本,基于python的sqlalchemy库进行数据库的管理,实现对OpenStack内指定服务的MariaDB数据库管理功能,实现该数据库下表创建、删除、数据插入、更新等操作(为确保检测成功,OpenStack MariaDB数据库的账户root、密码000000不要修改):
该表(table)用于描述OpenStack成员信息,表结构如下:
表名称"member",该表有4个字段:
id INTEGER 主键,自动递增;
name VARCHAR(256);
level INTEGER;
place varchar(256);
【适用平台】私有云
使用OpenStack私有云平台创建两台云主机,云主机类型使用4vCPU/12G/100G类型,分别作为Kubernetes集群的Master节点和node节点,然后完成Kubernetes集群的部署,并完成Istio服务网格、KubeVirt虚拟化和Harbor镜像仓库的部署。
完成后提交Master节点的用户名、密码和IP到答题框。
【适用平台】私有云
编写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)
编写Dockerfile文件构建redis镜像,要求基于centos完成Redis服务的安装和配置,并设置服务开机自启。
编写Dockerfile构建镜像erp-redis:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成Redis服务的安装,修改其配置文件关闭保护模式,并设置Redis服务开机自启。
完成后提交Master节点的IP地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)
编写Dockerfile文件构建nginx镜像,要求基于centos完成Nginx服务的安装和配置,并设置服务开机自启。
编写Dockerfile构建镜像erp-nginx:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成Nginx服务的安装,使用提供的app.tar.gz和nginx.conf启动Nginx服务,并设置开机自启。
完成后提交Master节点的IP地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)
编写Dockerfile文件构建erp镜像,要求基于centos完成JDK环境和ERP服务的安装与配置,并设置服务开机自启。
编写Dockerfile构建镜像erp-server:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成JDK环境的安装,启动提供的jar包,并设置服务开机自启。
完成后提交Master节点的IP地址、用户名和密码到答题框。(需要用到的软件包:ERP.tar.gz)
编写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)
将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)
将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)
将Kubernetes集群添加到GitLab项目中指定名称和命名空间。
将Kubernetes集群添加到demo-2048项目中,并命名为kubernetes-agent,项目命名空间选择gitlab-ci。
完成后提交Master节点的用户名、密码和IP地址到答题框。(需要用到的软件包:CICD-Runner.tar.gz)
编写流水线脚本触发自动构建,要求基于GitLab项目完成代码的编译、镜像的构建与推送,并自动发布应用到Kubernetes集群中。
编写流水线脚本.gitlab-ci.yml触发自动构建,具体要求如下:
将 Bookinfo 应用部署到 default 命名空间下,为 Bookinfo 应用创建一个名为reviews的 VirtualService,要求来自名为 Jason 的用户的所有流量将被路由到 reviews 服务的 v2版本。
完成后提交 Master 节点的 IP 地址、用户名和密码到答题框。(需要用到的软件包:ServiceMesh.tar.gz)
使用提供的镜像在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地址、用户名和密码到答题框。
启用审计日志可以帮助集群管理员快速的定位问题。请启用Kubernetes集群的审计日志,要求以JSON格式保存审计日志并输出到/etc/kubernetes/audit-logs/audit.log文件中,日志最多保留10天,单个日志文件不超过500M。然后编写审计策略文件/etc/kubernetes/audit-policy/policy.yaml,要求在日志中用RequestResponse级别记录Pod变化,并记录kube-system中ConfigMap变更的请求消息体。
完成后提交master节点的用户名、密码和IP地址到答题框。
使用赛项提供的chinaskill-k8s-error01镜像创建一台云主机(云主机的登录用户名为root,密码为Abc@1234),该云主机中存在错误的容器服务,错误现象为无法正常使用crictl ps -l命令,请修复容器服务。修复完成后提交该云主机的用户名、密码和IP地址到答题框。
使用赛项提供的chinaskill-k8s-error01镜像创建一台云主机(云主机的登录用户名为root,密码为Abc@1234),该云主机中存在错误的DNS服务,错误现象为coredns一直处于CrashLoopBackOff状态,请修复CoreDNS服务,并将并发上限更改为5000。修复完成后提交该云主机的用户名、密码和IP地址到答题框。
【适用平台】私有云
Kubernetes Python运维脚本开发,使用Restful APIs方式管理service服务。
使用已经部署完成的Kubernetes两节点云平台,在Master节点安装Python 3.7.3的运行环境与依赖库。
使用python request库和Kubernetes Restful APIs,在/root目录下,创建api_manager_service.py文件,要求编写python代码,代码实现以下任务:
Kubernetes Python运维脚本开发-使用SDK方式管理Pod服务。
使用已经部署完成的Kubernetes两节点云平台,在Master节点安装Python 3.7.3的运行环境与依赖库。
使用Kubernetes python SDK的“kubernetes”Python库,在/root目录下,创建sdk_manager_deployment.py文件,要求编写python代码,代码实现以下任务:
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个方法:
基于前一题目的Competition CRD,使用已建好的Kubernetes Python运维开发环境,在/root目录下创建crd_object_manager.py脚本。crd_object_manager.py编写基于Kubernetes SDK 实现Competition CRD的自定义对象的创建、删除与事件变化监听。
crd_manager.py内部实现3个方法:
【适用平台】华为云
在公有云中完成虚拟私有云的创建。
具体要求如下:
登录华为云平台,创建两台云实例。
具体要求如下:
使用intnetX-mysql网络创建三台云服务器chinaskill-sql-1、chinaskill-sql-2和chinaskill-sql-3(系统使用CentOS7.9),使用提供的压缩文件mongodb-repo.tar.gz中的软件包源,在这三台云服务器上部署MongoDB数据库服务。
配置完成后提交连接chinaskill-sql-1节点的用户名、密码和公网IP地址到答题框。
在chinaskill-sql-1、chinaskill-sql-2和chinaskill-sql-3云服务器中配置MongoDB一主二从数据库+副本集操作,chinaskill-sql-1节点为主节点,其余节点为从节点,配置MongoDB集群名称为cloud。
完成后提交连接chinaskill-sql-1节点的用户名、密码和公网IP地址到答题框。
使用提供的压缩文件,安装Node.js环境。
使用提供的压缩文件rocketchat-cloud.tar.gz中软件包源,在ChinaSkill-node-1部署nodejs,根据所提供的rocket.chat所需要求安装nodejs对应版本。配置完成后提交
连接ChinaSkill-node-1节点的用户名、密码和公网IP地址到答题框。
根据要求,创建一个安全组。
具体要求如下:
使用http服务器提供文件,将Rocket.Chat应用部署上云。
使用http服务器提供的压缩文件rocketchat-cloud.tar.gz中的RocketChat软件包,在ChinaSkill-node-1中部署RocketChat的Web服务。使用chinaskill-sql-1的MongoDB为后端数据库,设置RocketChat服务访问端口为3000。完成Rocketchat系统上云后,将ChinaSkill-node-1节点的用户名、密码和公网IP地址到答题框。
根据要求创建一个公网NAT网关。
具体配置如下:
创建一个云服务器备份存储库名为server_backup,容量为100G。将ChinaSkill-node-1云服务器制作镜像文件chinaskill-image。
完成后,将当前的AK(SecretId)、SK(SecretKey)和存储库ID到答题框。
根据要求创建一个负载均衡器chinaskill-elb。
将ChinaSkill-node-1和ChinaSkill-node-2加入负载均衡的后端。设置一个可用的公网服务IP,服务端口为3000。配置监听器,监听3000端口。对浮动公共IP进行Web访问测试。完成后,提交当前的AK(SecretId)、SK(SecretKey)和负载均衡器的ID到答题框。
根据要求新建一个弹性伸缩启动配置。
具体要求如下:
创建一个伸缩组,具体要求如下:
为伸缩组as-exam新建告警触发策略,具体要求如下:
【适用平台】华为云
在公有云上,按照要求创建一个x86架构的容器云集群。
具体要求如下:
创建一个集群节点,节点配置信息要求如下:
创建完成后提交当前的AK(SecretId)、SK(SecretKey)和集群的ID到答题框。
使用插件管理在kcloud容器集群中安装dashboard可视化监控界面。
完成后,提交dashboard访问地址到答题框。
在kcloud集群中安装kubectl命令,使用kubectl命令管理kcloud集群。
完成后提交连接kcloud集群节点的用户名、密码和公网IP地址到答题框。
在k8s集群中创建chartmuseum命名空间,编写yaml文件部署ChartMuseum服务。
使用提供的helm软件包(软件包为helm-v3.3.0-linux-amd64.tar.gz在http服务下),在kcloud集群中安装helm服务。
完成后提交连接kcloud集群节点的用户名、密码和公网IP地址到答题框。
在k8s集群中创建chartmuseum命名空间,编写yaml文件部署ChartMuseum服务。
在k8s集群中创建chartmuseum命名空间,编写yaml文件在chartmuseum命名空间中使用chartmuseum:latest镜像创建本地私有chart仓库,设置其仓库存储目录为宿主机的/data/charts目录。编写service.yaml文件,为chart私有仓库创建Service访问策略,
定义其为ClusterIP访问模式。编写完成后启动chartmuseum服务。提交连接kcloud集群节点的用户名、密码和公网IP地址到答题框。
根据提供的chart包wordpress.tgz部署WordPress服务。
根据提供的chart包wordpress-13.0.23.tgz部署wordpress服务,根据chart包中内容创建wordpress所需要的pv,并修改其访问模式为NodePort。使用修改后的chart包创建wordpress服务。完成后提交连接kcloud集群节点的用户名、密码和公网IP地址到答题框。
【适用平台】华为云
创建一台云主机,并登录此云服务器,基于云服务器Python3.6.8运行环境,安装SDK依赖库。
通过华为云控制台,选择北京四区域,创建一台 x86 架构,“按需计费”的2核,4G,系统盘50G的云实例,实例名为chinaskill,选择镜像为CentOS 7.9 64bit(40GB),分配独立的公网IP,带宽选择按使用流量计费5M。登录此云服务器,在云服务器Python3.6.8环境上,安装华为云最新版本SDK的依赖库,包括弹性云服务、虚拟私有云、镜像服务、容器云引擎、云数据库的python库。
完成后提交“chinaskill”开发运行环境云主机的用户名、密码和 IP 地址到答题框。
编写Python代码,实现密钥对的创建。
在云服务器的/root/huawei/目录下编写create_keypair.py文件,使用SDK编写
Python代码,创建华为云的秘钥对,具体要求为:
完成后提交云服务器节点的用户名、密码和IP地址到答题框。
调用SDK云硬盘管理的方法,实现云主机的的增删查改。
在/root/huawei目录下编写create_block_store.py文件,使用SDK编写Python代码,调用创建华为云的云硬盘,具体要求如下:
完成后提交云服务器节点的用户名、密码和IP地址到答题框。
调用SDK云主机管理的方法,实现云主机的的增删查改。
使用已建好的运维开发环境,在/root/huawei目录下创建ecs_manager.py脚本,完成ECS云主机管理,ecs_manager.py程序支持命令行参数执行。
提示说明:华为云主机支持安装所需Python库。提交前答案前,需安装所开发程序所依赖的Python库。
完成后提交“chinaskill开发运行环境云主机”的用户名、密码和 IP 地址到答题框。
使用已建好的运维开发环境,可用区为华北-北京4,在/root/huaweicloud_fastapi目录下创建main.py文件,基于FastAPI框架,完成虚拟私有云VPC管理服务的封装,端口为7045。
提示说明:华为云主机支持安装所需Python库。提交前答案前,需安装所开发程序所依赖的Python库。
【适用平台】私有云
在本地http文件服务器中下载k8s-allinone-v1.22.1.qcow2镜像(该镜像启动后内置一个完整的kubernetes服务)并完成下列操作:
云主机申请完成之后,在提供的OBS访问域名中,下载软件包kubernetes_kubeedge.tar到云端节点并部署KubeEdge1.11边缘计算系统,在云端节点部署KubeEdge cloudcore云端模块、启动cloudcore服务并配置该服务可被systemd管理。完成后提交云端节点的IP地址、用户名和密码到答题框。
在本地OpenStack环境中申请两台CentOS7.9虚拟机做为KubeEdge的边缘端节点。主机名分别为edge-node1、edge-node2。在http文件服务器中下载kubernetes_kubeedge.tar软件包,使用该软件包在该虚拟机部署KubeEdge edgecore边端模块,并启动edgecore服务。加入成功之后,启用metrics监控服务。
完成后提交云端节点的IP地址、用户名和密码到答题框。
利用搭建好的边缘计算平台,在云端节点上使用提供的相关镜像(k8simage目录下)和yaml文件(kubeedge-counter-demo目录下),自行编写DeviceModel、Device资源,
要求如下:
DeviceModel名字为counter-model;
属性为status,类型为字符串,存储模式为读写模式,默认值为空;
Device名字为counter;
引用counter-model设备模型;
将此设备通过节点选择器与edge-node1节点进行绑定;
在status字段中的twins字段定义属性名称为status、理想值为“OFF”、真实值为“0”;
编写完成后,按照顺序分别部署好DeviceModel、Device以及云端计数应用控制器和计数应用。部署完成后,将计数器打开。
完成后提交云端节点的用户名、密码和IP到答题框。
【适用平台】私有云
使用华为云已搭建好的KubeEdge环境,安装Python 3.7.3运行环境,并安装开发所需的依赖包,使用提供的mongoRepo.tar.gz软件包在边端安装MongoDB数据库,设置数据库为任何机器都可以连接登录。
开发环境搭建好之后,将提供的代码包导入到Linux服务器root目录下,并打开fastapi_user工程目录进行用户管理服务开发,服务端口为8046,运行服务后,注册名为chinaskill的用户,密码为Abc@1234,手动启动代码运行服务。代码编写完成后提交该云主机的用户名、密码和IP地址到答题框。
使用现有的开发环境,将提供的代码包导入到Linux服务器root目录下,打开fastapi_ai_pcb工程目录,基于YOLO5与已训练的模型实现PCB缺陷AI识别服务,fastapi框架来定义PCB图片的缺陷检测接口,调用接口时,需要指定device实例名称和上传缺陷图片,当识别到缺陷图片后,返回图片base64编码后的数据、模型的名字、当前的上传时间、以及识别坐标的位置信息和实例名称。
然后打开fastapi_gateway工程目录,基于fastapi-gateway开源框架实现网关服
务,AI PCB微服务端口为8055,微服务网关端口30850,通过这个网关来访问用户管理服务和AI PCB识别服务,手动启动AI PCB和网关服务。
AI接口接口路径为:/detect/pcb_detect,参数传递到路径接口上,参数名为device_id。
识别图片在工程目录中的runs目录里。
代码编写完成后提交该云主机的用户名、密码和IP地址到答题框。
使用现有的开发环境,将提供的代码包导入到Linux服务器root目录下,打开fastapi_cloud_edge工程目录,基于FastAPI框架和Kubernetes SDK实现了一组API,主要针对KubeEdge拓展的CRD的资源进行访问封装,微服务端口为8045。
手动启动设备与设备模型管理服务。
代码编写完成后提交该云主机的用户名、密码和IP地址到答题框。
使用现有的开发环境,将提供的代码包导入到Linux服务器root目录下,打开fastapi_cloud_edge工程目录,在前面几道题的基础之上,对pcb_data_manager.py文件完善代码,要求如下:
将数据模型上传到数据库中,并返回该模型在数据库中的ID,若有相同模型则不上传;
定义接收边缘消息程序;
云端接收边端MQTT主题里所发送的数据,将数据进行解析,存储到MongoDB数据库中,并对云端pcb-device设备信息进行更新。
设备信息字段为pcb_model(模型名字)、pcb_status(设备状态)、pcb_result(模型在数据中的ID)、upload_time(识别图片的时间)
手动启动该服务。
使用现有的开发环境,将提供的代码包导入到Linux服务器root目录下,打开fastapi_cloud工程目录,基于FastAPI框架和Kubernetes SDK实现了一组API,来进行管理云端节点和边缘节点信息的后端服务,微服务端口为8047,编码要求功能如下:
定义获取云端节点信息的路由,接口为/cloud_edge_service/node/cloudnode,请求为GET,返回的数据类型为列表类型。
定义获取单个节点信息的路由,接口为/cloud_edge_service/node/{node_name},请
求为GET,返回数据类型为字典类型。
定义获取边缘节点信息的路由,接口为/cloud_edge_service/node/edgenode,请求为GET,返回数据类型为列表类型。
定义节点资源使用情况路由,接口为/cloud_edge_service/metrics/node/{node_name},请求为GET,返回获取到的资源使用情况,将任意一台边缘节点的主机名存储到/root/name.txt文件里。
手动启动云端节点管理服务。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。