2022云计算国赛-容器云平台搭建

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

在这里插入图片描述

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

登录OpenStack 私有云平台,使用 CentOS7.9 镜像创建两台云主机,使用 kubeeasy 工具完成Kubernetes 1.22.1 集群的搭建。然后使用 nginx 镜像在 default 命名空间下创建一个名为exam 的Pod,并为该 Pod 设置环境变量 exam,其值为 2022。
完成后提交 master 节点的用户名、密码和 IP 到答题框。


#两台节点,将提供的安装包 chinaskills_cloud_paas_v2.0.2.iso 上传至 master 节点/root 目录,并解压 到/opt 目录


[root@localhost ~]# mount -o loop chinaskills_cloud_paas_v2.0.2.iso /mnt/ [root@localhost ~]# cp -rfv /mnt/* /opt/ [root@localhost ~]# umount /mnt/


#安装 kubeeasy已经依赖
[root@localhost ~]# mv /opt/kubeeasy /usr/bin/kubeeasy
[root@localhost ~]# kubeeasy install depend  --host 10.24.2.10,10.24.2.11  --user root  --password 000000  --offline-file /opt/dependencies/base-rpms.tar.gz

--host:所有主机节点 IP,如:10.24.1.2-10.24.1.10,中间用“-”隔开,表示 10.24.1.2 到 10.24.1.10 范围内的所有 IP。若 IP 地址不连续,则列出所有节点 IP,用逗号隔开,如: 10.24.1.2,10.24.1.7,10.24.1.9。 
--user:主机登录用户,默认为 root。 
--password:主机登录密码,所有节点需保持密码一致。 
--offline-file:离线安装包路径。

#配置 SSH 免密钥
[root@localhost ~]# kubeeasy create ssh-keygen  --master 10.24.2.10  --worker 10.24.2.11  --user root --password 000000


#部署 Kubernetes 集群
[root@localhost ~]# kubeeasy install kubernetes  --master 10.24.2.10  --worker 10.24.2.11  --user root  --password 000000  --version 1.22.1  --offline-file /opt/kubernetes.tar.gz

#查看集群信息
[root@k8s-master-node1 ~]# kubectl cluster-info 
Kubernetes control plane is running at https://apiserver.cluster.local:6443 CoreDNS is running at https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

# 参数解释
--master:Master 节点 IP。 
--worker:Node 节点 IP,如有多个 Node 节点用逗号隔开。 
--version:Kubernetes 版本,此处只能为 1.22.1。
#创建pod

kubectl run exam --image=nginx --env=exam=2022 --namespace=default

1.Kubernetes 集群部署成功得 1 分;
2.Pod 创建成功且环境变量设置正确得 0.5 分。

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

1.Kubernetes 集群部署成功得 1 分;
2.Pod 创建成功且环境变量设置正确得 0.5 分。

在 Kubernetes 集群上完成 Istio 服务网格环境的安装,然后新建命名空间 exam,为该命名空间开启自动注入 Sidecar。
完成后提交 master 节点的用户名、密码和 IP 到答题框。

[root@k8s-master-node1 ~]# kubeeasy add --istio istio

创建名为 exam 的命名空间:
kubectl create namespace exam

创建一个名为 default 的 ServiceAccount,用于将 Sidecar 自动注入到该命
名空间的所有 Pod 中:
kubectl create serviceaccount default -n exam

创建一个名为 istio-injection 的标签,用于指示 Kubernetes 在将 Pod 部署到 exam 命名空间时自动注入 Sidecar:
kubectl label namespace exam istio-injection=enabled

验证命名空间已经成功标记为自动注入 Sidecar
kubectl get namespace -L istio-injection

1.Istio 所有组件运行成功得 0.3 分;
2.命名空间 exam 自动注入成功得 0.2 分。

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

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

[root@k8s-master-node1 ~]# kubeeasy add --virt kubevirt

1.KubeVirt 所有组件运行成功得 1 分。

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

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

[root@k8s-master-node1 ~]# kubeeasy add --registry harbor

1,创建一个新的 Chart:使用 Helm 命令行工具创建一个新的 Chart,命名为 nginx:

helm create nginx

2,在 Chart 的 templates 目录下创建一个 Deployment YAML 文件:创建一个新的 YAML 文件,命名为 deployment.yaml,将以下内容添加到文件中:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

3,更新 Chart 的 values.yaml 文件:打开 Chart 的 values.yaml 文件,将以下内容添加到文件中:

image:
  repository: nginx
  tag: latest

4,部署 Chart:使用以下命令将 Chart 部署到 default 命名空间下,Release 名称为 web:

helm install web nginx --namespace=default

1.Harbor 仓库部署成功得 0.5 分;
2.Helm 工具安装成功得 0.2 分;
3.Chart 包部署成功得 0.3 分。

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

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

sudo ETCDCTL_API=3 etcdctl snapshot save /root/etcd.db 
--endpoints=<etcd-endpoint> 
--cacert=/etc/kubernetes/pki/etcd/ca.crt 
--cert=/etc/kubernetes/pki/etcd/server.crt 
--key=/etc/kubernetes/pki/etcd/server.key

其中,<etcd-endpoint>应替换为ETCD集群的终端节点地址。如果您的Kubernetes集群使用自签名证书,
还需要相应地更改--cacert,--cert和--key参数。

1.etcdctl 工具安装成功得 0.2 分;
2.ETCD 数据备份成功得 0.8 分。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>