2022 年全國職業(yè)院校技能大賽高職組云計算賽項試卷
........
【任務 1 】容器云平臺搭建[5 分]
【適用平臺】私有云
【題目 1】平臺部署--部署容器云平臺[1.5 分]
登錄 OpenStack 私有云平臺,使用 CentOS7.9 鏡像創(chuàng)建兩臺云主機,使用 kubeeasy 工具完成 Kubernetes 1.22.1 集群的搭建。然后使用 nginx 鏡像在 default 命名空間下創(chuàng)建一個名為exam 的 Pod,并為該 Pod 設置環(huán)境變量 exam,其值為 2022。完成后提交 master 節(jié)點的用戶名、密碼和 IP 到答題框。
1.Kubernetes 集群部署成功得 1 分;
2.Pod 創(chuàng)建成功且環(huán)境變量設置正確得 0.5 分。
搭建kubernetes集群:
前提條件設置好主機名,域名解析,這里就不寫出來了。
mount -o loop chinaskills_cloud_paas_v2.0.1.iso /mnt/
cp -rfv /mnt/* /opt/
umount /mnt/
安裝kubeeasy
kubeeasy為Kubernetes集群專業(yè)部署工具,極大的簡化了部署流程。其特性如下:
全自動化安裝流程;
支持DNS識別集群;
支持自我修復:一切都在自動擴縮組中運行;
支持多種操作系統(tǒng)(如 Debian、Ubuntu 16.04、CentOS7、RHEL等);
支持高可用。
在master節(jié)點安裝kubeeasy工具:
mv /opt/kubeeasy /usr/bin/kubeeasy
1.2 安裝依賴包
在master節(jié)點執(zhí)行命令:
kubeeasy install depend \
--host 10.24.2.10,10.24.2.11 \??#自己的兩臺主機IP地址
--user root \
--password Abc@1234 \
--offline-file /opt/dependencies/base-rpms.tar.gz
1.3 配置SSH免密鑰
安裝Kubernetes集群的時候,需要配置Kubernetes集群各節(jié)點間的免密登錄,方便傳輸文件和通訊。
在master節(jié)點執(zhí)行以下命令完成集群所有節(jié)點間的免密鑰配置:
kubeeasy create ssh-keygen \
--master 10.24.2.10 \ #master節(jié)點的IP地址
--worker 10.24.2.11 \ #node節(jié)點的IP地址
--user root --password Abc@1234 #自己的虛擬機密碼
在master節(jié)點執(zhí)行以下命令部署Kubernetes集群:
kubeeasy install kubernetes \
--master 10.24.2.10 \ #master節(jié)點的IP地址
--worker 10.24.2.11 \ #node節(jié)點的IP地址
--user root \
--password Abc@1234 \
--version 1.22.1 \
--offline-file /opt/kubernetes.tar.gz
安裝完成后,kubernetes集群就搭建好了。
創(chuàng)建一個名為 exam-pod.yaml 的文件,然后將以下內容復制到該文件中:
vi?exam-pod.yaml
#添加以下內容
apiVersion: v1
kind: Pod
metadata:
??name: exam
??namespace: default
spec:
??containers:
??- name: nginx
????image: nginx
????env:
????- name: exam
??????value: "2022"
使用 kubectl 創(chuàng)建 Pod:
kubectl apply -f exam-pod.yaml
【題目 2】平臺部署--部署 Istio 服務網(wǎng)格[0.5 分]
在 Kubernetes 集群上完成 Istio 服務網(wǎng)格環(huán)境的安裝,然后新建命名空間 exam,為該命
名空間開啟自動注入 Sidecar。完成后提交 master 節(jié)點的用戶名、密碼和 IP 到答題框。
1.Istio 所有組件運行成功得 0.3 分;
2.命名空間 exam 自動注入成功得 0.2 分。
解壓 Istio 壓縮包:
cd /opt/
tar -xzf istio.tar.gz
cd istio/
將 Istio 的 bin 目錄添加到您的 PATH 環(huán)境變量中:
export PATH=$PWD/bin:$PATH
使用 IstioOperator 的默認配置安裝 Istio:
istioctl install --set profile=demo -y
驗證 Istio 是否已成功安裝:
kubectl get pods -n istio-system
創(chuàng)建 exam 命名空間:
kubectl create namespace exam
為 exam 命名空間啟用自動注入 Sidecar:
kubectl label namespace exam istio-injection=enabled
現(xiàn)在,當你在 exam 命名空間中創(chuàng)建新的 Pod 時,Istio 將自動為每個 Pod 注入 Sidecar 代理。
【題目 3】平臺部署--部署 KubeVirt 虛擬化[1 分]
在 Kubernetes 集群上完成 KubeVirt 虛擬化環(huán)境的安裝。
完成后提交 master 節(jié)點的用戶名、密碼和 IP 到答題框。
1.KubeVirt 所有組件運行成功得 1 分。
tar -xzvf kubevirt.tar.gz
cd kubevirt/
kubectl create -f kubevirt-operator.yaml
kubectl create -f kubevirt-cr.yaml
kubectl get pods -n kubevirt?
當看到全部的pod都是Running就部署成功了。
【題目 4】平臺部署--部署 Harbor 倉庫及 Helm 包管理工具[1 分]
在 master 節(jié)點上完成 Harbor 鏡像倉庫及 Helm 包管理工具的部署。然后使用 nginx 鏡像自定義一個 Chart,Deployment 名稱為 nginx,副本數(shù)為 1,然后將該 Chart 部署到 default命名空間下,Release 名稱為 web。
完成后提交 master 節(jié)點的用戶名、密碼和 IP 到答題框。
1.Harbor 倉庫部署成功得 0.5 分;
2.Helm 工具安裝成功得 0.2 分;
3.Chart 包部署成功得 0.3 分。
安裝docker-compose
在master節(jié)點安裝docker-conpose:
curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ?
給docker-compose文件添加可執(zhí)行權限
chmod +x /usr/local/bin/docker-compose
添加軟連接到/usr/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
驗證是否安裝成功:
docker-compose version
部署Harbor:
解壓安裝包:
tar -xzvf harbor-offline.tar.gz
cd harbor
修改Harbor配置信息:
vi harbor.yml
hostname: 10.18.4.10? ?# 只需要修改為本機IP或域名
harbor_admin_password: 12345? ?#密碼也可以修改成自己想要的
啟動Harbor:
./prepare ?&& ?./install.sh
在安裝腳本執(zhí)行成功后,啟動Harbor:
docker-compose up -d
部署helm工具:
tar -zxvf helm-v3.7.1-linux-amd64.tar.gz
這將在當前目錄下創(chuàng)建一個名為 linux-amd64 的文件夾。
進入解壓縮后的目錄:
cd linux-amd64
在這個目錄下,您會找到一個名為 helm 的可執(zhí)行文件。
將 helm 可執(zhí)行文件移動到 /usr/local/bin/ 目錄,這樣您就可以在系統(tǒng)的任何位置運行 Helm 命令:
sudo mv helm /usr/local/bin/
確認 Helm 安裝成功:
helm version
如果安裝成功,您將看到 Helm 的版本信息。
使用 Helm 創(chuàng)建一個新的 Chart:
helm create nginx-chart
這將創(chuàng)建一個名為 nginx-chart 的目錄,其中包含一個默認的 Helm Chart 結構。
cd nginx-chart
修改 Chart.yaml 文件,添加或更新以下內容:
vi Chart.yaml
apiVersion: v2
name: nginx
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: 1.21
修改 values.yaml 文件,設置副本數(shù)為 1:
replicaCount: 1???#已經修改,可以不修改
修改 templates/deployment.yaml 文件,將 Deployment 名稱更改為 nginx:
apiVersion: apps/v1
kind: Deployment
metadata:
??name: nginx???#改這里
??labels:
{{- include "nginx.labels" . | nindent 4 }}
........
使用 Helm 部署您的自定義 Nginx Chart:
在這一步請切換目錄到nginx-chart的上一級目錄
helm install web ./nginx-chart --namespace default
這將在 default 命名空間下部署名為 web 的 Helm release。
完成上述步驟后,您應該已經成功地將自定義 Nginx Chart 部署到 Kubernetes 集群中。您可以使用以下命令來檢查 Pod 的狀態(tài):
kubectl get pods --namespace default
【題目 5 】集群管理-- 備份 ETCD 數(shù)據(jù)[1 分]
Kubernetes 使用 ETCD 來存儲集群的實時運行數(shù)據(jù),為防止服務器宕機導致 Kubernetes集群數(shù)據(jù)丟失,請將 Kubernetes 集群數(shù)據(jù)備份到/root/etcd.db 中。
完成后提交 master 節(jié)點的 IP 地址、用戶名和密碼到答題框。
1.etcdctl 工具安裝成功得 0.2 分;
2.ETCD 數(shù)據(jù)備份成功得 0.8 分。
解壓etc壓縮包:
tar xvzf etcd-v3.4.25-linux-amd64.tar.gz
將 etcdctl 二進制文件復制到一個系統(tǒng)路徑中:
?cp???etcd-v3.4.25-linux-amd64/etcdctl??/usr/local/bin/
設置可執(zhí)行權限:
chmod +x /usr/local/bin/etcdctl
設置 etcdctl 的環(huán)境變量。您需要從 etcd 的配置中獲取以下參數(shù):
ETCDCTL_API:設置為 3(etcd API 的版本)。
ETCDCTL_ENDPOINTS:etcd 的端點列表(使用逗號分隔)。
ETCDCTL_CACERT:etcd 服務器的 CA 證書路徑。
ETCDCTL_CERT:etcd 服務器的客戶端證書路徑。
ETCDCTL_KEY:etcd 服務器的客戶端密鑰路徑。
可以從/etc/kubernetes/manifests/etcd.yaml中查看相應的內容。例如:
export ETCDCTL_API=3
export ETCDCTL_ENDPOINTS=https://127.0.0.1:2379
export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key
請確保將上述示例中的路徑替換為實際路徑。
使用 etcdctl 工具備份 etcd 數(shù)據(jù):文章來源:http://www.zghlxwxcb.cn/news/detail-651038.html
etcdctl snapshot save /root/etcd.db
這將會將 etcd 數(shù)據(jù)備份到 /root/etcd.db 文件中。文章來源地址http://www.zghlxwxcb.cn/news/detail-651038.html
到了這里,關于2022 年全國職業(yè)院校技能大賽高職組云計算賽項試卷-容器云-1的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!