K3s 離線安裝

2022-08-24 10:59 更新

概述

你可以使用兩種不同的方法在離線環(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í)。

部署私有鏡像倉(cāng)庫(kù)

前提條件

本文檔假設(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ù)。

創(chuàng)建鏡像倉(cāng)庫(kù) YAML

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

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

手動(dòng)部署鏡像

前提條件

我們假設(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)制文件。

  1. K3s GitHub Release頁(yè)面獲取你所運(yùn)行的 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 二進(jìn)制文件放在 ?/usr/local/bin/k3s?路徑下,并確保擁有可執(zhí)行權(quán)限。完成后,現(xiàn)在可以轉(zhuǎn)到下面的安裝 K3s部分,開始安裝 K3s。

安裝 K3s

前提條件

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

當(dāng)使用 ?INSTALL_K3S_SKIP_DOWNLOAD ?環(huán)境變量運(yùn)行 K3s 腳本時(shí),K3s 將使用本地的腳本和二進(jìn)制。

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

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

  • 單節(jié)點(diǎn)安裝
  • 要在單個(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。

升級(jí) K3s

通過腳本升級(jí)

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

  1. K3s GitHub Release頁(yè)面下載要升級(jí)到的 K3s 版本。將 tar 文件放在每個(gè)節(jié)點(diǎn)的?/var/lib/rancher/k3s/agent/images/?目錄下。刪除舊的 tar 文件。
  2. 復(fù)制并替換每個(gè)節(jié)點(diǎn)上?/usr/local/bin?中的舊 K3s 二進(jìn)制文件。復(fù)制https://get.k3s.io 的安裝腳本(因?yàn)樗赡茉谏洗伟l(fā)布后發(fā)生了變化)。再次運(yùn)行腳本。
  3. 重啟 K3s 服務(wù)。

啟用自動(dòng)升級(jí)功能

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

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

  1. 你將需要與你打算升級(jí)到的 K3s 版本相對(duì)應(yīng)的 rancher/k3s-upgrade 版本。注意,鏡像標(biāo)簽將 K3s 版本中的?+?替換為?-?,因?yàn)?nbsp;Docker 鏡像不支持?+?。
  2. 你還需要在你要部署的?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 中指定了這些鏡像:
  3. rancher/system-upgrade-controller:v0.4.0
    rancher/kubectl:v0.17.0
  4. 將必要的 rancher/k3s-upgrade、rancher/system-upgrade-controller 和 rancher/kubectl 鏡像添加到您的私有鏡像倉(cāng)庫(kù)中以后 ,就可以按照K3s 自動(dòng)升級(jí)指南進(jìn)行操作。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)