互联网金融网站开发,中国互联网域名注册服务机构,博客园 wordpress,中国世界排名前200的大学名单【任务 1】容器云平台搭建[5 分] 【题目 1】平台部署–部署容器云平台[1.5 分] 【题目 2】平台部署–部署 Istio 服务网格[0.5 分] 【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分] 【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分] 【题目 5】集群管理–备份 ET…【任务 1】容器云平台搭建[5 分] 【题目 1】平台部署–部署容器云平台[1.5 分] 【题目 2】平台部署–部署 Istio 服务网格[0.5 分] 【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分] 【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分] 【题目 5】集群管理–备份 ETCD 数据[1 分]
【任务 1】容器云平台搭建[5 分]
1安装Docker Kubernetes默认的容器运行时仍然是Docker使用的是kubelet中内置dockershim CRI实现。 所有节点安装Docker-ce
yum install -y yum-utils device-mapper-persistent-data lvm2
yum install -y docker-ce
启动Docker
systemctl start docker
systemctl enable docker
2安装docker-compose 在master节点安装docker-conpose
cp -rfv /opt/paas/docker-compose/v1.25.5-docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod x /usr/local/bin/docker-compose
docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
【题目 1】平台部署–部署容器云平台[1.5 分] 登录OpenStack 私有云平台使用 CentOS7.9 镜像创建两台云主机使用 kubeeasy 工具完成Kubernetes 1.22.1 集群的搭建。然后使用 nginx 镜像在 default 命名空间下创建一个名为exam 的Pod并为该 Pod 设置环境变量 exam其值为 2022。 完成后提交 master 节点的用户名、密码和 IP 到答题框。 1.Kubernetes 集群部署成功得 1 分 2.Pod 创建成功且环境变量设置正确得 0.5 分。 1两台节点一台master一台node将提供的安装包 chinaskills_cloud_paas_v2.0.2.iso 上传至 master 节点/root 目录并解压 到/opt 目录 [rootlocalhost ~]# mount -o loop chinaskills_cloud_paas_v2.0.2.iso /mnt/ [rootlocalhost ~]# cp -rfv /mnt/* /opt/ [rootlocalhost ~]# umount /mnt/ 2安装 kubeeasy依赖 [rootlocalhost ~]# mv /opt/kubeeasy /usr/bin/kubeeasy [rootlocalhost ~]# kubeeasy install depend \ –host 10.24.2.10,10.24.2.11 \ –user root –password Abc1234 –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离线安装包路径。
3在master节点执行以下命令部署Kubernetes集群 [rootlocalhost ~]# kubeeasy install kubernetes –master 10.24.2.10 –worker 10.24.2.11 –user root –password Abc1234 –version 1.22.1 –offline-file /opt/kubernetes.tar.gz 部分参数解释如下 –masterMaster节点IP。 –workerNode节点IP如有多个Node节点用逗号隔开。 –versionKubernetes版本此处只能为1.22.1。 可通过命令“tail -f /var/log/kubeinstall.log”查看安装详情或排查错误。
若集群部署失败或出现故障可重置集群重新部署重置命令如下 [rootk8s-master-node1 ~]# kubeeasy reset 重置完成后再次执行步骤1.1-1.2即可重新部署集群。
部署完成后查看集群状态 [rootk8s-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’. 查看节点负载情况 [rootk8s-master-node1 ~]# kubectl top nodes --use-protocol-buffers NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% k8s-master-node1 389m 4% 6926Mi 43% k8s-worker-node1 875m 10% 3365Mi 21% 4使用nginx镜像在default命名空间下创建一个名为exam的Pod并为该Pod设置环境变量exam其值为2022
docker load /opt/extended-images/nginx_latest.tar
cat pod.yaml
apiVersion: v1 kind: Pod metadata: name: exam spec: containers:
name: nginx image: nginx imagePullPolicy: IfNotPresent env: name: “exam” value: “2022” 使用命令进行创建
kubectl apply -f pod.yaml
使用命令进行验证安装的集群环境及Pod
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’.
kubectl exec exam – printenv
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAMEexam exam2022
【题目 2】平台部署–部署 Istio 服务网格[0.5 分] 在 Kubernetes 集群上完成 Istio 服务网格环境的安装然后新建命名空间 exam为该命名空间开启自动注入 Sidecar。 完成后提交 master 节点的用户名、密码和 IP 到答题框。 1.Istio 所有组件运行成功得 0.3 分 2.命名空间 exam 自动注入成功得 0.2 分。 1安装istio服务 在master节点执行以下命令进行Istio服务网格环境的安装 [rootk8s-master-node1 ~]# kubeeasy add --istio istio 查看Pod [rootk8s-master-node1 ~]# kubectl -n istio-system get pods NAME READY STATUS RESTARTS AGE grafana-6ccd56f4b6-twwjv 1/1 Running 0 5m15s istio-egressgateway-7f4864f59c-nxz2l 1/1 Running 0 5m34s istio-ingressgateway-55d9fb9f-jzhnb 1/1 Running 0 5m34s istiod-555d47cb65-jwkgp 1/1 Running 0 5m40s jaeger-5d44bc5c5d-h9t29 1/1 Running 0 5m15s kiali-79b86ff5bc-v9sfk 1/1 Running 0 5m15s prometheus-64fd8ccd65-5px64 2/2 Running 0 5m15s 查看Istio版本信息 [rootk8s-master-node1 ~]# istioctl version client version: 1.12.0 control plane version: 1.12.0 data plane version: 1.12.0 (2 proxies) Istio可视化 访问Grafanahttp://master_IP:33000如图5所示
图5 Grafana访问界面 访问Prometheushttp://master_IP:30090如图6所示
图6访问Prometheus 查看Targets如图7所示
图7查看Targets 访问Jaegerhttp://master_IP:30686如图所示
图8访问Jaeger 访问Kialihttp://master_IP:20001如图9所示
图9访问Kiali
2在Kubernetes集群上完成Istio服务网格环境的安装然后新建命名空间exam为该命名空间开启自动注入Sideca
kubectl create namespace exam
kubectl label namespace exam istio-injectionenabled
在master节点执行kubectl -n istio-system get all命令和kubectl get ns exam --show-labels命令进行验证
kubectl -n istio-system get all
NAME READY STATUS RESTARTS AGE pod/grafana-6ccd56f4b6-ssmbl 1/1 Running 0 81s pod/istio-egressgateway-7f4864f59c-qm7wn 1/1 Running 0 97s pod/istio-ingressgateway-55d9fb9f-jd4pn 1/1 Running 0 97s pod/istiod-555d47cb65-p5cmq 1/1 Running 0 104s pod/jaeger-5d44bc5c5d-xqvbj 1/1 Running 0 81s pod/kiali-9f9596d69-2wsjl 1/1 Running 0 80s pod/prometheus-64fd8ccd65-w2zrg 2/2 Running 0 80s …
kubectl get ns exam --show-labels
NAME STATUS AGE LABELS exam Active 28s istio-injectionenabled 【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分] 在 Kubernetes 集群上完成KubeVirt 虚拟化环境的安装。完成后提交 master 节点的用户名、密码和 IP 到答题框。 1.KubeVirt 所有组件运行成功得 1 分。 1在master节点执行以下命令安装KubeVirt [rootk8s-master-node1 ~]# kubeeasy add --virt kubevirt 查看Pod [rootk8s-master-node1 ~]# kubectl -n kubevirt get pods NAME READY STATUS RESTARTS AGE virt-api-8d998846b-2xx5m 1/1 Running 0 86s virt-api-8d998846b-tqwhq 1/1 Running 0 86s virt-controller-76b86f6965-gz8m4 1/1 Running 0 62s virt-controller-76b86f6965-pjjv5 1/1 Running 0 62s virt-handler-hvf45 1/1 Running 0 62s virt-handler-x7bvj 1/1 Running 0 62s virt-operator-579f86869c-k9nw4 1/1 Running 0 2m22s virt-operator-579f86869c-vtrkn 1/1 Running 0 2m22s
【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分] 在 master 节点上完成Harbor 镜像仓库及Helm 包管理工具的部署。然后使用 nginx 镜像自定义一个 ChartDeployment 名称为 nginx副本数为 1然后将该 Chart 部署到 default 命名空间下Release 名称为 web。 完成后提交 master 节点的用户名、密码和 IP 到答题框。 1.Harbor 仓库部署成功得 0.5 分 2.Helm 工具安装成功得 0.2 分 3.Chart 包部署成功得 0.3 分。 1在master节点执行以下命令进行Harbor仓库的安装 [rootk8s-master-node1 ~]# kubeeasy add --registry harbor 部署完成后查看Harbor仓库状态 [rootk8s-master-node1 ~]# systemctl status harbor ● harbor.service - Harbor Loaded: loaded (/usr/lib/systemd/system/harbor.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-12-06 14:34:49 CST; 30s ago 在Web端通过http://master_ip访问Harbor 使用管理员账号admin/Harbor12345登录Harbor 3使用nginx镜像自定义一个ChartDeployment名称为nginx副本数为1然后将该Chart部署到default命名空间下Release名称为web [rootk8s-master-node1 ~]# helm create mychart Creating mychart [rootk8s-master-node1 ~]# rm -rf mychart/templates/* [rootk8s-master-node1 ~]# vi mychart/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: nginx name: nginx spec: replicas: 1 selector: matchLabels: app: nginx strategy: {} template: metadata: creationTimestamp: null labels: app: nginx spec: containers: - image: nginx name: nginx resources: {} status: {} [rootk8s-master-node1 ~]# helm install web mychart NAME: web LAST DEPLOYED: Tue Sep 13 16:23:12 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None 在master节点执行helm status web命令进行验证 [rootk8s-master-node1 ~]# helm status web NAME: web LAST DEPLOYED: Tue Sep 13 16:23:12 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
【题目 5】集群管理–备份 ETCD数据[1 分] Kubernetes 使用 ETCD 来存储集群的实时运行数据为防止服务器宕机导致 Kubernetes集群数据丢失请将Kubernetes 集群数据备份到/root/etcd.db 中。完成后提交 master 节点的 IP 地址、用户名和密码到答题框。 1.etcdctl 工具安装成功得 0.2 分 2.ETCD 数据备份成功得 0.8 分。 在master节点执行 1安装etcd 首先在master节点安装etcd [rootmaster ~]# yum install etcd -y 查看etcd版本 [rootmaster ~]# etcdctl -version etcdctl version: 3.3.11 API version: 2 2将Kubernetes 集群数据备份到/root/etcd.db 中 [rootmaster ~]# ETCDCTL_API3 etcdctl --endpoints 192.168.248.128:2379 \ –cert/etc/kubernetes/pki/etcd/server.crt –key/etc/kubernetes/pki/etcd/server.key –cacert/etc/kubernetes/pki/etcd/ca.crt snapshot save /root/etcd.db Snapshot saved at /root/etcd.db