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

使用kubecl建立後端

貢獻者

後端定義了Astra Trident與儲存系統之間的關係。它告訴Astra Trident如何與該儲存系統通訊、以及Astra Trident如何從該儲存系統配置磁碟區。安裝Astra Trident之後、下一步是建立後端。 `TridentBackendConfig`自訂資源定義( CRD )可讓您直接透過 Kubernetes 介面建立及管理 Trident 後端。您可以使用或等效的 CLI 工具來 `kubectl`進行 Kubernetes 發佈。

TridentBackendConfig

TridentBackendConfig(tbctbconfigtbackendconfig)為前端、命名 CRD 、可讓您使用管理 Astra Trident 後端 kubectl。Kubernetes 和儲存管理員現在可以直接透過 Kubernetes CLI 建立和管理後端(tridentctl、而不需要專用的命令列公用程式)。

建立物件時 TridentBackendConfig、會發生下列情況:

  • Astra Trident會根據您提供的組態自動建立後端。這在內部表示爲 A TridentBackend (tbetridentbackend) CR 。

  • TridentBackendConfig`與 Astra Trident 所建立的的有獨特的連結 `TridentBackend

每個都 TridentBackendConfig`使用維護一對一對應 `TridentBackend。前者是提供給使用者的介面、用於設計和設定後端;後者是 Trident 代表實際後端物件的方式。

警告 TridentBackend`CRS 由 Astra Trident 自動建立。您*不應該*修改這些項目。如果您想要更新後端、請修改物件以進行更新 `TridentBackendConfig

請參閱下列 CR 格式範例 TridentBackendConfig

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-san
spec:
  version: 1
  backendName: ontap-san-backend
  storageDriverName: ontap-san
  managementLIF: 10.0.0.1
  dataLIF: 10.0.0.2
  svm: trident_svm
  credentials:
    name: backend-tbc-ontap-san-secret

您也可以查看目錄中的 "Trident安裝程式"範例、以取得所需儲存平台 / 服務的範例組態。

`spec`採用後端特定的組態參數。在此範例中、後端會使用 `ontap-san`儲存驅動程式、並使用此處列出的組態參數。如需所需儲存驅動程式的組態選項清單、請參閱link:backends.html["儲存驅動程式的後端組態資訊"^]。

這 `spec`一節也包含 `credentials`和 `deletionPolicy`欄位、這些欄位是在 CR 中新推出 `TridentBackendConfig`的:

  • credentials:此參數為必填欄位、包含用於驗證儲存系統 / 服務的認證。此設定為使用者建立的Kubernetes Secret。認證資料無法以純文字格式傳遞、因此會產生錯誤。

  • deletionPolicy:此字段定義刪除時應發生的 `TridentBackendConfig`情況。可能需要兩種可能的值之一:

    • delete:這會同時刪除 TridentBackendConfig CR 和相關的後端。這是預設值。

    • retainTridentBackendConfig`刪除 CR 後、後端定義仍會存在、可透過管理 `tridentctl。將刪除原則設定為 retain`允許使用者降級至較早版本( 2004 年 1 月 21 日之前)、並保留建立的後端。此欄位的值可在建立後更新 `TridentBackendConfig

註 後端的名稱是使用設定 spec.backendName`的。如果未指定、則後端的名稱會設為物件名稱 `TridentBackendConfig( metadata.name )。建議使用明確設定後端名稱 spec.backendName
提示 使用建立的後端 tridentctl`沒有關聯的 `TridentBackendConfig`物件。您可以建立 CR 來 `TridentBackendConfig`選擇管理此類後端 `kubectl。必須注意指定相同的組態參數(例如 spec.backendName、、 spec.storagePrefix、 `spec.storageDriverName`等)。Astra Trident 會自動連結新建立的 `TridentBackendConfig`與先前存在的後端。

步驟總覽

若要使用建立新的後端 kubectl、您應該執行下列動作:

  1. 建立 "Kubernetes機密"。密碼包含 Astra Trident 與儲存叢集 / 服務通訊所需的認證。

  2. 建立 `TridentBackendConfig`物件。其中包含有關儲存叢集/服務的詳細資訊、並參考上一步建立的機密。

建立後端之後、您可以使用觀察後端的狀態 kubectl get tbc <tbc-name> -n <trident-namespace>、並收集其他詳細資料。

步驟1:建立Kubernetes機密

建立包含後端存取認證的秘密。這是每個儲存服務/平台所獨有的功能。範例如下:

kubectl -n trident create -f backend-tbc-ontap-san-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: backend-tbc-ontap-san-secret
type: Opaque
stringData:
  username: cluster-admin
  password: t@Ax@7q(>

下表摘要說明每個儲存平台的機密必須包含的欄位:

儲存平台機密欄位說明 秘密 欄位說明

Azure NetApp Files

ClientID

應用程式註冊的用戶端ID

適用於 GCP Cloud Volumes Service

Private金鑰ID

私密金鑰的ID。GCP服務帳戶API金鑰的一部分、具有CVS管理員角色

適用於 GCP Cloud Volumes Service

Private金鑰

私密金鑰:GCP服務帳戶API金鑰的一部分、具有CVS管理員角色

元素(NetApp HCI / SolidFire)

端點

MVIP、適用於SolidFire 採用租戶認證的不含用戶身分證明的叢集

ONTAP

使用者名稱

連線至叢集/ SVM的使用者名稱。用於認證型驗證

ONTAP

密碼

連線至叢集/ SVM的密碼。用於認證型驗證

ONTAP

用戶端權限金鑰

用戶端私密金鑰的Base64編碼值。用於憑證型驗證

ONTAP

chap使用 者名稱

傳入使用者名稱。如果useCHAP=true則需要。適用於 ontap-san`和 `ontap-san-economy

ONTAP

chapInitiator機密

CHAP啟動器密碼。如果useCHAP=true則需要。適用於 ontap-san`和 `ontap-san-economy

ONTAP

chapTargetUsername

目標使用者名稱。如果useCHAP=true則需要。適用於 ontap-san`和 `ontap-san-economy

ONTAP

chapTargetInitiator機密

CHAP目標啟動器機密。如果useCHAP=true則需要。適用於 ontap-san`和 `ontap-san-economy

此步驟中建立的秘密將會在下一個步驟中建立的物件欄位 TridentBackendConfig`中參照 `spec.credentials

步驟 2 :建立 TridentBackendConfig CR

您現在已準備好建立 TridentBackendConfig CR 了。在此範例中、使用驅動程式的後端 ontap-san`是使用下列物件建立的 `TridentBackendConfig

kubectl -n trident create -f backend-tbc-ontap-san.yaml
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-san
spec:
  version: 1
  backendName: ontap-san-backend
  storageDriverName: ontap-san
  managementLIF: 10.0.0.1
  dataLIF: 10.0.0.2
  svm: trident_svm
  credentials:
    name: backend-tbc-ontap-san-secret

步驟 3 :確認 CR 的狀態 TridentBackendConfig

現在您已建立 TridentBackendConfig CR 、可以驗證狀態。請參閱下列範例:

kubectl -n trident get tbc backend-tbc-ontap-san
NAME                    BACKEND NAME          BACKEND UUID                           PHASE   STATUS
backend-tbc-ontap-san   ontap-san-backend     8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8   Bound   Success

已成功建立後端並繫結至 TridentBackendConfig CR 。

階段可以採用下列其中一個值:

  • BoundTridentBackendConfig CR 與後端相關聯、且後端包含 configRef`設定為 `TridentBackendConfig CR 的 uid 的項目。

  • Unbound:使用表示 ""。 `TridentBackendConfig`物件未繫結至後端。根據預設、所有新建立的 CRS 都 `TridentBackendConfig`處於此階段。階段變更之後、就無法再恢復為Unbound(未綁定)。

  • DeletingTridentBackendConfig CR deletionPolicy 已設定為刪除。刪除 CR 後 TridentBackendConfig、它會轉換至「刪除」狀態。

    • 如果後端不存在持續磁碟區宣告( PVCS )、刪除 TridentBackendConfig`將會導致 Astra Trident 刪除後端和 `TridentBackendConfig CR 。

    • 如果後端上有一個或多個PVCS、則會進入刪除狀態。 TridentBackendConfig`CR 隨後也會進入刪除階段。只有刪除所有 PVCS 之後、才會刪除後端和 `TridentBackendConfig

  • Lost:與 CR 相關的後端 TridentBackendConfig`被意外或刻意刪除、 `TridentBackendConfig CR 仍有已刪除後端的參照。 TridentBackendConfig`無論值為何、仍可刪除 CR `deletionPolicy

  • Unknown: Astra Trident 無法判斷與 CR 相關聯的後端狀態或存在 TridentBackendConfig。例如、如果 API 伺服器沒有回應、或 tridentbackends.trident.netapp.io CRD 遺失。這可能需要介入。

在此階段、成功建立後端!還有幾項作業可以額外處理,例如"後端更新和後端刪除"

(選用)步驟4:取得更多詳細資料

您可以執行下列命令來取得有關後端的詳細資訊:

kubectl -n trident get tbc backend-tbc-ontap-san -o wide
NAME                    BACKEND NAME        BACKEND UUID                           PHASE   STATUS    STORAGE DRIVER   DELETION POLICY
backend-tbc-ontap-san   ontap-san-backend   8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8   Bound   Success   ontap-san        delete

此外、您也可以取得的 YAML/JSON 傾印 TridentBackendConfig

kubectl -n trident get tbc backend-tbc-ontap-san -o yaml
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  creationTimestamp: "2021-04-21T20:45:11Z"
  finalizers:
  - trident.netapp.io
  generation: 1
  name: backend-tbc-ontap-san
  namespace: trident
  resourceVersion: "947143"
  uid: 35b9d777-109f-43d5-8077-c74a4559d09c
spec:
  backendName: ontap-san-backend
  credentials:
    name: backend-tbc-ontap-san-secret
  managementLIF: 10.0.0.1
  dataLIF: 10.0.0.2
  storageDriverName: ontap-san
  svm: trident_svm
  version: 1
status:
  backendInfo:
    backendName: ontap-san-backend
    backendUUID: 8d24fce7-6f60-4d4a-8ef6-bab2699e6ab8
  deletionPolicy: delete
  lastOperationStatus: Success
  message: Backend 'ontap-san-backend' created
  phase: Bound

backendInfo`包含回應 CR 所建立後端 `TridentBackendConfig`的 `backendName`和 `backendUUID。此 lastOperationStatus`欄位代表 CR 上次操作的狀態 `TridentBackendConfig、可由使用者觸發(例如、使用者在中變更項目 spec)、或由 Astra Trident 觸發(例如 Astra Trident 重新啟動期間)。可能是「成功」或「失敗」。 phase`代表 CR 與後端之間關係的狀態 `TridentBackendConfig。在上述範例中、 phase`有值界限、表示 `TridentBackendConfig CR 與後端相關聯。

您可以執行 `kubectl -n trident describe tbc <tbc-cr-name>`命令以取得事件記錄的詳細資料。

警告 您無法使用更新或刪除包含相關物件 tridentctl`的後端 `TridentBackendConfig。瞭解在和 TridentBackendConfig`之間切換所涉及的步驟 `tridentctl"請參閱此處"