跳至主要内容

3. 安裝 Kubernetes(Docker 安裝請跳過)

備註

如果您在使用 Docker 的單一節點上安裝 Rancher,請跳過本節。

本節說明如何根據我們的 Rancher 伺服器環境最佳實踐安裝 Kubernetes 叢集。此叢集應專用於僅執行 Rancher 伺服器。

Rancher 可以安裝在任何 Kubernetes 叢集上,包括託管的 Kubernetes 提供者。

以下顯示在 RKE2 或 K3s 上設定離線 Kubernetes 叢集的步驟。

在本指南中,我們假設您已在離線環境中建立了節點,並在堡壘伺服器上擁有安全的 Docker 私有鏡像倉庫。

安裝概述​

  1. 準備映像檔目錄
  2. 建立鏡像倉庫 YAML
  3. 安裝 K3s
  4. 儲存並開始使用 kubeconfig 檔案

1. 準備映像檔目錄​

從 releases 頁面取得適合您架構的映像檔 tar 檔案,版本需與您將執行的 K3s 版本相符。

在啟動每個節點上的 K3s 之前,將 tar 檔案放置在 images 目錄中,例如:

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/

2. 建立鏡像倉庫 YAML​

在 /etc/rancher/k3s/registries.yaml 建立 registries.yaml 檔案。這將告訴 K3s 連接到您私有鏡像倉庫所需的詳細資訊。

registries.yaml 檔案在填入必要資訊前應如下所示:

---
mirrors:
customreg:
endpoint:
- "https://ip-to-server:5000"
configs:
customreg:
auth:
username: xxxxxx # 這是鏡像倉庫使用者名稱
password: xxxxxx # 這是鏡像倉庫密碼
tls:
cert_file: <鏡像倉庫使用的憑證檔案路徑>
key_file: <鏡像倉庫使用的金鑰檔案路徑>
ca_file: <鏡像倉庫使用的 CA 檔案路徑>

請注意,目前 K3s 僅支援安全的鏡像倉庫(使用自訂 CA 的 SSL)。

有關 K3s 私有鏡像倉庫設定檔案的詳細資訊,請參閱 K3s 文件。

3. 安裝 K3s​

Rancher 需要安裝在支援的 Kubernetes 版本上。要了解您的 Rancher 版本支援哪些 Kubernetes 版本,請參閱 Rancher 支援矩陣。

要指定 K3s(Kubernetes)版本,請在執行 K3s 安裝腳本時使用 INSTALL_K3S_VERSION(例如 INSTALL_K3S_VERSION="v1.24.10+k3s1")環境變數。

從 releases 頁面取得 K3s 二進位檔案,版本需與用於取得離線映像檔 tar 的版本相符。 同時從 https://get.k3s.io 取得 K3s 安裝腳本。

將二進位檔案放置在每個節點的 /usr/local/bin 中。 將安裝腳本放置在每個節點的任何位置,並命名為 install.sh。

在每個伺服器上安裝 K3s:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> ./install.sh

在每個代理上安裝 K3s:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> K3S_URL=https://<SERVER>:6443 K3S_TOKEN=<TOKEN> ./install.sh

其中 <SERVER> 是伺服器的 IP 或有效 DNS,<TOKEN> 是從伺服器的 /var/lib/rancher/k3s/server/node-token 檔案中取得的節點權杖。

備註

K3s 還為 kubelet 提供了 --resolv-conf 標誌,這可能有助於在離線網路中設定 DNS。

4. 儲存並開始使用 kubeconfig 檔案​

當您在每個 Rancher 伺服器節點上安裝 K3s 時,會在節點的 /etc/rancher/k3s/k3s.yaml 建立一個 kubeconfig 檔案。此檔案包含對叢集完全存取的憑證,您應將此檔案儲存在安全的位置。

要使用此 kubeconfig 檔案:

  1. 安裝 kubectl,Kubernetes 命令列工具。
  2. 複製位於 /etc/rancher/k3s/k3s.yaml 的檔案,並將其儲存到本機的 ~/.kube/config 目錄中。
  3. 在 kubeconfig 檔案中,server 指令被定義為 localhost。將伺服器設定為您的負載平衡器的 DNS,參照連接埠 6443。(Kubernetes API 伺服器將在連接埠 6443 上存取,而 Rancher 伺服器將在連接埠 80 和 443 上存取。)以下是一個 k3s.yaml 範例:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: [CERTIFICATE-DATA]
server: [LOAD-BALANCER-DNS]:6443 # 編輯此行
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
password: [PASSWORD]
username: admin

結果: 您現在可以使用 kubectl 來管理您的 K3s 叢集。如果您有多個 kubeconfig 檔案,可以在使用 kubectl 時透過傳入檔案路徑來指定要使用哪一個:

kubectl --kubeconfig ~/.kube/config/k3s.yaml get pods --all-namespaces

有關 kubeconfig 檔案的詳細資訊,請參閱 K3s 文件或官方 Kubernetes 文件,了解如何使用 kubeconfig 檔案組織叢集存取。

升級注意事項​

升級離線環境可以透過以下方式完成:

  1. 從 releases 頁面下載新的離線映像檔(tar 檔案),版本需與您要升級到的 K3s 版本相符。將 tar 檔案放置在每個節點的 /var/lib/rancher/k3s/agent/images/ 目錄中。刪除舊的 tar 檔案。
  2. 複製並替換每個節點上 /usr/local/bin 中的舊 K3s 二進位檔案。複製 https://get.k3s.io 的安裝腳本(因為自上次發布以來可能已更改)。使用與之前相同的環境變數再次執行腳本。
  3. 重新啟動 K3s 服務(如果安裝程式未自動重新啟動)。

遇到問題或錯誤?​

請參閱疑難排解頁面。

下一步:安裝 Rancher​