建立內容程式庫並在其中填入虛擬機器範本後,請使用 vSphere Client 將程式庫新增到命名空間。透過將程式庫新增至命名空間,授與 DevOps 使用者對程式庫的存取權。此外,還可以使用資料中心 CLI (DCLI) 命令將可寫入或唯讀內容程式庫新增到命名空間,或者在叢集層級指派唯讀程式庫。

使用 vSphere Client 將虛擬機器內容程式庫新增到命名空間

使用 vSphere Client 新增的內容程式庫是唯讀的。DevOps 使用者可以存取此內容程式庫中的映像,但無法將虛擬機器映像發佈到此程式庫。

可以將多個內容程式庫新增至單一命名空間。可以將同一個內容程式庫新增至不同的命名空間。
備註: 此程序僅適用於虛擬機器服務的內容程式庫。 Tanzu Kubernetes Grid 的內容程式庫必須從 Tanzu Kubernetes Grid 卡進行管理。

必要條件

必要權限:
  • 命名空間.修改叢集範圍的組態
  • 命名空間.修改命名空間組態

程序

  1. vSphere Client 中,移至命名空間。
    1. vSphere Client 主功能表中,選取工作負載管理
    2. 按一下命名空間索引標籤,然後按一下命名空間。
  2. 新增內容程式庫。
    1. 虛擬機器服務卡中,按一下新增內容程式庫
    2. 選取一或多個內容程式庫,然後按一下確定

使用 vSphere Client 管理命名空間上的虛擬機器內容程式庫

將程式庫與命名空間相關聯後,可以使用 vSphere Client 將其從命名空間中移除。也可以新增更多程式庫。

從命名空間移除內容程式庫不會影響先前使用程式庫映像部署的虛擬機器。
備註: 此程序僅適用於虛擬機器服務的內容程式庫。 Tanzu Kubernetes Grid內容程式庫必須從 Tanzu Kubernetes Grid卡進行管理。

必要條件

必要權限:
  • 命名空間.修改叢集範圍的組態
  • 命名空間.修改命名空間組態

程序

  1. vSphere Client 中,移至命名空間。
    1. vSphere Client 主功能表中,選取工作負載管理
    2. 按一下命名空間索引標籤,然後按一下命名空間。
  2. 新增或移除內容程式庫。
    1. 虛擬機器服務卡中,按一下管理內容程式庫
    2. 執行下列其中一項作業。
      選項 敘述
      移除內容程式庫 取消選取內容程式庫,然後按一下確定
      新增內容程式庫 選取一或多個內容程式庫,然後按一下確定

下一步

程式庫中的 OVF 範本將在 Kubernetes 命名空間中作為虛擬機器映像提供,並且可供 DevOps 以自助服務方式使用虛擬機器。請參閱 在 vSphere IaaS control plane 中部署虛擬機器
備註: 命名空間中僅顯示程式庫中的 OVF 範本。其他類型的內容不會顯示在命名空間中。

使用資料中心 CLI 將虛擬機器內容程式庫新增到命名空間

身為 vSphere 管理員,您可以使用資料中心 CLI (DCLI) 命令將內容程式庫指派給命名空間。指派程式庫時,可以將與命名空間相關聯的程式庫設為可寫入。如果程式庫為可寫入,則除了檢視程式庫和程式庫中的映像外,DevOps 使用者還可以向程式庫發佈新的虛擬機器映像。

憑藉 DCLI 命令,您可以將任何類型的程式庫 (包括本機程式庫、已發佈程式庫和已訂閱程式庫) 新增到命名空間。但是,只能將本機程式庫和已發佈程式庫連結為可寫入程式庫。內容程式庫和程式庫項目僅在相關聯的命名空間中可用。

程序

  1. 使用根使用者帳戶登入 vCenter Server
  2. 輸入 dcli +i,以在互動模式下使用 DCLI。
  3. 取得要與命名空間相關聯的內容程式庫的識別碼。
    dcli > namespacemanagement content library list
  4. 執行以下命令,將內容程式庫與命名空間相關聯。
    更新作業為非增量。只有清單中指定的程式庫才會與命名空間相關聯,並且先前已新增的程式庫會被移除,除非指定了這些程式庫的識別碼。例如,如果先更新 '[{"content_library": "CLA", "writable": "true"}]' 再更新 '[{"content_library": "CLB", "writable": "true"}]',系統就會移除 CLA,而僅新增 CLB。如果要同時關聯 CLA 和 CLB,則必須指定兩個程式庫: '[{"content_library": "CLA", "writable": "true"}, {"content_library": "CLB", "writable": "true"}]'
    dcli > namespaces instances update --namespace namespace_name --content-libraries '[{"content_library": "content_library_ID", "writable": "true | false"}]' 
    使用下列引數:
    • --namespace namespace_name - 命名空間的名稱。
    • --content_libraries content_library_ID writable: true | false - 要與命名空間相關聯的內容程式庫的識別碼,以及程式庫是否可寫入。
    例如,
    dcli > namespaces instances update --namespace lb-edit-ns --content-libraries '[{"content_library": "cl-b585915ddxxxxxxxx", "writable": "true"}]' 
  5. 若要從命名空間中刪除內容程式庫,請重複 namespaces instances update 命令,從陣列清單中移除內容程式庫項目。
    例如,
    dcli > namespaces instances update --namespace lb-edit-ns --content-libraries '[]'

結果

新增的內容程式庫將在 DevOps 命名空間視圖中變為可用。
DevOps 使用者可以執行以下命令來驗證是否已新增或刪除內容程式庫。
kubectl get cl -n lb-edit-ns
   NAMESPACE    NAME                   VSPHERENAME   TYPE    WRITABLE   STORAGETYPE   AGE
   lb-edit-ns   cl-b585915ddxxxxxxxx   Test-ns-cl    Local   true       Datastore     3m9s
kubectl describe cl cl-b585915ddxxxxxxxx -n lb-edit-ns
kubectl get clitem -n lb-edit-ns

使用資料中心 CLI 將虛擬機器內容程式庫新增到主管

除了在命名空間層級指派內容程式庫外,vSphere 管理員還可以使用資料中心 CLI (DCLI) 命令將程式庫與主管叢集相關聯。內容程式庫將可供主管中的所有命名空間使用。

可以關聯所有類型的程式庫,包括本機程式庫、已發佈程式庫和已訂閱程式庫。

備註:主管相關聯的內容程式庫為唯讀。DevOps 使用者只能存取此內容程式庫中的虛擬機器映像,但無法將虛擬機器映像發佈到此程式庫。

必要條件

如需有關 DCLI 命令的詳細資訊,請參閱 VMware 資料中心 CLI

程序

  1. 使用根使用者帳戶登入 vCenter Server
  2. 輸入 dcli +i,以在互動模式下使用 DCLI。
  3. 取得主管的名稱以及要連線到主管的內容程式庫識別碼。
    1. 從叢集清單中取得主管的名稱。
      該命令將列出 vCenter Server 上可用的所有叢集。
      dcli > namespacemanagement clusters list
    2. 列出 vCenter Server 上所有可用類型之所有內容程式庫的識別碼。
      dcli > library list
    3. 驗證特定程式庫的詳細資料。
      dcli > library get --library-id content_library_ID
  4. 將一或多個內容程式庫與主管相關聯。
    更新作業為非增量。只有清單中指定的程式庫才會與命名空間相關聯,並且先前已新增的程式庫會被移除,除非指定了這些程式庫的識別碼。例如,如果先更新 '[{"content_library": "CLA", "writable": "true"}]' 再更新 '[{"content_library": "CLB", "writable": "true"}]',系統就會移除 CLA,而僅新增 CLB。如果要同時關聯 CLA 和 CLB,則必須指定兩個程式庫: '[{"content_library": "CLA", "writable": "true"}, {"content_library": "CLB", "writable": "true"}]'
    dcli > namespacemanagement clusters update --cluster cluster_name --content-libraries '[{"content_library": content_library_ID_1}, {"content-library": content_library_ID_2}]'
    使用下列引數:
    • --cluster cluster_name - 主管叢集的識別碼。
    • --content-libraries content_library_ID- 要與主管相關聯的內容程式庫的識別碼。您可以列出多個識別碼。
      例如,
      dcli > namespacemanagement clusters update --cluster cluster_name --content-libraries '[{"content_library": 535d4b3d-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, {"content-library": b5aa7f68-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]'
  5. 確認內容程式庫已連線到叢集。
    dcli > namespacemanagement clusters get --cluster cluster_name
    輸出必須包含已連線內容程式庫的識別碼。
  6. 若要從叢集中刪除相關聯的內容程式庫,請重複 namespacemanagement clusters update 命令,從內容程式庫陣列清單中移除內容程式庫項目。
    例如,
    dcli > namespacemanagement clusters update --cluster cluster_name --content-libraries '[]'

結果

最新新增的內容程式庫將在 DevOps 叢集視圖中變得可用。vSphere 管理員對內容程式庫所做的任何變更都會反映在 DevOps 視圖中。DevOps 使用者可以執行下列命令來列出內容程式庫並說明其內容:
  • kubectl get ccl - 處於叢集層級的所有內容程式庫的清單。輸出可類似下列內容。
    NAME                   VSPHERENAME                          TYPE         STORAGETYPE   AGE
    cl-f28af8153fb849bd7   Kubernetes Service Content Library   Subscribed   Datastore     6d5h
    cl-knounwp7xxxxxxxxx   Image Registry Content Library       Local        Datastore     6d4h
  • kubectl get cclitem - 處於叢集層級的內容程式庫中所有項目的清單。
  • kubectl describe ccl NAME - 處於叢集層級的特定內容程式庫的詳細資訊。