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