K3s 離線安裝

2022-08-24 10:59 更新

概述

你可以使用兩種不同的方法在離線環(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)建鏡像倉庫 YAML

請按照 私有鏡像倉庫配置指南 創(chuàng)建并配置registry.yaml文件。

完成后,現(xiàn)在可以轉(zhuǎn)到下面的安裝 K3s部分,開始安裝 K3s。

手動部署鏡像

前提條件

我們假設您已經(jīng)在離線環(huán)境中創(chuàng)建了節(jié)點。這種方法需要您手動將必要的鏡像部署到每個節(jié)點,適用于運行無法部署鏡像倉庫的邊緣部署場景。

操作步驟

請按照以下步驟準備鏡像目錄和 K3s 二進制文件。

  1. K3s GitHub Release頁面獲取你所運行的 K3s 版本的鏡像 tar 文件。
  2. 將 tar 文件放在?images?目錄下,例如:
  3. sudo mkdir -p /var/lib/rancher/k3s/agent/images/
    sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/
  4. 將 k3s 二進制文件放在 ?/usr/local/bin/k3s?路徑下,并確保擁有可執(zhí)行權(quán)限。完成后,現(xiàn)在可以轉(zhuǎn)到下面的安裝 K3s部分,開始安裝 K3s。

安裝 K3s

前提條件

  • 在安裝 K3s 之前,完成上面的部署私有鏡像倉庫手動部署鏡像,導入安裝 K3s 所需要的鏡像。
  • 從 release 頁面下載 K3s 二進制文件,K3s 二進制文件需要與離線鏡像的版本匹配。將二進制文件放在每個離線節(jié)點的 ?/usr/local/bin? 中,并確保這個二進制文件是可執(zhí)行的。
  • 下載 K3s 安裝腳本:https://get.k3s.io 。將安裝腳本放在每個離線節(jié)點的任意地方,并命名為 ?install.sh?。

當使用 ?INSTALL_K3S_SKIP_DOWNLOAD ?環(huán)境變量運行 K3s 腳本時,K3s 將使用本地的腳本和二進制。

在離線環(huán)境中安裝 K3s

您可以在離線環(huán)境中執(zhí)行單節(jié)點安裝,在一個 server(節(jié)點)上安裝 K3s,或高可用安裝,在多個 server(節(jié)點)上安裝 K3s。

  • 單節(jié)點安裝
  • 要在單個服務器上安裝 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。

升級 K3s

通過腳本升級

離線環(huán)境的升級可以通過以下步驟完成:

  1. K3s GitHub Release頁面下載要升級到的 K3s 版本。將 tar 文件放在每個節(jié)點的?/var/lib/rancher/k3s/agent/images/?目錄下。刪除舊的 tar 文件。
  2. 復制并替換每個節(jié)點上?/usr/local/bin?中的舊 K3s 二進制文件。復制https://get.k3s.io 的安裝腳本(因為它可能在上次發(fā)布后發(fā)生了變化)。再次運行腳本。
  3. 重啟 K3s 服務。

啟用自動升級功能

除了可以通過腳本升級 K3s 以外,您還可以啟用自動升級功能,以保持離線環(huán)境中的 K3s 版本與最新的 K3s 版本同步。

從 v1.17.4+k3s1 開始,K3s 支持自動升級。要在離線環(huán)境中啟用此功能,您必須確保所需鏡像在您的私有鏡像倉庫中可用。

  1. 你將需要與你打算升級到的 K3s 版本相對應的 rancher/k3s-upgrade 版本。注意,鏡像標簽將 K3s 版本中的?+?替換為?-?,因為 Docker 鏡像不支持?+?。
  2. 你還需要在你要部署的?system-upgrad-controller manifest?YAML 中指定的 ?system-upgrad-controller?和?kubectl?的版本。在這里檢查 ?system-upgrad-controller? 的最新版本,并下載 ?system-upgrad-controller.yaml?來確定你需要推送到私有鏡像倉庫的版本。例如,在?system-upgrade-controller?的 v0.4.0 版本中,在 manifest YAML 中指定了這些鏡像:
  3. rancher/system-upgrade-controller:v0.4.0
    rancher/kubectl:v0.17.0
  4. 將必要的 rancher/k3s-upgrade、rancher/system-upgrade-controller 和 rancher/kubectl 鏡像添加到您的私有鏡像倉庫中以后 ,就可以按照K3s 自動升級指南進行操作。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號