一、實驗目的
1、掌握kubeSphere 的安裝部署
2、掌握kubesphere 使用外部鏡像倉庫;
2、熟悉圖像化部署任務:產生pod---定義服務--驗證訪問
本次實驗旨在通過 KubeSphere 平臺部署基于自定義鏡像(nginx:1.26.0
?)的有狀態副本集,以實現 Nginx 服務的容器化部署與管理,熟悉 KubeSphere 中工作負載創建、鏡像拉取、資源配置等操作流程,驗證 Nginx 服務在容器環境下的正常運行及外部可訪問性。
實驗環境
-
集群環境:KubeSphere 容器平臺,具備多個節點組成的 Kubernetes 集群,節點運行正常且網絡連通性良好。
-
鏡像倉庫:阿里云容器鏡像服務,已將?
nginx:1.26.0
?鏡像推送至私有倉庫?crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps
?。 -
操作終端:在具備?
kubectl
?工具且能連接到 KubeSphere 集群的環境中執行命令,同時使用 KubeSphere 控制臺進行可視化操作。
二、實驗內容
配置步驟
1.安裝依賴項
# 安裝必要工具 sudo yum install -y socat conntrack ebtables ipset # 使用官方腳本安裝 Helm3 curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 如果安裝不了,看是不是因為污點的問題報錯如上,如果是可以使用下面的命令移除污點 kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule- 安裝 KubeSphere Core(可能需要等待久一點,出現下面的頁面即可) helm upgrade --install -n kubesphere-system --create-namespace ks-core \ ??https://charts.kubesphere.io/main/ks-core-1.1.4.tgz --debug --wait \ ??--set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \ ??--set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks #驗證安裝 kubectl get pods -n kubesphere-system -w kubectl get svc -n kubesphere-system ks-console #卸載方式 為避免數據丟失,請提前備份所有重要數據。 |
2. 訪問 KubeSphere 控制臺
訪問 KubeSphere 控制臺 開啟端口轉發(本地訪問) kubectl port-forward --address 0.0.0.0 -n kubesphere-system svc/ks-console 8080:80 訪問地址:http://10.1.1.85:8080 默認賬號密碼:admin/P@88w0rd 如果登錄不了可能是因為進行端口轉發時停止了命令,或者瀏覽器緩存問題,可以通過快捷鍵shift+ctrl+delete進行刪除瀏覽記錄。 初次登錄會讓你修改密碼,根據提示修改密碼 登錄成功如下: 報錯補充: 如果一直登錄不了或者刷新頁面不了,可能是因為停止了端口轉發 確認端口轉發正常運行
|
3.配置私有鏡像倉庫(以阿里云為例)
阿里云登錄 - 歡迎登錄阿里云,安全穩定的云計算服務平臺當kubesphere自帶的鏡像地址不能獲取鏡像時,就需要用自建的鏡像倉庫地址或阿里鏡像倉庫地址。 (1)點擊鏈接登錄阿里云,進入以下界面 阿里云登錄 - 歡迎登錄阿里云,安全穩定的云計算服務平臺 進入控制臺進行實名認證 阿里云登錄 - 歡迎登錄阿里云,安全穩定的云計算服務平臺 (2)點擊上述鏈接,進入容器鏡像服務創建個人版實例 (3)個人實例配置 設置Registry登錄密碼 (4)創建命名空間(全網獨一無二,個人版命名空間最多可創建3個) (5)設置訪問憑證(點擊訪問憑證然后點擊設置固定密碼) (6)創建鏡像倉庫 創建成功效果如下 (7)私倉使用 使用docker拉取鏡像 docker pull nginx:1.26.0 使用docker images查看 虛擬機登錄私有倉庫 docker login --username=nick7182281059 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com 輸入私倉密碼,出現“Login Succeeded”表示登錄成功,如果報錯可能是網絡的問題。 為nginx:1.26.0打標簽 # 使用鏡像ID添加標簽(推薦方式) docker tag 94543a6c1aef crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 # 或者使用鏡像名添加標簽 docker tag nginx:1.26.0 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 推送鏡像至阿里云容器鏡像服務 # 先登錄阿里云容器鏡像服務(如果未登錄) docker login --username=nick7182281059 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com # 推送鏡像 docker push crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 在阿里云鏡像倉庫apps里面查看 從阿里云私有倉庫拉取鏡像 # 刪除nginx:1.26.0 docker rmi nginx:1.26.0 # 拉取鏡像(使用完整的倉庫路徑和標簽) docker pull crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 # 驗證拉取 docker images | grep nginx # 應看到類似輸出: # crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps nginx-1.26.0 94543a6c1aef 12 months ago 188MB |
4.應用部署
(1)準備工作: 有兩種方式創建密鑰 使用命令:已創建鏡像拉取密鑰 或者可以選擇頁面創建保密字典,二選一即可 填寫名稱(如? 選擇項目(如? 數據設置(選擇鏡像服務信息) 下面這個地址就是鏡像服務地址 (2)在 KubeSphere 控制臺配置鏡像倉庫 創建有狀態副本集 基本信息 名稱:?nginx-demo 點擊下一步。 注意這個查找的目錄: 阿里云的命名空間/倉庫名稱:鏡像版本 容器和服務的端口都寫80 測試環境存儲設置可以不搞,直接下一步就好 創建成功效果圖 |
三、實驗結論
1.KubeSphere 優勢:
提供圖形化界面,簡化 Kubernetes 集群管理。
支持多租戶和擴展組件,適合企業級應用場景。
2.挑戰與改進:
初始安裝需嚴格滿足環境要求(如端口開放、依賴項安裝)。
私有鏡像倉庫配置需注意權限和鏡像命名規則。
部署成功驗證:通過一系列配置和操作,成功在 KubeSphere 平臺上創建了基于自定義 Nginx 鏡像的有狀態副本集,并關聯相應服務,實現了 Nginx 服務的容器化部署。在瀏覽器或使用?curl
?命令訪問指定地址時,能夠看到 Nginx 歡迎頁面,表明 Nginx 服務正常運行,達到了實驗預期目的。
關鍵要點總結:
鏡像拉取密鑰:正確創建并關聯鏡像拉取密鑰是從私有鏡像倉庫成功拉取鏡像的關鍵,否則會出現 “找不到鏡像” 等錯誤。
資源配置:合理設置容器資源配額(CPU 和內存 )、健康檢查等高級設置項,有助于保障服務的穩定運行和可靠性。
網絡與權限:確保集群節點與鏡像倉庫的網絡連通性,以及賬號在鏡像倉庫具備拉取權限,是順利完成部署的重要前提。