容器云
【任务 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 分。
版权归原作者 huhy~ 所有, 如有侵权,请联系我们删除。