跳至主要内容

4. 安裝 Rancher

本節說明如何在離線環境的高可用性 Kubernetes 安裝中部署 Rancher。離線環境可能是指 Rancher 伺服器將在離線狀態、防火牆後方或代理伺服器後方進行安裝的環境。

Rancher 的特權存取​

當 Rancher 伺服器部署在 Docker 容器中時,容器內會安裝一個本地 Kubernetes 叢集供 Rancher 使用。由於 Rancher 的許多功能以部署形式執行,而特權模式是在容器內執行容器所必需的,因此您需要使用 --privileged 選項安裝 Rancher。

Docker 說明​

如果您想要使用 Docker 命令繼續離線安裝,請跳過本頁面的其餘部分,並按照此頁面上的說明進行操作。

Kubernetes 說明​

Rancher 建議在 Kubernetes 叢集上安裝 Rancher。高可用性 Kubernetes 安裝由三個節點組成,在 Kubernetes 叢集上執行 Rancher 伺服器元件。持久層(etcd)也在這三個節點上複製,提供冗餘和資料複製,以防其中一個節點故障。

1. 新增 Helm Chart 儲存庫​

從可存取網際網路的系統,取得最新的 Helm chart 並將產生的清單複製到可存取 Rancher 伺服器叢集的系統。

  1. 如果尚未安裝,請在可連接網際網路的工作站上本機安裝 helm。注意:請參閱 Helm 版本要求以選擇用於安裝 Rancher 的 Helm 版本。

  2. 使用 helm repo add 命令新增包含安裝 Rancher 的 chart 的 Helm chart 儲存庫。有關儲存庫選擇以及哪個最適合您的使用案例的詳細資訊,請參閱選擇 Rancher 版本。

    • Latest:建議用於試用最新功能
      helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
    • Stable:建議用於生產環境
      helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
    • Alpha:即將發布版本的實驗性預覽。
      helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
      注意:不支援升級到、從或在 Alpha 版本之間。
  3. 取得最新的 Rancher chart。這將下載 chart 並將其儲存在當前目錄中作為 .tgz 檔案。

    helm fetch rancher-<CHART_REPO>/rancher

    如果您需要特定版本的 Rancher,可以使用 Helm --version 參數取得,如下例所示:

    helm fetch rancher-stable/rancher --version=v2.4.8

2. 選擇您的 SSL 設定​

Rancher 伺服器預設設計為安全的,需要 SSL/TLS 設定。

當 Rancher 安裝在離線 Kubernetes 叢集上時,有兩種推薦的憑證來源選項。

備註

如果您想要在外部終止 SSL/TLS,請參閱外部負載平衡器上的 TLS 終止。

設定Chart 選項說明需要 cert-manager
Rancher 生成的自簽憑證ingress.tls.source=rancher使用 Rancher 生成的 CA 簽發的憑證(自簽)
這是預設值,在渲染 Helm 範本時不需要新增。
是
來自檔案的憑證ingress.tls.source=secret透過建立 Kubernetes Secret 使用您自己的憑證檔案。
此選項必須在渲染 Rancher Helm 範本時傳遞。
否

離線安裝的 Helm Chart 選項​

在設定 Rancher Helm 範本時,Helm chart 中有幾個專門為離線安裝設計的選項。

Chart 選項Chart 值說明
certmanager.version<version>根據執行的 cert-manager 版本設定適當的 Rancher TLS 簽發者。
systemDefaultRegistry<REGISTRY.YOURDOMAIN.COM:PORT>設定 Rancher 伺服器在佈建叢集時始終從您的私有鏡像倉庫提取映像檔。
useBundledSystemCharttrue設定 Rancher 伺服器使用打包的 Helm 系統 chart 副本。系統 chart 儲存庫包含監控、日誌記錄、告警和全域 DNS 等功能所需的所有目錄項目。這些 Helm chart 位於 GitHub,但由於您處於離線環境中,使用 Rancher 內建的 chart 會比設定 Git 鏡像容易得多。

3. 取得 Cert-Manager Chart​

根據您在 2. 選擇您的 SSL 設定中做出的選擇,完成以下程序之一。

選項 A:預設自簽憑證​

預設情況下,Rancher 生成 CA 並使用 cert-manager 簽發用於存取 Rancher 伺服器介面的憑證。

備註

cert-manager 最近的變更需要升級。如果您正在升級 Rancher 並使用早於 v0.11.0 的 cert-manager 版本,請參閱我們的升級 cert-manager 文件。

1. 新增 cert-manager 儲存庫​

從連接到網際網路的系統,將 cert-manager 儲存庫新增到 Helm:

helm repo add jetstack https://charts.jetstack.io
helm repo update
2. 取得 cert-manager Chart​

從 Helm chart 儲存庫取得最新的 cert-manager chart。

helm fetch jetstack/cert-manager --version v1.11.0
3. 檢索 cert-manager CRD​

下載 cert-manager 所需的 CRD 檔案:

curl -L -o cert-manager-crd.yaml https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.crds.yaml

4. 安裝 Rancher​

將取得的 chart 複製到可存取 Rancher 伺服器叢集的系統以完成安裝。

1. 安裝 cert-manager​

使用您用來安裝 chart 的相同選項安裝 cert-manager。請記得設定 image.repository 選項以從您的私有鏡像倉庫提取映像檔。

備註

要了解如何自訂 cert-manager 安裝的選項(包括您的叢集使用 PodSecurityPolicies 的情況),請參閱 cert-manager 文件。

點擊展開

如果您使用自簽憑證,請安裝 cert-manager:

  1. 建立 cert-manager 的命名空間。

    kubectl create namespace cert-manager
  2. 建立 cert-manager CustomResourceDefinitions (CRD)。

    kubectl apply -f cert-manager-crd.yaml
  3. 安裝 cert-manager。

    helm install cert-manager ./cert-manager-v1.11.0.tgz \
    --namespace cert-manager \
    --set image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-controller \
    --set webhook.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-webhook \
    --set cainjector.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-cainjector \
    --set startupapicheck.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-ctl

2. 安裝 Rancher​

首先,請參閱新增 TLS Secret 以發布憑證檔案,以便 Rancher 和 Ingress 控制器可以使用它們。

然後,使用 kubectl 建立 Rancher 的命名空間:

kubectl create namespace cattle-system

接下來,安裝 Rancher,宣告您選擇的選項。使用下面的參考表替換每個佔位符。Rancher 需要設定為使用私有鏡像倉庫,以便佈建任何 Rancher 啟動的 Kubernetes 叢集或 Rancher 工具。

佔位符說明
<VERSION>輸出 tarball 的版本號碼。
<RANCHER.YOURDOMAIN.COM>您指向負載平衡器的 DNS 名稱。
<REGISTRY.YOURDOMAIN.COM:PORT>您私有鏡像倉庫的 DNS 名稱。
<CERTMANAGER_VERSION>在 k8s 叢集上執行的 Cert-manager 版本。
   helm install rancher ./rancher-<VERSION>.tgz \
--namespace cattle-system \
--set hostname=<RANCHER.YOURDOMAIN.COM> \
--set certmanager.version=<CERTMANAGER_VERSION> \
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 設定要在 Rancher 中使用的預設私有鏡像倉庫
--set useBundledSystemChart=true # 使用打包的 Rancher 系統 chart

選用:要安裝特定的 Rancher 版本,請設定 rancherImageTag 值,例如:--set rancherImageTag=v2.5.8

選項 B:使用 Kubernetes Secret 的來自檔案的憑證​

1. 建立 Secret​

從您自己的憑證為 Rancher 使用建立 Kubernetes Secret。憑證的通用名稱需要與下面命令中的 hostname 選項相符,否則 Ingress 控制器將無法為 Rancher 佈建站點。

2. 安裝 Rancher​

安裝 Rancher,宣告您選擇的選項。使用下面的參考表替換每個佔位符。Rancher 需要設定為使用私有鏡像倉庫,以便佈建任何 Rancher 啟動的 Kubernetes 叢集或 Rancher 工具。

佔位符說明
<VERSION>輸出 tarball 的版本號碼。
<RANCHER.YOURDOMAIN.COM>您指向負載平衡器的 DNS 名稱。
<REGISTRY.YOURDOMAIN.COM:PORT>您私有鏡像倉庫的 DNS 名稱。
   helm install rancher ./rancher-<VERSION>.tgz \
--namespace cattle-system \
--set hostname=<RANCHER.YOURDOMAIN.COM> \
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
--set ingress.tls.source=secret \
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 設定要在 Rancher 中使用的預設私有鏡像倉庫
--set useBundledSystemChart=true # 使用打包的 Rancher 系統 chart

如果您使用私有 CA 簽署的憑證,請在 --set ingress.tls.source=secret 之後新增 --set privateCA=true:

   helm install rancher ./rancher-<VERSION>.tgz \
--namespace cattle-system \
--set hostname=<RANCHER.YOURDOMAIN.COM> \
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
--set ingress.tls.source=secret \
--set privateCA=true \
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 設定要在 Rancher 中使用的預設私有鏡像倉庫
--set useBundledSystemChart=true # 使用打包的 Rancher 系統 chart

安裝完成。

其他資源​

這些資源在安裝 Rancher 時可能會有所幫助: