当前位置:   article > 正文

云计算赛项容器云_chinaskills_cloud_paas_v2.0.2.iso

chinaskills_cloud_paas_v2.0.2.iso

云计算赛项

B站ID:老白嫖大怪兽

【赛程名称】云计算赛项第二场-容器云

​ 说明:完成本任务需要两台安装了 CentOS7.9 操作系统的云主机:master 和 node。Chinaskill_Cloud_PaaS.iso 镜像包中有本次容器云部署所需的所有文件,运维所需的文件见附件。

​ 某公司技术部产品开发上线周期长,客户的需求经常得不到及时响应。引入 CICD (Continuous Integration 持续集成、Continuous Delivery 持续交付) 成了公司的当务之急,研 发团队决定搭建基于 Kubernetes 的 CICD 环境,希望基于这个平台来实现 DevOps 的部分流 程,来减轻开发、部署、运维的负担。

​ 为了能够让公司开发的 web 应用系统产品能够基于服务器的性能、可靠性、高可用性 与方便维护,研发部决定使用微服务架构,实现基于 Kubernetes 的容器化部署。

​ 节点规划如表所示。

节点角色主机名VCPUS内存硬盘IP地址
Master、Harbor、CICDmaster412G100G10.18.4.10
Worker Nodenode48G100G10.18.4.11

【任务 1】容器云平台搭建[5 分]

【题目 1】平台部署–部署容器云平台[1.5 分]

​ 登录 OpenStack 私有云平台,使用 CentOS7.9 镜像创建两台云主机,使用 kubeeasy 工具 完成 Kubernetes 1.22.1 集群的搭建。然后使用 nginx 镜像在 default 命名空间下创建一个名为 exam 的 Pod,并为该 Pod 设置环境变量 exam,其值为 2022。

​ 完成后提交 master 节点的用户名、密码和 IP 到答题框。

​ 部署kubernets 1.22.1集群

curl -O http://10.18.4.46/chinaskills_cloud_paas_v2.0.2.iso
mount chinaskills_cloud_paas_v2.0.2.iso /mnt
cp -rvf /mnt/* /opt
cp /opt/kubeeasy /usr/bin
kubeeasy --help

#[install dependencies package cluster]
  kubeeasy install dependencies \
  --host 10.18.4.10,10.18.4.11 \
  --user root \
  --password 000000 \
  --offline-file /opt/dependencies/base-rpms.tar.gz

#[install k8s cluster offline]
  kubeeasy install kubernetes \
  --master 10.18.4.10 \
  --worker 10.18.4.11  \
  --user root \
  --password 000000 \
  --version 1.22.1 \
  --offline-file /opt/kubernetes.tar.gz
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

​ 基础创建

kubectl run exam --image nginx:latest --env="exam=2022" --image-pull-policy='IfNotPresent'
  • 1

【题目 2】平台部署–部署 Istio 服务网格[0.5 分]

​ 在 Kubernetes 集群上完成 Istio 服务网格环境的安装,然后新建命名空间 exam,为该命名空间开启自动注入 Sidecar。

kubeeasy add --istio istio

#创建exam命名空间
kubectl create ns exam
#通过为命名空间打标签来实现自动注入
kubectl label ns exam istio-injection=enabled
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分]

​ 在 Kubernetes 集群上完成 KubeVirt 虚拟化环境的安装。 完成后提交 master 节点的用户名、密码和 IP 到答题框。

kubeeasy add --virt kubevirt
  • 1

【题目 4】平台部署–部署 Harbor 仓库及 Helm 包管理工具[1 分]

​ 在 master 节点上完成 Harbor 镜像仓库及 Helm 包管理工具的部署。然后使用 nginx 镜像 自定义一个 Chart,Deployment 名称为 nginx,副本数为 1,然后将该 Chart 部署到 default 命名空间下,Release 名称为 web。 完成后提交 master 节点的用户名、密码和 IP 到答题框。

#[add harbor]
kubeeasy add --registry harbor
  • 1
  • 2

​ helm部署nginx应用

#使用helm工具创建nginx项目
helm create nginx
rm -rf  nginx/templates/*

#创建deployment模板
kubectl create deployment nginx -oyaml --image=nginx:latest --replicas=1  --dry-run --port=80 > /root/nginx/templates/deployment.yaml

cat > /root/nginx/templates/deployment <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
EOF

#创建helm应用的文档简介
cat > /root/nginx/templates/NOTES.txt <<EOF
name: nginx
EOF

#部署以Release为web命名的helm任务
cd /root
helm install web nginx
helm uninstall web 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

【题目 5】集群管理–备份 ETCD 数据[1 分]

​ Kubernetes 使用 ETCD 来存储集群的实时运行数据,为防止服务器宕机导致 Kubernetes 集群数据丢失,请将 Kubernetes 集群数据备份到/root/etcd.db 中。 完成后提交 master 节点的 IP 地址、用户名和密码到答题框。

​ 备份etcd数据需要集群中有etcdctl的命令行工具。这个工具的获取方式可以是在官网中找对应部署etcd镜像的etcd的源码包。链接如下:https://github.com/etcd-io/etcd/releases。但是这种方式下载很慢,并且不能保证赛项提供了这个包。所以可以使用我的这种方式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fnMBiF7x-1663287248664)(image/image-20220709082726158.png)]

检查etcd状态:

#查看etcd集群成员列表
ETCDCTL_API=3 /usr/local/bin/etcdctl \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 --cert=/etc/kubernetes/pki/etcd/server.crt \
 --key=/etc/kubernetes/pki/etcd/server.key \
 --endpoints="https://127.0.0.1:2379"  member list

#查看etcd端点状态
ETCDCTL_API=3 /usr/local/bin/etcdctl \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 --cert=/etc/kubernetes/pki/etcd/server.crt \
 --key=/etc/kubernetes/pki/etcd/server.key \
 --endpoints="https://127.0.0.1:2379"  endpoint status   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

开始备份etcd数据:

#基础格式
ETCDCTL_API=3 etcdctl \
--cacert="${CACERT}" --cert="${CERT}" --key="${KEY}" \
--endpoints=${ENDPOINTS} \
snapshot save /root/etcd.db
  • 1
  • 2
  • 3
  • 4
  • 5
ETCDCTL_API=3 /usr/local/bin/etcdctl \
 --cacert=/etc/kubernetes/pki/etcd/ca.crt \
 --cert=/etc/kubernetes/pki/etcd/server.crt \
 --key=/etc/kubernetes/pki/etcd/server.key \
 --endpoints="https://127.0.0.1:2379" snapshot save /root/etcd.db
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/70451
推荐阅读
相关标签
  

闽ICP备14008679号