Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

手動部署Trident操作員(離線模式)

貢獻者 netapp-aruldeepa

您可以手動部署Trident操作員來安裝Trident。此程序適用於Trident所需的容器映像存放在私人鏡像倉庫中的安裝情況。如果您沒有私有鏡像倉庫,請使用"標準部署流程"

關於Trident25.06的關鍵訊息

*您必須閱讀以下關於Trident的重要資訊。 *

關於Trident的關鍵訊息
  • Trident現已支援 Kubernetes 1.34。在升級 Kubernetes 之前先升級Trident 。

  • Trident嚴格強制要求在 SAN 環境中使用多路徑配置,建議值為 `find_multipaths: no`在 multipath.conf 檔案中。

    使用非多路徑配置或使用 `find_multipaths: yes`或者 `find_multipaths: smart`multipath.conf 檔案中的值會導致掛載失敗。 Trident建議使用 `find_multipaths: no`自 21.07 版本發布以來。

手動部署Trident操作員並安裝Trident

審查"安裝概述"確保您已滿足安裝先決條件並為您的環境選擇了正確的安裝選項。

開始之前

登入 Linux 主機並驗證它是否正在管理一個正常工作的進程。"支援的 Kubernetes 集群"並且您擁有必要的權限。

註 使用 OpenShift 時,請 oc`而不是 `kubectl`在以下所有範例中,請先以 system:admin 身分登錄,方法是執行下列命令。 `oc login -u system:admin`或者 `oc login -u kube-admin
Details
  1. 請驗證您的 Kubernetes 版本:

    kubectl version
  2. 驗證叢集管理員權限:

    kubectl auth can-i '*' '*' --all-namespaces
  3. 驗證您是否可以啟動使用 Docker Hub 映像的 pod,並透過 pod 網路存取您的儲存系統:

    kubectl run -i --tty ping --image=busybox --restart=Never --rm -- \
      ping <management IP>

步驟 1:下載Trident安裝包

Trident安裝套件包含部署Trident操作員和安裝Trident所需的一切。從下列位置下載並解壓縮最新版本的Trident安裝程序"GitHub 上的 Assets 部分"

wget https://github.com/NetApp/trident/releases/download/v6.0/trident-installer-25.06.0.tar.gz
tar -xf trident-installer-25.06.0.tar.gz
cd trident-installer

步驟 2:建立 `TridentOrchestrator`CRD

創建 `TridentOrchestrator`自訂資源定義(CRD)。你將創建一個 `TridentOrchestrator`稍後會提供自訂資源。請使用適當的 CRD YAML 版本 `deploy/crds`創建 `TridentOrchestrator`CRD:

kubectl create -f deploy/crds/<VERSION>.yaml

步驟 3:更新操作員中的登錄位置

/deploy/operator.yaml, 更新 `image: docker.io/netapp/trident-operator:25.06.0`反映您的影像註冊位置。你的"Trident與CSI影像"CSI 映像檔可以位於同一個登錄檔或不同的登錄檔中,但所有 CSI 鏡像必須位於同一個登錄檔中。例如:

  • `image: <your-registry>/trident-operator:25.06.0`如果您的所有圖片都位於同一個註冊表中。

  • `image: <your-registry>/netapp/trident-operator:25.06.0`如果您的Trident鏡像與 CSI 映像位於不同的登錄檔。

步驟 4:部署Trident操作員

Trident安裝程式提供了一個捆綁文件,可用於安裝操作符並建立關聯物件。該捆綁檔案提供了一種簡單的方法來部署操作員並使用預設配置安裝Trident 。

  • 對於運行 Kubernetes 1.24 的集群,請使用 bundle_pre_1_25.yaml

  • 對於運行 Kubernetes 1.25 或更高版本的集群,請使用 bundle_post_1_25.yaml

開始之前
  • 預設情況下, Trident安裝程式會將操作員部署在 `trident`命名空間。如果 `trident`命名空間不存在,請使用以下命令建立:

    kubectl apply -f deploy/namespace.yaml
  • 要將運算子部署到除命名空間之外的其他命名空間 trident`命名空間,更新 `serviceaccount.yamlclusterrolebinding.yaml`和 `operator.yaml`並使用以下命令生成您的捆綁文件 `kustomization.yaml

    1. 創建 `kustomization.yaml`使用以下命令,其中 <bundle.yaml> 為 `bundle_pre_1_25.yaml`或者 `bundle_post_1_25.yaml`根據您的 Kubernetes 版本。

      cp deploy/kustomization_<bundle.yaml> deploy/kustomization.yaml
    2. 使用以下指令編譯捆綁包,其中 <bundle.yaml> 為 `bundle_pre_1_25.yaml`或者 `bundle_post_1_25.yaml`根據您的 Kubernetes 版本。

      kubectl kustomize deploy/ > deploy/<bundle.yaml>
步驟
  1. 建立資源並部署操作員:

    kubectl create -f deploy/<bundle.yaml>
  2. 確認操作員、部署和副本集已建立。

    kubectl get all -n <operator-namespace>
重要 Kubernetes 叢集中應該只有*一個*操作員實例。不要建立多個Trident操作員部署。

步驟 5:更新映像登錄位置 TridentOrchestrator

你的"Trident與CSI影像"CSI 映像檔可以位於同一個登錄檔或不同的登錄檔中,但所有 CSI 映像必須位於同一個登錄檔中。更新 `deploy/crds/tridentorchestrator_cr.yaml`根據您的註冊表配置新增其他位置規範。

一個註冊表中的圖像
imageRegistry: "<your-registry>"
autosupportImage: "<your-registry>/trident-autosupport:25.06"
tridentImage: "<your-registry>/trident:25.06.0"
不同註冊機構中的影像
imageRegistry: "<your-registry>"
autosupportImage: "<your-registry>/trident-autosupport:25.06"
tridentImage: "<your-registry>/trident:25.06.0"

步驟 6:創建 `TridentOrchestrator`並安裝Trident

現在您可以創建 `TridentOrchestrator`並安裝Trident。您也可以選擇進一步"自訂您的Trident安裝"使用屬性 `TridentOrchestrator`規格以下範例展示了Trident和 CSI 映像位於不同登錄檔的安裝。

kubectl create -f deploy/crds/tridentorchestrator_cr.yaml
tridentorchestrator.trident.netapp.io/trident created

kubectl describe torc trident

Name:        trident
Namespace:
Labels:      <none>
Annotations: <none>
API Version: trident.netapp.io/v1
Kind:        TridentOrchestrator
...
Spec:
  Autosupport Image:  <your-registry>/trident-autosupport:25.06
  Debug:              true
  Image Registry:     <your-registry>
  Namespace:          trident
  Trident Image:      <your-registry>/trident:25.06.0
Status:
  Current Installation Params:
    IPv6:                       false
    Autosupport Hostname:
    Autosupport Image:          <your-registry>/trident-autosupport:25.06
    Autosupport Proxy:
    Autosupport Serial Number:
    Debug:                      true
    Http Request Timeout:       90s
    Image Pull Secrets:
    Image Registry:       <your-registry>
    k8sTimeout:           30
    Kubelet Dir:          /var/lib/kubelet
    Log Format:           text
    Probe Port:           17546
    Silence Autosupport:  false
    Trident Image:        <your-registry>/trident:25.06.0
  Message:                Trident installed
  Namespace:              trident
  Status:                 Installed
  Version:                v25.06.0
Events:
    Type Reason Age From Message ---- ------ ---- ---- -------Normal
    Installing 74s trident-operator.netapp.io Installing Trident Normal
    Installed 67s trident-operator.netapp.io Trident installed

驗證安裝

有幾種方法可以驗證您的安裝情況。

使用 `TridentOrchestrator`地位

現狀 TridentOrchestrator`指示安裝是否成功,並顯示已安裝的Trident版本。安裝過程中,狀態 `TridentOrchestrator`變化來自 `Installing`到 `Installed。如果你觀察 `Failed`狀態異常且操作員無法自行恢復,"查看日誌"

地位 描述

安裝

操作員正在使用此方法安裝Trident 。 TridentOrchestrator CR。

已安裝

Trident已成功安裝。

解除安裝

操作員正在卸載Trident,因為
spec.uninstall=true

已解除安裝

Trident已卸載。

失敗的

操作員無法安裝、修補、更新或解除安裝Trident;操作員將自動嘗試從此狀態復原。如果這種情況持續存在,則需要進行故障排除。

正在更新

操作員正在更新現有設備。

錯誤

這 `TridentOrchestrator`未使用。已經存在了另一個。

使用 pod 建立狀態

您可以透過查看已建立的 pod 的狀態來確認Trident安裝是否已完成:

kubectl get pods -n trident

NAME                                       READY   STATUS    RESTARTS   AGE
trident-controller-7d466bf5c7-v4cpw        6/6     Running   0           1m
trident-node-linux-mr6zc                   2/2     Running   0           1m
trident-node-linux-xrp7w                   2/2     Running   0           1m
trident-node-linux-zh2jt                   2/2     Running   0           1m
trident-operator-766f7b8658-ldzsv          1/1     Running   0           3m

使用 tridentctl

您可以使用 `tridentctl`檢查已安裝的Trident版本。

./tridentctl -n trident version

+----------------+----------------+
| SERVER VERSION | CLIENT VERSION |
+----------------+----------------+
| 25.06.0        | 25.06.0        |
+----------------+----------------+