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

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

说明:完成本任务需要两台安装了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. 集群部署完成后,检查集群所有证书过期时间。
    任务二、容器云应用部署任务(15分)
    题目2. 容器云应用(7分)
    云梦公司开发了一套基于SpringBoot+MyBatis微服务架构的ChinaSkillsMall电商系统,并实现全容器化部署,ChinaSkillsMall电商应用系统架构图如下:
*模块**说明*
mall-monitor监控中心
mall-gateway微服务网关
mall-auth认证中心
mall-admin商城后台服务
mall-portal商城前台服务

在这里插入图片描述

请将以上组件按照要求进行容器化。

  1. 编写Dockerfile构建chinaskill-mariadb:v1.1镜像,要求使用基础镜像centos:centos7.9.2009,安装并初始化MariaDB,密码为123456,设置数据库编码为UTF-8,开放端口3306,并设置服务开机自启。

  2. 编写Dockerfile文件构建chinaskill-redis:v1.1镜像,要求使用基础镜像centos:centos7.9.2009,安装Redis服务,设置Redis免密,并关闭保护模式,开放端口:6379,并设置服务开机自启。

  3. 编写Dockerfile文件构建chinaskill-nacos:v1.1镜像,要求使用基础镜像centos:centos7.9.2009,安装jdk工具和nacos-server工具,并设置nacos服务开机自启。

  4. 编写Dockerfile文件构建chinaskill-nginx:v1.1镜像,要求使用基础镜像centos:centos7.9.2009,安装nginx服务,将提供的文件拷贝到/usr/share/nginx/html目录下,并设置nginx服务开机自启。

  5. 编写docker-compose.yaml文件,使用以上镜像编排部署ChinaSkillsMall商城。
    题目3. 基于Kubernetes构建CICD(8分)
    该公司决定采用GitLab + Jenkins + Helm + Harbor + Kubernetes架构来构建CICD环境,以缩短新功能开发上线周期,及时满足客户的需求,实现DevOps的部分流程,来减轻部署运维的负担,实现可视化容器生命周期管理、应用发布和版本迭代更新,请完成CICD环境部署。CICD完整流程如下:
    在这里插入图片描述

  6. 完成Helm3工具的安装。

  7. 配置GitLab配置清单文件,使用Helm3将Gitlab服务安装到Kubernetes集群中,创建项目,并配置SSH Key。

  8. 配置Jenkins配置清单文件,使用Helm3将Jenkins服务安装到Kubernetes集群中,并完成BlueOcean工具的安装。

  9. 在Jenkins中配置Pod Template和Container Template,使其能够动态生成 Slave Pod。

  10. 使用BlueOcean方式完成CI/CD工作,新建Jenkinsfile文件,包含clone代码、测试、代码构建、构建Docker镜像、推送镜像和Deploy更新服务 6个阶段。

  11. 将提供的代码push到GitLab中触发自动构建,实现基于Helm3工具自动将构建的服务发布到Kubernetes集群中。
    任务三、容器云服务运维任务(10分)
    题目4. Kubernetes基于容器的运维(6分)

  12. 默认情况下,Pod能够使用集群节点全部可用计算资源,请设置为系统守护进程kube-reserved和system-reserved预留500m CPU、1Gi memory和1Gi ephemeral-storage计算资源。

  13. 在master节点/root目录下编写YAML文件init-pod.yaml创建Pod,具体要求如下:
    (1)Pod名称:nginx;
    (2)镜像:busybox;
    (3)添加一个Init Container,Init Container的作用是创建一个空文件;
    (4)Pod的Containers判断文件是否存在,不存在则退出。
    完成后使用该YAML文件创建Pod。

  14. 在master节点/root目录下编写YAML文件创建Pod,具体要求如下:
    (1)Pod名称:exam;
    (2)镜像:nginx;
    (3)Volume名称为cache-volume,将其/data目录挂载到宿主机/data目录下。
    完成后使用该YAML文件创建Pod。

  15. 在master节点/root目录下编写YAML文件nginx-deployment.yaml创建Deployment,具体要求如下:
    (1)Deployment名称:nginx;
    (2)保证其副本在每个节点上运行,且不覆盖节点原有的Tolerations。
    完成后使用该YAML文件创建Deployment。

  16. 在master节点/root目录下编写YAML文件nginx-service.yaml为上一题的Deployment创建一个Service,具体要求如下:
    (1)Service名称:nginx;
    (2)以ClusterIP方式访问服务。
    完成后使用该YAML文件创建Service。

  17. 在master节点/root目录下编写YAML文件quota.yaml创建StorageQuota,具体要求如下:
    (1)StorageQuota名称:storagequota;
    (2)限制命名空间exam的PVC数目为10;
    (3)限制命名空间exam累计存储容量为20Gi。
    完成后使用该YAML文件创建StorageQuota。

  18. 在master节点/root目录下编写YAML文件pv.yaml创建PV,具体要求如下:
    (1)PV名称:pv-local;
    (2)回收策略:Delete;
    (3)访问模式:RWO;
    (4)挂载路径:node节点/data/k8s/localpv;
    (5)卷容量:5G。
    完成后使用该YAML文件创建PV。

  19. 在Kubernetes集群中完成httpbin样例程序的部署,然后在master节点/root目录下编写YAML文件istio.yaml创建默认路由策略,具体要求如下:
    (1)路由策略名称:httpbin;
    (2)将100%流量路由到服务的v1版本;
    (3)将100%的相同流量镜像到服务的v2版本。
    完成后使用该YAML文件创建路由策略。
    题目5. Kubernetes基于虚拟机的运维(4分)
    根据Garnter的最新预测,到2022年将会有75%的生产应用全部跑在容器环境之上。由于技术原因,某公司的多数架构仍运行在虚拟机上。经过技术调研,KubeVirt支持完全的虚拟机纳管,可以完美迁移因为内核版本过于陈旧或者及语言问题而无法迁移到容器的部分应用,所以公司决定将业务全部迁移到Kubernetes集群中。
    1.使用提供的OpenStack qcow2镜像,在master节点/root目录下编写YAML文件vm.yaml创建VM,具体要求如下:
    (1)VM名称:exam-vm;
    (2)将SSH密钥放入Kubernetes密钥并注入到VM中;
    (3)内存为2Gi,CPU为1000m。
    完成后使用该YAML文件创建VM。

  20. 在KubeVirt中启用快照/恢复支持功能,然后在master节点/root目录下编写YAML文件snap.yaml为虚拟实例exam创建一个快照,具体要求如下:
    (1)快照名称:exam-snap;
    (2)创建快照超时时间:1min。
    完成后使用该YAML文件为虚拟实例exam创建快照。

  21. 在master节点/root目录下编写YAML文件vmi-role.yaml创建RBAC角色,具体要求如下:
    (1)角色名称:vm-role;
    (2)该角色对VM拥有get、delete、create、update、patch和list权限。
    完成后使用该YAML文件创建角色。
    任务四、容器云运维开发任务(10分)(本任务为4-6道Kubernetes APIs 运维开发题,只公布考试范围,不公布赛题)
    题目6. Kubernetes APIs 运维开发(10分)
    编写Python脚本,调用Kubernetes API实现对Kubernetes容器云平台进行管理和运维。

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔Sec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值