On this page
啟動執行環境 (Tar 交付)
載入所需套件以及啟動 Kubespray 執行環境
以下指令皆請於部署主機上進行操作
解壓縮離線安裝包檔
將交付的打包檔 output.tar 放置到部署主機的登入帳號之家目錄,並解封至家目錄下
tar -xf output.tar -C ${HOME}/
cd ${HOME}/outputs/ && chmod a+x *.sh
確認版本是否符合相符
可以透過以下方式確認交付的離線安裝包版本
# 請注意此時為剛解壓完成的步驟,尚未進入到 Kubespray 容器內
cat config.sh | grep VERSION
會看到類似下面範例輸出
# 代表基於官方 v2.21.0 分支 (Kubernetes v1.25) 修改後交付的第 1 個版本
KUBESPRAY_VERSION=v2.21.0-1.25-1
# 代表此離線安裝包支援 Kubernetes 版本為 v1.25.16
KUBE_VERSION=v1.25.16
啟動安裝環境
以下指令將解壓部署腳本,並以容器方式啟動所有安裝過程中所需的服務容器
cd ${HOME}/outputs/ && ./extract-kubespray.sh
(Optional) 如需手動移除舊有資料
sudo /usr/local/bin/nerdctl rm -f $(sudo /usr/local/bin/nerdctl ps -a -q)sudo /usr/local/bin/nerdctl rmi -f $(sudo /usr/local/bin/nerdctl images -a -q)sudo /usr/local/bin/nerdctl ps -asudo /usr/local/bin/nerdctl images -asudo rm -rf ${HOME}/mycluster/ ${HOME}/outputs/
設定離線安裝之部署 Package Repo 與 Container Registry
設定遠端 Container Registry
企業內部通常會有用來存放鏡像的 Container Registry (i.e Harbor, Quay)。爲避免後續鏡像因故消失無法重新自遠端下載。需要在部署前將此次所用的到鏡像推送到 Container Registry 儲存
正式環境部署務必調整以下參數 (安裝測試環境可以略過)
export REGISTRY_HOST=${REGISTRY_HOST:-"localhost"}
export REGISTRY_PORT=${REGISTRY_PORT:-35000}
export REGISTRY_REPO=${REGISTRY_REPO:-""}
export REGISTRY_USER=${REGISTRY_USER:-""}
export REGISTRY_PASSWORD=${REGISTRY_PASSWORD:-""}
CNI Plugin 安裝位置
部分情況下,主機上會出現已經 CNI Plugin 已經安裝的情形發生,因此必須宣告 CNI 二進制檔位置
export CNI_DIR=/path/to/cni/binary/directory
不知道 CNI 路徑時,請點擊看指令
如果不知道 CNI 二進制檔位置,需分別檢測以下資料夾
check-cni.sh
#!/bin/bash
folders=(
"/usr/local/libexec/cni"
"/usr/libexec/cni"
"/usr/local/lib/cni"
"/usr/lib/cni"
"/opt/cni/bin"
)
file_name="bridge"
for folder in "${folders[@]}"; do
file_path="$folder/$file_name"
if [[ -f "$file_path" ]]; then
echo "export CNI_DIR=$folder"
exit 0
fi
done
echo "export CNI_DIR="
請複製並執行以下指令後,將會自動宣告 CNI_DIR 環境變數
$(bash check-cni.sh)
啟動相關服務
以下指令會將套件與鏡像進行解壓縮將佔用大量硬碟空間,請務必確保主機上有至少 30GB 以上之空間
cd ${HOME}/outputs/ && ./setup-all.sh
自動化腳本內的流程驟說明 (無需手動執行)
-
設定防火牆 (RHEL)
- sudo firewall-cmd –zone=public –add-port=35000/tcp –permanent
- sudo firewall-cmd –zone=public –add-service=http –permanent
- sudo firewall-cmd –reload
-
安裝 containerd
-
載入部署用的映像檔 - nginx / registry / kubespray
-
啟動 Nginx
- start-nginx.sh
- 在部署主機建立起 Web Service,讓目標主機可以連到此處下載對應的BINARY/DEB/RPM套件。
-
啟動 Image Registry
- start-registry.sh
- 在部署主機建立起 Private Registry,讓目標主機可以連到此處下載對應的 Container Images。
-
載入
Kubernates Container ImagesintoLocal Private Registry- load-push-all-images.sh
- 由於上一個步驟只是把 Private Registry 架設起來,裡面是沒有任何 Container Image 可供下載的。此步驟就是把 local 端的 Container Images 全部都匯入。
進入 Kubespray 執行環境
以下指令會自動化掛載相關的路徑後進入 Kubespray 腳本執行環境的容器內
cd ${HOME}/outputs/ && ./start-kubespray.sh
手動進入方式
- 最新指令請參考
start-kubespray.sh
Was this page helpful?