你可以使用兩種不同的方法在離線環(huán)境中安裝 K3s。離線環(huán)境是不直接連接到 Internet 的任何環(huán)境。你可以部署一個(gè)私有鏡像倉(cāng)庫(kù),或者你可以手動(dòng)部署鏡像,比如用于小型集群。
離線安裝的過程主要分為以下兩個(gè)步驟:
步驟 1:部署鏡像,本文提供了兩種部署方式,分別是部署私有鏡像倉(cāng)庫(kù)和手動(dòng)部署鏡像。請(qǐng)?jiān)谶@兩種方式中選擇一種執(zhí)行。
步驟 2:安裝 K3s,本文提供了兩種安裝方式,分別是單節(jié)點(diǎn)安裝和高可用安裝。完成鏡像部署后,請(qǐng)?jiān)谶@兩種方式中選擇一種執(zhí)行。
離線升級(jí) K3s 版本:完成離線安裝 K3s 后,您還可以通過腳本升級(jí) K3s 版本,或啟用自動(dòng)升級(jí)功能,以保持離線環(huán)境中的 K3s 版本與最新的 K3s 版本同步。
請(qǐng)按照下文的操作指導(dǎo)進(jìn)行離線安裝和升級(jí)。
本文檔假設(shè)您已經(jīng)在離線環(huán)境中創(chuàng)建了節(jié)點(diǎn),并且在您的堡壘機(jī)上有一個(gè) Docker 私有鏡像倉(cāng)庫(kù)。
如果你還沒有建立私有的 Docker 鏡像倉(cāng)庫(kù),請(qǐng)參考Docker 官方文檔建立私有的 Docker 鏡像倉(cāng)庫(kù)。
請(qǐng)按照 私有鏡像倉(cāng)庫(kù)配置指南 創(chuàng)建并配置registry.yaml文件。
完成后,現(xiàn)在可以轉(zhuǎn)到下面的安裝 K3s部分,開始安裝 K3s。
我們假設(shè)您已經(jīng)在離線環(huán)境中創(chuàng)建了節(jié)點(diǎn)。這種方法需要您手動(dòng)將必要的鏡像部署到每個(gè)節(jié)點(diǎn),適用于運(yùn)行無法部署鏡像倉(cāng)庫(kù)的邊緣部署場(chǎng)景。
請(qǐng)按照以下步驟準(zhǔn)備鏡像目錄和 K3s 二進(jìn)制文件。
images
?目錄下,例如:sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/
/usr/local/bin/k3s
?路徑下,并確保擁有可執(zhí)行權(quán)限。完成后,現(xiàn)在可以轉(zhuǎn)到下面的安裝 K3s部分,開始安裝 K3s。/usr/local/bin
? 中,并確保這個(gè)二進(jìn)制文件是可執(zhí)行的。install.sh
?。當(dāng)使用 ?INSTALL_K3S_SKIP_DOWNLOAD
?環(huán)境變量運(yùn)行 K3s 腳本時(shí),K3s 將使用本地的腳本和二進(jìn)制。
您可以在離線環(huán)境中執(zhí)行單節(jié)點(diǎn)安裝,在一個(gè) server(節(jié)點(diǎn))上安裝 K3s,或高可用安裝,在多個(gè) server(節(jié)點(diǎn))上安裝 K3s。
要在單個(gè)服務(wù)器上安裝 K3s,只需在 server 節(jié)點(diǎn)上執(zhí)行以下操作:
INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh
然后,要選擇添加其他 agent,請(qǐng)?jiān)诿總€(gè) agent 節(jié)點(diǎn)上執(zhí)行以下操作。注意將 ?myserver
?替換為 server 的 IP 或有效的 DNS,并將 ?mynodetoken
?替換 server 節(jié)點(diǎn)的 token,通常在?/var/lib/rancher/k3s/server/node-token
?。
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken ./install.sh
您需要調(diào)整安裝命令,以便指定?INSTALL_K3S_SKIP_DOWNLOAD=true
?并在本地運(yùn)行安裝腳本。您還將利用?INSTALL_K3S_EXEC='args'
?為 k3s 提供其他參數(shù)。
例如,使用外部數(shù)據(jù)庫(kù)實(shí)現(xiàn)高可用安裝指南的第二步提到了以下內(nèi)容:
curl -sfL https://get.k3s.io | sh -s - server \
--datastore-endpoint='mysql://username:password@tcp(hostname:3306)/database-name'
由于在離線環(huán)境中無法使用?curl
?命令進(jìn)行安裝,所以您需要參考以下示例,將這條命令行修改為離線安裝:
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server' K3S_DATASTORE_ENDPOINT='mysql://username:password@tcp(hostname:3306)/database-name' ./install.sh
注意
K3s 還為 kubelets 提供了一個(gè)?--resolv-conf
?標(biāo)志,這可能有助于在離線網(wǎng)絡(luò)中配置 DNS。
離線環(huán)境的升級(jí)可以通過以下步驟完成:
/var/lib/rancher/k3s/agent/images/
?目錄下。刪除舊的 tar 文件。/usr/local/bin
?中的舊 K3s 二進(jìn)制文件。復(fù)制https://get.k3s.io 的安裝腳本(因?yàn)樗赡茉谏洗伟l(fā)布后發(fā)生了變化)。再次運(yùn)行腳本。除了可以通過腳本升級(jí) K3s 以外,您還可以啟用自動(dòng)升級(jí)功能,以保持離線環(huán)境中的 K3s 版本與最新的 K3s 版本同步。
從 v1.17.4+k3s1 開始,K3s 支持自動(dòng)升級(jí)。要在離線環(huán)境中啟用此功能,您必須確保所需鏡像在您的私有鏡像倉(cāng)庫(kù)中可用。
+
?替換為?-
?,因?yàn)?nbsp;Docker 鏡像不支持?+
?。system-upgrad-controller manifest
?YAML 中指定的 ?system-upgrad-controller
?和?kubectl
?的版本。在這里檢查 ?system-upgrad-controller? 的最新版本,并下載 ?system-upgrad-controller.yaml
?來確定你需要推送到私有鏡像倉(cāng)庫(kù)的版本。例如,在?system-upgrade-controller
?的 v0.4.0 版本中,在 manifest YAML 中指定了這些鏡像:rancher/system-upgrade-controller:v0.4.0
rancher/kubectl:v0.17.0
更多建議: