管理者は、Tanzu が有効になっている vSphere 統合上にあるスーパーバイザー名前空間をユーザーが使用できるようにして、ユーザーがこの名前空間をクラウド テンプレートを介して Kubernetes 展開に追加したり、Service Broker カタログから申請したりできるようにします。

このタスクでは、展開で使用するために Cloud Assembly で Tanzu スーパーバイザー クラスタを追加する方法と、特定の Kubernetes リソースにアクセスできる Cloud Assembly プロジェクトおよびユーザーを定義する名前空間を作成または追加する方法について説明します。この機能は、VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) や Openshift などの統合ではなく、適切な vSphere クラウド アカウントに依存します。スーパーバイザー クラスタは、vSphere に関連付けられているカスタマイズされた Kubernetes クラスタです。これらのクラスタは Kubernetes API をエンド ユーザーに公開し、ワーカー ノードのプラットフォームとして Linux ではなく ESXi を使用します。スーパーバイザー名前空間は、Kubernetes リソースへのアクセス コントロールを簡素化します。これは、通常、個々の仮想マシンよりも名前空間にポリシーを適用するほうが容易であるためです。各スーパーバイザー クラスタには、複数の名前空間を作成できます。

Tanzu が有効になっている展開では、vSphere によって生成されたゲスト クラスタも使用できます。ゲスト クラスタとは、スーパーバイザー クラスタ上の仮想マシン内で実行される Kubernetes クラスタです。ゲスト クラスタは完全にアップストリームに準拠した Kubernetes であるため、すべての Kubernetes アプリケーションで動作します。vSphere 内のゲスト クラスタは、オープン ソースのクラスタ API プロジェクトを使用して Kubernetes クラスタのライフサイクルを管理します。Kubernetes クラスタは仮想マシン オペレータを使用して、ゲストを構成している仮想マシンを管理します。

注: Tanzu が有効な展開はサポート対象外であり、適切に機能しないため、 VMware Cloud Foundation (VCF) クラウド アカウントとは併用しないでください。

Tanzu が有効になっている vSphere インスタンスで使用する場合、スーパーバイザー名前空間のプロビジョニングに使用できるスーパーバイザー クラスタは、Kubernetes ゾーンによって定義されます。スーパーバイザー名前空間は、Tanzu が有効になっている vSphere インスタンスに固有のものです。Tanzu が有効になっている vSphere インスタンスに、汎用 Kubernetes リソースをプロビジョニングすることはできません。

プロジェクト閲覧者として指定された Cloud Assembly ユーザーには、名前空間に対して表示のみのアクセス権が付与されますが、プロジェクト メンバーは名前空間を編集できます。

名前空間に関連付けられているスーパーバイザー クラスタは、必要に応じて構成できます。

前提条件

  • Cloud Assembly でスーパーバイザー クラスタおよび名前空間を使用するには、vSphere 7.x エンドポイントが構成されている必要があります。vRealize Automation では、vSphere は vCenter Server クラウド アカウントの一部としてインストールされます。vRealize Automation に vCenter クラウド アカウントを作成しますを参照してください。
  • Tanzu を vSphere クラウド アカウントで有効にする必要があります。また、適切なスーパーバイザー名前空間が含まれている必要があります。
  • ユーザーを同期するために、vCenter Server と vRealize Automation 展開の両方で同じ Active Directory を使用する必要があります。そのようにしなかった場合でもプロビジョニングは機能しますが、vRealize Automation ユーザーは名前空間への自動アクセスを取得できません。

手順

  1. Cloud Assembly で、[インフラストラクチャ] > [構成] > [Kubernetes ゾーン] の順に選択します。
    この画面には使用可能な管理対象クラスタが表示され、さらにクラスタを追加できます。クラスタのいずれかをクリックすると、その詳細が表示されます。
  2. [新しい Kubernetes ゾーン] を選択します。
  3. ターゲット vSphere クラウド アカウントの [アカウント] の詳細を指定します。
  4. テキスト ボックスで検索アイコンをクリックして、すべての vSphere アカウントを表示するか、アカウントを名前で検索します。
  5. 新しいゾーンの [名前][説明] を入力します。
  6. 該当する場合は機能タグを追加します。詳細については、Cloud Assembly での機能タグの使用を参照してください。
  7. [プロビジョニング] タブをクリックして、名前空間に関連付けるスーパーバイザー クラスタを選択します。
  8. [コンピューティングの追加] をクリックして、使用可能なスーパーバイザー クラスタを表示して選択します。
  9. [追加] をクリックします。
  10. [インフラストラクチャ] > [管理] > [プロジェクト] を選択してから、Kubernetes ゾーンに関連付けるプロジェクトを選択します。
  11. [プロジェクト] ページの [Kubernetes プロビジョニング] タブをクリックします。
  12. [Kubernetes ゾーンの追加] をクリックし、作成したゾーンを追加します。必要に応じて複数のゾーンを使用できます。また、ゾーンの優先順位も設定します。
  13. [保存] をクリックします。

次のタスク

名前空間が構成されると、該当するユーザーには、Cloud Assembly[インフラストラクチャ] > [リソース] > [Kubernetes] 画面でその名前空間が表示されます。ユーザーは [サマリ] タブの [アドレス] リンクをクリックして vSphere 向け Kubernetes CLI Tools を開き、名前空間を管理できます。ユーザーがスーパーバイザー名前空間の詳細へのリンクにアクセスするには、クラウド管理者となるか、指定されたプロジェクトの名前空間のメンバーになることが必要です。また、カスタマイズされた Kubectl をダウンロードして、スーパーバイザー名前空間を利用することも可能です。ユーザーは、スーパーバイザー名前空間にログインして、他の名前空間と同じように使用し、クラウド テンプレートを作成してアプリケーションを展開できます。

名前空間をクラウド テンプレートに追加するには、[デザイン] > [クラウド テンプレート] の順に選択し、既存のクラウド テンプレートを選択するか、新しく作成します。次に、左側のメニューで [スーパーバイザー名前空間] の項目を選択し、キャンバスにドラッグします。

タグを使用して、ストレージ ポリシーをスーパーバイザー名前空間に割り当てることができます。展開で使用する Kubernetes ゾーンを指定する location:local などのタグ、および speed:fastspeed:slow などの他のタグをストレージ プロファイルに追加することができます。

formatVersion: 1
resources:
  Cloud_SV_Namespace_1:
  type: Cloud.SV.Namespace
  properties:
    name: 'a'
    storage:
      -profile:
         constraints:
           - tag: 'speed:fast'
      -profile:
        liimitMB:1000
        constraints:
           -tag: 'speed:slow'

このクラウド テンプレートは、制約がないスーパーバイザー名前空間を要求し、これに 2 つのストレージ プロファイルを指定しています。

スーパーバイザー名前空間を含むクラウド テンプレートを展開すると、ユーザーも Service Broker カタログからスーパーバイザー名前空間を要求できるようになります。また、Cloud Assembly の [展開] 画面をクリックして、展開に関する情報を表示したり、vSphere 上の名前空間に対して kubectl を実行するコマンドを含むリンクにアクセスしたりできます。

クラス名を指定できる vmclasses プロパティを使用することにより、クラウド テンプレート内のスーパーバイザー名前空間に対して特定の仮想マシン クラスを指定できます。次のクラウド テンプレートの例を参照してください。
resources:
  Cloud_SV_Namespace_1:
    type: Cloud.SV.Namespace
    properties:
      name: demo-vmclass1
      vmclasses:
        - name: vmclass1