跳至主要内容

Rancher 擴充功能

擴充功能允許使用者、開發者、合作夥伴和客戶擴展和增強 Rancher UI。此外,使用者可以獨立於 Rancher 版本之外對其 UI 功能進行變更和增強。擴充功能將使使用者能夠在 Rancher 之上進行建置,以更好地根據各自的環境進行客製化。請注意,使用者還可以更新到新版本以及回滾到先前的版本。

擴充功能是只能在叢集中安裝一次的 Helm chart;因此,這些 chart 已經過簡化並與 Apps 下列出的一般 Helm chart 分開。

內建 Rancher 擴充功能的範例包括 Fleet、Explorer 和 Harvester。其他可以手動新增的使用 Extensions API 的擴充功能範例包括 Kubewarden 和 Elemental。

先決條件​

您必須以管理員身份登入才能檢視擴充功能管理頁面並與其互動。

安裝擴充功能​

  1. 點擊 Configuration 下的 ☰ > Extensions。

  2. 如果尚未在 Apps 中安裝,您必須透過點擊 Enable 按鈕來啟用擴充功能 operator。

    • 如果您的安裝不是離線環境,請點擊 OK 以新增 Rancher 擴充功能儲存庫。否則,取消勾選該核取方塊並點擊 OK。

    Rancher extension repository

  3. 在 Extensions 頁面上,點擊 Available 標籤以選擇您想要安裝的擴充功能。

  4. 如果沒有顯示可用的擴充功能,您可以按照以下方式手動新增儲存庫:

    4.1. 在螢幕右上角,點擊 ⋮ > Manage Repositories > Create。

    4.2. 新增所需的儲存庫名稱,確保同時指定 Git Repo URL 和 Git Branch。

    4.3. 再次點擊右下角的 Create 以完成。

    Manage repositories

  5. 在 Available 標籤下,點擊所需擴充功能和版本上的 Install,如下面的範例所示。您也可以從此畫面更新您的擴充功能,因為如果有可用的更新,Update 按鈕將出現在擴充功能上。

    Install Kubewarden

  6. 點擊在擴充功能成功安裝後將出現的 Reload 頁面按鈕。請注意,剛安裝擴充功能的已登入使用者將看不到 UI 的變更,除非他們重新載入頁面。

    Reload button

更新和升級擴充功能​

  1. 點擊 Configuration 下的 ☰ > Extensions。
  2. 選擇 Updates 標籤。
  3. 點擊 Update。

如果擴充功能有新版本,在 Available 標籤中該擴充功能的相關卡片上也會顯示 Update 按鈕。

刪除擴充功能​

  1. 點擊 ☰,然後點擊您的本地叢集名稱。
  2. 從側邊欄中,選擇 Apps > Installed Apps。
  3. 找到您要刪除的 chart 名稱並勾選旁邊的核取方塊。
  4. 點擊 Delete。

刪除擴充功能儲存庫​

  1. 點擊 Configuration 下的 ☰ > Extensions。
  2. 在右上角,點擊 ⋮ > Manage Repositories。
  3. 找到您要刪除的擴充功能儲存庫名稱。勾選儲存庫名稱旁邊的核取方塊,然後點擊 Delete。

刪除擴充功能儲存庫容器映像​

  1. 點擊 ☰,然後在 Configuration 下選擇 Extensions。
  2. 在右上角,點擊 ⋮ > Manage Extension Catalogs。
  3. 找到您要刪除的容器映像名稱,然後點擊 ⋮ > Uninstall。

卸載擴充功能​

有兩種方式可以卸載或停用擴充功能:

  1. 在 Installed 標籤下,點擊您想要移除的擴充功能上的 Uninstall 按鈕。

    Uninstall extensions

  2. 在擴充功能管理頁面上,點擊 ⋮ > Disable Extension Support。這將停用所有已安裝的擴充功能。

    Disable extensions

警告

您必須在停用擴充功能後重新載入頁面,否則可能會出現顯示問題。

開發擴充功能​

要了解如何開發您自己的擴充功能,請參閱官方的 Getting Started 指南。

在離線環境中使用擴充功能​

如果您打算在離線環境中使用擴充功能,您必須在完成某些任務之前執行一些額外的步驟。

在離線環境中存取 Rancher UI 擴充功能​

Rancher 透過位於 https://hub.docker.com/r/rancher/ui-plugin-catalog/tags 的 ui-plugin-catalog 容器映像提供一些擴充功能,例如 Kubewarden 和 Elemental。如果您嘗試在離線環境中安裝這些擴充功能,您必須使 ui-plugin-catalog 映像可存取。

  1. 將 ui-plugin-catalog 映像鏡像到私有註冊表:
export REGISTRY_ENDPOINT=<my-private-registry-endpoint> # e.g. "my-private-registry.com"
docker pull rancher/ui-plugin-catalog:<tag>
docker tag rancher/ui-plugin-catalog:<tag> $REGISTRY_ENDPOINT/rancher/ui-plugin-catalog:<tag>
docker push $REGISTRY_ENDPOINT/rancher/ui-plugin-catalog:<tag>
2. 使用鏡像映像建立 Kubernetes [deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/):
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui-plugin-catalog
namespace: cattle-ui-plugin-system
labels:
catalog.cattle.io/ui-extensions-catalog-image: ui-plugin-catalog
spec:
replicas: 1
selector:
matchLabels:
catalog.cattle.io/ui-extensions-catalog-image: ui-plugin-catalog
template:
metadata:
namespace: cattle-ui-plugin-system
labels:
catalog.cattle.io/ui-extensions-catalog-image: ui-plugin-catalog
spec:
containers:
- name: server
image: <my-private-registry-endpoint>/rancher/ui-plugin-catalog:<tag>
imagePullPolicy: Always
imagePullSecrets:
- name: <my-registry-credentials>
  1. 透過建立 ClusterIP service 來公開 deployment:
apiVersion: v1
kind: Service
metadata:
name: ui-plugin-catalog-svc
namespace: cattle-ui-plugin-system
spec:
ports:
- name: catalog-svc-port
port: 8080
protocol: TCP
targetPort: 8080
selector:
catalog.cattle.io/ui-extensions-catalog-image: ui-plugin-catalog
type: ClusterIP
  1. 建立針對 ClusterIP service 的 ClusterRepo:
apiVersion: catalog.cattle.io/v1
kind: ClusterRepo
metadata:
name: ui-plugin-catalog-repo
spec:
url: http://ui-plugin-catalog-svc.cattle-ui-plugin-system:8080

成功設定這些資源後,您可以將擴充功能從 ui-plugin-charts manifest 安裝到您的離線環境中。

在離線環境中匯入和安裝擴充功能​

  1. 找到您想要匯入為擴充功能的容器映像儲存庫的位址。您應該匯入並使用映像的最新標記版本,以確保您收到最新的功能和安全更新。
    • (可選) 如果容器映像是私有的:在 cattle-ui-plugin-system 命名空間中建立一個註冊表 secret。在 Registry Domain Name 欄位中輸入映像位址的網域。
  2. 點擊 ☰,然後在 Configuration 下選擇 Extensions。
  3. 在右上角,點擊 ⋮ > Manage Extension Catalogs。
  4. 選擇 Import Extension Catalog 按鈕。
  5. 在 Catalog Image Reference 欄位中輸入映像位址。
    • (可選) 如果容器映像是私有的,請從 Pull Secrets 下拉選單中選擇您剛建立的 secret。
  6. 點擊 Load。擴充功能現在將處於 Pending 狀態。
  7. 返回 Extensions 頁面。
  8. 選擇 Available 標籤,並點擊 Reload 以確保擴充功能列表是最新的。
  9. 找到您剛新增的擴充功能,並點擊 Install。

在離線環境中更新和升級擴充功能儲存庫​

非離線的擴充功能儲存庫會自動更新。如果儲存庫是離線的,您必須手動更新它。

首先,透過遵循最初匯入和安裝擴充功能儲存庫的相同步驟,將最新變更鏡像到您的私有註冊表。

在您鏡像最新變更後,請遵循以下步驟:

  1. 點擊 ☰ > Local。
  2. 從側邊欄中,選擇 Workloads > Deployments。
  3. 從命名空間下拉選單中,選擇 cattle-ui-plugin-system。
  4. 找到 cattle-ui-plugin-system 命名空間。
  5. 選擇 ui-plugin-catalog deployment。
  6. 點擊 ⋮ > Edit config。
  7. 使用最新映像更新 deployment 容器中的 Container Image 欄位。
  8. 點擊 Save。