好东西
【任务 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 地址到答题框。
- 点赞
- 收藏
- 关注作者
评论(0)