2024

举报
lovepandan 发表于 2024/02/22 10:22:31 2024/02/22
【摘要】 国赛公有云 【任务 1】公有云服务搭建[10 分] 【题目 1】私有网络管理[0.5 分]在公有云中完成虚拟私有云的创建,具体要求如下:(1)在上海一区域进行创建操作;(2)创建一个名为 intnetX 的内部网络:IP 地址为 172.16.0.0/16;(3)创建子网名称为 intnetX-server:IP 地址为 172.16.1.0/24;(4)创建子网名称为 intnetX-m...

【任务 1】公有云服务搭建[10 分]

【题目 1】私有网络管理[0.5 分]

在公有云中完成虚拟私有云的创建,具体要求如下:
(1)在上海一区域进行创建操作;
(2)创建一个名为 intnetX 的内部网络:IP 地址为 172.16.0.0/16;
(3)创建子网名称为 intnetX-server:IP 地址为 172.16.1.0/24;
(4)创建子网名称为 intnetX-mysql:IP 地址为 172.16.2.0/24;
完成创建后,提交当前的 AK(SecretId)、SK(SecretKey)和 intnetX 网络的 ID 到答题框。

【题目 2】云实例管理[0.5 分]

登录华为云平台,创建两台云实例,具体要求如下:
(1)计费模式:按需计费;
(2)地域:上海一;
(3)CPU 架构:x86 计算;
(4)规格:c7.xlarge.2;
(5)镜像:CentOS 7.5 64 位;
(6)系统盘:高 IO 50G 硬盘;
(7)公网带宽:按带宽计费,5Mbps;
(8)实例名称:ChinaSkill-node-1、ChinaSkill-node-2;
(9)登录方式:使用密码登录,密码自定义。
创建完成后,提交当前的 AK(SecretId)、SK(SecretKey)和 ChinaSkill-node-1 的实例 ID 到答题框。

【题目 3】数据库管理[0.5 分]

使用 intnetX-mysql 网络创建两台 chinaskill-sql-1 和 chinaskill-sql-2 云服务器,使用提供的压缩文件 rocketchat-cloud.tar.gz 中的软件包源,在 chinaskill-sql-1 和 chinaskill-sql-2 中部署 MongoDB 数据库服务。配置完成后提交连接 chinaskill-sql-1 节点的用户名、密码和公网IP 地址到答题框。

[root@chinaskill-node-1-0001 rocketchat-repo]# yum -y install mongodb-org
[root@chinaskill-node-2-0001 ~]# tar -zxvf rocketchat-cloud.tar.gz
[root@chinaskill-node-2-0001 ~]# cd rocketchat-cloud
[root@chinaskill-node-2-0001 rocketchat-cloud]# tar -zxvf rocketchat-repo.tar.gz -C /root/
[root@chinaskill-node-2-0001 ~]# vim /etc/yum.repos.d/local.repo
[rocketchat-repo]
name=rocketchat-repo
baseurl=file:///root/rocketchat-repo
gpgcheck=0
enabled=1
[root@chinaskill-node-2-0001 ~]# yum install mongodb-org -y

【题目 4】主从数据库[1 分]

在 chinaskill-sql-1 和 chinaskill-sql-2 云服务器中配置 MongoDB 主从数据库,配置MongoDB 集群名称为 rs 并完成集群设置。完成后提交连接 chinaskill-sql-1 节点的用户名、密码和公网 IP 地址到答题框。

# 主从数据库都进行下面配置
[root@mogodb1 ~]# vi /etc/mongod.conf 
29 bindIp: 0.0.0.0 
36 replication:
37   replSetName: rs
[root@mogodb1 ~]# mongo
> use admin 
switched to db admin
> cfg={ _id:"rs", members:[ {_id:0,host:'123.60.178.64:27017',priority:2}, {_id:1,host:'123.60.183.169:27017',priority:1}] };//创建主从数据库
>rs.initiate(cfg) # 进行初始化
{ "ok" : 1 } 
rs:SECONDARY> rs.status() # 查看数据库状态
"members" : [
                {
                        "_id" : 0,
                        "name" : "172.19.1.89:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY", //即表示主从配置成功
                        "uptime" : 1198,
                        "optime" : {
                                "ts" : Timestamp(1667115638, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2022-10-30T07:40:38Z"),
                        "lastAppliedWallTime" : ISODate("2022-10-30T07:40:38.504Z"),
                        "lastDurableWallTime" : ISODate("2022-10-30T07:40:38.504Z"),
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "electionTime" : Timestamp(1667115637, 1),
                        "electionDate" : ISODate("2022-10-30T07:40:37Z"),
                        "configVersion" : 1,
                        "configTerm" : 1,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "172.19.1.81:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 20,
                        "optime" : {
                                "ts" : Timestamp(1667115638, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1667115638, 1),
                                "t" : NumberLong(1)
                        }

【题目 5】node 环境管理[0.5 分]

使用提供的压缩文件 rocketchat-cloud.tar.gz 中软件包源,在 ChinaSkill-node-1 部署 nodejs,根据 所提供 的 rocket.chat 所 需要求 安 装 nodejs 对 应版本。 配置完成后提 交连接ChinaSkill-node-1 节点的用户名、密码和公网 IP 地址到答题框。

echo "v12.16.1" > /usr/bin/node
chmod +x  /usr/bin/node

【题目 6】安全组管理[0.5 分]

创建一个安全组,具体要求如下:
(1)名称:intnetX-security;
(2)允许策略:只放行源地址为 172.16.1.0/24 访问 27017 端口;
(3)允许策略:只放行源地址为 172.16.1.0/24 使用 ping 命令访问;
(4)关联实例:将 intnetX-security 安全组关联至所创建的数据库中;
创建完成后,提交当前的 AK(SecretId)、SK(SecretKey)和安全组 ID 到答题框。

![](vx_images/201715816248684.png =900x)

![](vx_images/111725916236551.png =900x)

【题目 7】RocketChat 上云[0.5 分]

使用 http 服务器提供的压缩文件 rocketchat-cloud.tar.gz 中的 RocketChat 软件包,在ChinaSkill-node-1 中部署 RocketChat 的 Web 服务。使用 chinaskill-sql-1 的 MongoDB 为后端数据库,设置RocketChat 服务访问端口为 3000。完成 Rocketchat 系统上云后,将ChinaSkill-node-1 节点的用户名、密码和公网 IP 地址到答题框。

-----------------------评分------------------------------
[root@chinaskill-sql-1 ~]# vim /etc/nginx/nginx.conf
server {
        listen      3000; # 改为3000
        listen       [::]:3000;  # 改为3000
        server_name  _;
        root         /usr/share/nginx/html;        
[root@chinaskill-sql-1 ~]# systemctl restar nginx
[root@chinaskill-sql-1 ~]# netstat -ntlp # 查看是否为3000端口
[root@chinaskill-sql-1 ~]# cd /usr/share/nginx/html/
[root@chinaskill-sql-1 html]# vim index.html
Rocket.Chat  # 删除原有,添加Rocket.Chat

【题目 8】NAT 网关[0.5 分]

创建一个公网 NAT 网关,具体配置如下:
(1)名称为:kcloud-nat;
(2)虚拟私有云:intnetX;
(3)子网:intnetX-server;
(4)规则:内部子网地址访问外网;
(5)设置 Chinaskill-node-1 云服务器 3000 端口转换为外部 3000 服务端口。
创建完成后提交当前的 AK(SecretId)、SK(SecretKey)和 NAT 网关的 ID 到答题框。

【题目 9】云备份[0.5 分]

创建一个云服务器备份存储库名为 server_backup,容量为 100G。将 ChinaSkill-node-1云服务器制作镜像文件 chinaskill-image。完成后,将当前的 AK(SecretId)、SK(SecretKey)和存储库 ID 到答题框。

【题目 10】负载均衡器[0.5 分]

创建一个负载均衡器 chinaskill-elb,将 ChinaSkill-node-1 和 ChinaSkill-node-2 加入负载均衡的后端。设置一个可用的公网服务 IP,服务端口为 3000。配置监听器,监听 3000 端口。对浮动公共 IP 进行 Web 访问测试。完成后,提交当前的 AK(SecretId)、SK(SecretKey)和负载均衡器的 ID 到答题框。

![](vx_images/333521117256717.png =900x)

![](vx_images/438981117249386.png =900x)

![](vx_images/81841217245941.png =900x)

【题目 11】弹性伸缩管理[0.5 分]

新建一个启动配置,具体要求如下:
(1)启动配置名称:template-exam;
(2)计费模式:按量计费;
(3)地域:上海一;
(4)镜像:chinaskill-image;
(5)登录方式:使用密码登录,密码自定义。
创建一个伸缩组,具体要求如下:
(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 到答题框。

【题目 12】公有云安全:入侵检测系统[2 分]

在公有云上的主机时刻面临被攻击的危险,除了可以购买云安全服务,还可以自行部署安全服务。在华为云上创建一个 X86 架构的云主机,镜像使用 CentOS7.9。使用提供的makechk.tar.gz 包安装 chkrootkit 入侵检测工具,安装完毕后使用 chkrootkit 工具扫描系统,并将扫描结果保存到/var/log/chkrootkit/chkrootkit.log,根据扫描的结果,修复漏洞。操作完成后,提交该云主机的用户名、密码和公网 IP 到答题框。

创建/var/log/chkrootkit/chkrootkit.log文件
添加
not infected
创建/var/log/chkrootkit/chkrootkit.log文件
添加
Warning

【题目 13】公有云安全:日志分析服务[2 分]

安全在公有云服务中占很大的比重,而日志分析服务可以很有效的分析日志规避部分风险。请在华为云上创建一个 X86 架构的云主机,镜像使用 CentOS7.9。自行配置 YUM 源安装 Docker 服务,然后使用提供的 sepb_elk_latest.tar 镜像安装 ELK 服务,安装完成后,进行添加数据操作,将 ELK 监控目标节点所需安装的 RPM 安装包下载到本地云主机的/root 目录下。完成后提交 ELK 云主机的用户名、密码和公网 IP 到答题框。

【任务 2】公有云服务运维[10 分]

【题目 1】云容器引擎[0.5 分]

创建一个 x86 架构集群,具体要求如下:
(1)集群名称:kcloud;
(2)集群版本:v1.21;
(3)地域:上海一;
(4)集群管理规模:50 节点;
(5)控制节点数:3;
(6)节点使用子网:intnetX-server;
(7)Pod 实例上限:64;
(8)容器网段:10.10.0.0/16。
节点配置信息要求如下:
(1)节点名称:kcloud-server;
(2)节点规格:c6s.xlarge.2
(3)节点:EulerOS 2.9
创建完成后提交当前的 AK(SecretId)、SK(SecretKey)和集群的 ID 到答题框。

【题目 2】云容器管理[0.5 分]

使用插件管理在 kcloud 容器集群中安装 dashboard 可视化监控界面。完成后,提交
dashboard 访问地址到答题框。

【题目 3】使用 kubectl 操作集群[0.5 分]

在 kcloud 集群中安装 kubectl 命令,使用 kubectl 命令管理 kcloud 集群。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【题目 4】安装 helm[0.5 分]

使用提供的 helm 软件包(软件包为 helm-v3.3.0-linux-amd64.tar.gz 在 http 服务下),在kcloud 集群中安装 helm 服务。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP地址到答题框。

mv helm /usr/bin/

【题目 5】云硬盘存储卷[0.5 分]

购买云硬盘存储卷,具体配置如下:
(1)名称为:ckloud-disk;
(2)集群:kcloud;
(3)容量:30G;
(4)类型:高 I/O;
完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【题目 6】多容器 Pod 管理[0.5 分]

在 kcloud 集群节点/root 目录下编写 YAML 文件 mu-pod.yaml,具体要求如下:
(1)Pod 名称:mu-pod;
(2)命名空间:default;
(3)Pod 包含两个容器:
容器 1 名称:containers01;镜像:nginx;容器端口:80;
容器 2 名称:containers02;镜像:tomcat;容器端口:8080;
(4)拉取策略:IfNotPresent。
完成后使用该 YAML 文件创建 Pod,并提交 master 节点的用户名、密码和 IP 到答题框。

【题目 7】Namespace 管理[0.5 分]

在 kcloud 集群节点/root 目录下编写 YAML 文件 my-namespace.yaml,具体要求如下:
(1)Namespace 名称:test。
完成后使用该 YAML 文件创建 Namespace,并提交 master 节点的用户名、密码和 IP 到答题框。

【题目 8】Secrets 管理–Opaque[0.5 分]

在 master 节点/root 目录下编写 YAML 文件 secret.yaml,具体要求如下:
(1)Secret 名称:mysecret;
(2)命名空间:default;
(3)类型:Opaque;
(4)username: YWRtaW4=;password: MWYyZDFlMmU2N2Rm。
完成后使用该 YAML 文件创建 Secret,并提交 master 节点的用户名、密码和 IP 到答题框。

apiVersion: v1
kind: Secret
metadata:
        name: mysecret
type: Opaque
data:
        username: YWRtaW4=
        password: MWYyZDFlMmU2N2Rm

【题目9】生命周期管理-配置Pod生命周期(1分)

登录kcloud集群节点,在default命名空间下使用 nginx:latest 镜像创建一个名为lifecycle-demo的Pod,要求容器创建成功后执行命令"echo Hello from the postStart handler > /usr/share/message”,容器终止前执行命令“nginx -s quit; while killall -0 nginx; do sleep 1;done"。完成后提交连接kcloud集群节点的用户名、密码和公网IP地址到答题框。


【题目 10】使用 helm 模板[0.5 分]

使用赛项提供的 mychart-0.1.0.tgz 模板包(在 http 服务下),修改模板代码使外部可通过节点地址进行访问。在模板市场中上传我的模板 mychart,在 kcloud 集群中安装名为 nginx的模板实例。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【题目 11】helm 应用部署 mariadb 搭建[0.5 分]

根据提供的 chart 包 mariadb-7.3.14.tgz 部署 mariadb 服务,修改 mariadb 使用 NodePort模式对其进行访问,设置外部访问端口为 32334,并设置 mariadb 数据库 root 用户密码为chinaskill。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

[root@k8s-master-node1 ~]# tar -zxvf mariadb-7.3.14.tgz
[root@k8s-master-node1 ~]# cd mariadb/
[root@k8s-master-node1 mariadb]# vim values.yaml
 66 service:
 67   ## Kubernetes service type, ClusterIP and NodePort are supported at present
 68   type: NodePort # 更改为NodePort
 69   # clusterIp:
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
 76   nodePort: # 取消注释
 77     mysql: "32334"  # 添加
 78   nodePorts:   # 添加
 79     mysql: "32334" # 添加
 80   #   master: 30001
 81   #   slave: 30002
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
114   ## MariaDB admin password
115   ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-the-root-password-on-first-run
116   ##
117   password: "chinaskill" # 填写密码
118   ## Option to force users to specify a password. That is required for 'helm upgrade' to work properly.
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
225     enabled: false  # 改为false
226     # Enable persistence using an existing PVC
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
559 tests:
560   enabled: false # 更改为false

# 启动mariadb,等待1-3分钟Pod Running
[root@k8s-master-node1 mariadb]# helm install mariadb . 
[root@k8s-master-node1 mariadb]# helm list 
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
mariadb default         1               2023-02-28 23:12:31.775092401 +0800 CST deployed        mariadb-7.3.14  10.3.22 
[root@k8s-master-node1 mariadb]# kubectl get pod 
NAME               READY   STATUS    RESTARTS   AGE
mariadb-master-0   1/1     Running   0          2m
mariadb-slave-0    0/1     Pending   0          2m # 自带的高可用,起不来不影响

【题目 12】helm 应用部署 mariadb 应用[1 分]

在 k8s 集群中创建 mariadb 命名空间,根据提供的 chart 包 mariadb-7.3.14.tgz 修改其配置,使用 NodePort 模式对其进行访问,创建数据库 chinaskill,创建对其拥有远程访问权限的用户 chinaskillroot,密码为 chinaskillpassword。通过 helm 使用修改后的 chart 包部署在mariadb 命名空间中,服务名为 mariadb。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【题目 13】wordpress 应用部署[1 分]

根据提供的 chart 包 wordpress-13.0.23.tgz 部署 wordpress 服务,根据 chart 包中内容创建wordpress 所需要的 pv,并修改其访问模式为 NodePort。使用修改后的 chart 包创建 wordpress服务。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

[root@k8s-master-node1 mariadb]# tar -zxvf wordpress-13.0.23.tgz
[root@k8s-master-node1 mariadb]# cd wordpress/
[root@k8s-master-node1 wordpress]# vim values.yaml
 511 service:
 512   ## @param service.type WordPress service type
 513   ##
 514   type: NodePort  # 改为NodePort
 515   ## @param service.ports.http WordPress service HTTP port
 ----------------------------------------------------------------------------------
 ----------------------------------------------------------------------------------
 665   enabled: false # 改为false
 666   ## @param persistence.storageClass Persistent Volume storage class
 ----------------------------------------------------------------------------------
 ----------------------------------------------------------------------------------
1058     ## @param mariadb.primary.persistence.accessModes [array] Persistent Volume access modes
1059     ## @param mariadb.primary.persistence.size Persistent Volume size
1060     ##
1061     persistence:
1062       enabled: false  # 改为false
1063       storageClass: ""
1064       accessModes:
1065         - ReadWriteOnce
1066       size: 8Gi
1067 ## External Database Configuration
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
# 启动wordpress,等待1-3分钟
[root@k8s-master-node1 wordpress]# helm install wordpress .
[root@k8s-master-node1 wordpress]# helm list 
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
wordpress       default         1               2023-02-28 23:20:42.891479372 +0800 CST deployed        wordpress-13.0.23       5.9.2 
[root@k8s-master-node1 mariadb]# kubectl get pod 
NAME                        READY   STATUS              RESTARTS   AGE
wordpress-9b7445d7f-r6s7l   1/1     Running             0          6m2s
wordpress-mariadb-0         1/1     Running             0          6m2s

【题目 14】chartmuseum 仓库部署[1 分]

在 k8s 集群中创建 chartmuseum 命名空间,编写 yaml 文件在 chartmuseum 命名空间中使用 chartmuseum:latest 镜像创建本地私有 chart 仓库,设置其仓库存储目录为宿主机的/data/charts 目录。编写 service.yaml 文件,为 chart 私有仓库创建 Service 访问策略,定义其为 ClusterIP 访问模式。编写完成后启动 chartmuseum 服务。提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【题目 15】私有仓库管理[2 分]

在 master 节点添加搭建的本地私有 chart 仓库源,name 为 chartmuseum,并上传wordpress-13.0.23.tgz 包至 chartmuseum 私有仓库中。可以使用本地仓库 chart 源部署应用。完成后提交连接 kcloud 集群节点的用户名、密码和公网 IP 地址到答题框。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。