コンテンツ ライブラリを作成して仮想マシン テンプレートをポピュレートしたら、vSphere Client を使用してそのライブラリを名前空間に追加します。ライブラリを名前空間に追加することで、DevOps ユーザーにライブラリへのアクセス権が付与されます。また、Data Center CLI (DCLI) コマンドを使用して、書き込み可能または読み取り専用のコンテンツ ライブラリを名前空間に追加したり、クラスタ レベルで読み取り専用ライブラリを割り当てたりできます。

vSphere Client を使用した名前空間への仮想マシン コンテンツ ライブラリの追加

vSphere Client で追加するコンテンツ ライブラリは読み取り専用です。DevOps ユーザーはこのコンテンツ ライブラリのイメージにアクセスできますが、このライブラリに仮想マシン イメージを公開することはできません。

1 つの名前空間に複数のコンテンツ ライブラリを追加できます。また、同じコンテンツ ライブラリを複数の名前空間に追加できます。
注: この手順は、仮想マシン サービスのコンテンツ ライブラリにのみ適用されます。 Tanzu Kubernetes Grid のコンテンツ ライブラリは、 Tanzu Kubernetes Grid カードから管理する必要があります。

前提条件

必要な権限:
  • 名前空間.クラスタ全体の構成の変更
  • 名前空間.名前空間構成の変更

手順

  1. vSphere Client で、名前空間に移動します。
    1. vSphere Client ホーム メニューから、[ワークロード管理] を選択します。
    2. [名前空間] タブをクリックして、名前空間をクリックします。
  2. コンテンツ ライブラリを追加します。
    1. [}VM サービス] カードで [コンテンツ ライブラリの追加] をクリックします。
    2. 1 つ以上のコンテンツ ライブラリを選択して、[OK] をクリックします。

vSphere Client を使用した名前空間での仮想マシン コンテンツ ライブラリの管理

ライブラリと名前空間を関連付けた後で、vSphere Client を使用して名前空間からそれを削除できます。コンテンツ ライブラリを追加することもできます。

名前空間からコンテンツ ライブラリを削除しても、ライブラリ イメージを使用して以前にデプロイされた仮想マシンは影響を受けません。
注: この手順は、仮想マシン サービスのコンテンツ ライブラリにのみ適用されます。 Tanzu Kubernetes Grid コンテンツ ライブラリは、 Tanzu Kubernetes Grid カードから管理する必要があります。

前提条件

必要な権限:
  • 名前空間.クラスタ全体の構成の変更
  • 名前空間.名前空間構成の変更

手順

  1. vSphere Client で、名前空間に移動します。
    1. vSphere Client ホーム メニューから、[ワークロード管理] を選択します。
    2. [名前空間] タブをクリックして、名前空間をクリックします。
  2. コンテンツ ライブラリを追加または削除します。
    1. [仮想マシン サービス] カードで [コンテンツ ライブラリの管理] をクリックします。
    2. 次のいずれかの操作を実行します。
      オプション 説明
      コンテンツ ライブラリの削除 コンテンツ ライブラリを選択解除し、[OK] をクリックします。
      コンテンツ ライブラリの追加 1 つ以上のコンテンツ ライブラリを選択して、[OK] をクリックします。

次のタスク

ライブラリの OVF テンプレートは Kubernetes 名前空間で仮想マシン イメージとして使用できるようになり、DevOps は仮想マシンをセルフサービスする際に、これを使用できます。 vSphere IaaS control plane への仮想マシンのデプロイを参照してください。
注: 名前空間にはライブラリの OVF テンプレートのみが表示されます。他のタイプのコンテンツは名前空間に表示されません。

Data Center CLI を使用した名前空間への仮想マシン コンテンツ ライブラリの追加

vSphere 管理者は、Data Center CLI (DCLI) コマンドを使用して、名前空間にコンテンツ ライブラリを割り当てることができます。名前空間に関連付けるライブラリは、その割り当て時に、書き込み可能にすることができます。ライブラリが書き込み可能な場合、DevOps ユーザーはライブラリとライブラリ内のイメージを表示するだけでなく、そこに新しい仮想マシン イメージを公開できます。

ローカル、公開済み、サブスクライブ済みなど、あらゆるタイプのライブラリを、DCLI コマンドで名前空間に追加できます。ただし、書き込み可能ライブラリとしてリンクできるのは、ローカル ライブラリと公開済みライブラリのみです。コンテンツ ライブラリとライブラリ アイテムは、関連付けられた名前空間でのみ使用できます。

手順

  1. root ユーザー アカウントを使用して vCenter Server にログインします。
  2. DCLI を対話モードで使用するために、dcli +i と入力します。
  3. 名前空間に関連付けるコンテンツ ライブラリの ID を取得します。
    dcli > namespacemanagement content library list
  4. 次のコマンドを実行して、コンテンツ ライブラリを名前空間に関連付けます。
    更新操作は増分操作ではありません。名前空間に関連付けられるのは、指定したライブラリだけです。以前に追加されたライブラリは、その ID が指定されていない限り削除されます。たとえば、 '[{"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 – 名前空間に関連付けるコンテンツ ライブラリの ID と、ライブラリが書き込み可能かどうか。
    次に例を示します。
    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

Data Center CLI を使用した スーパーバイザー への仮想マシン コンテンツ ライブラリの追加

コンテンツ ライブラリは、名前空間レベルで割り当てるだけでなく、vSphere 管理者が Data Center CLI (DCLI) コマンドを使用して スーパーバイザー クラスタに関連付けることもできます。コンテンツ ライブラリは、スーパーバイザー 内のすべての名前空間で使用できるようになります。

ローカル、公開済み、サブスクライブ済みなど、あらゆるタイプのライブラリを関連付けることができます。

注: スーパーバイザー に関連付けられたコンテンツ ライブラリは読み取り専用です。DevOps ユーザーはこのコンテンツ ライブラリの仮想マシン イメージにアクセスすることはできますが、このライブラリに仮想マシン イメージを公開することはできません。

前提条件

DCLI コマンドの詳細については、「 VMware Data Center CLI」を参照してください。

手順

  1. root ユーザー アカウントを使用して vCenter Server にログインします。
  2. DCLI を対話モードで使用するために、dcli +i と入力します。
  3. スーパーバイザー の名前と スーパーバイザー に接続するコンテンツ ライブラリの ID を取得します。
    1. クラスタの一覧から スーパーバイザー の名前を取得します。
      このコマンドを実行すると、 vCenter Server で使用可能なクラスタがすべて一覧表示されます。
      dcli > namespacemanagement clusters list
    2. vCenter Server で使用できるあらゆるタイプのすべてのコンテンツ ライブラリの ID を一覧表示します。
      dcli > library list
    3. 特定のライブラリの詳細を確認します。
      dcli > library get --library-id content_library_ID
  4. 1 つまたは複数のコンテンツ ライブラリを スーパーバイザー に関連付けます。
    更新操作は増分操作ではありません。名前空間に関連付けられるのは、指定したライブラリだけです。以前に追加されたライブラリは、その ID が指定されていない限り削除されます。たとえば、 '[{"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スーパーバイザー クラスタの ID。
    • --content-libraries content_library_IDスーパーバイザー に関連付けるコンテンツ ライブラリの ID。複数の 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
    出力には、接続されたコンテンツ ライブラリの ID が含まれている必要があります。
  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 – クラスタ レベルの特定のコンテンツ ライブラリに関する詳細情報。