VMware Aria Automation クラウド管理者は、コマンド ライン インターフェイスを使用してクラウド使用量インターフェイス (CCI) へのアクセスを有効にし、ガバナンス構造を構成できます。コマンド ライン インターフェイスは、Kubernetes コマンドライン ツールまたは kubectl を使用します。
CLI を使用して実行できるアクションの完全なリストについては、「クラウド使用インターフェイスの Kubernetes API リファレンス」を参照してください。
前提条件
- スーパーバイザー クラスタが vCenter インスタンスで有効になっていて、VMware Aria Automation に登録されていることを確認します。
- 最低でも Automation Service Broker の組織メンバーで、VMware Aria Automation または Automation Assembler の管理者サービス ロールを保有している必要があります。
- 以下のことを確認します。
- CCI kubectl プラグインをダウンロードしている。
- 管理者ユーザーの API トークンを取得するか、ユーザー パスワードを保存する変数を定義している。
- -t オプションを指定したトークンを使用するか、-u オプションを指定した管理者認証情報を使用して CCI サーバにログインし、デフォルトのコンテキストを CCI に変更している。
- Automation Assembler で vCenter Server クラウド アカウントが追加されていることを確認します。
上記の前提条件の詳細については、「クラウド使用量インターフェイスの設定と構成」を参照してください。
手順 1:プロジェクトとプロジェクト ロールのバインドの作成
Automation ユーザーをグループ化し、インフラストラクチャ リソースへのアクセスを設定するには、プロジェクトとプロジェクト ロールのバインドを作成します。
- プロジェクトを作成します。
kubectl create -f project.yaml
project.yaml
ファイルの例。apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- プロジェクト ロールのバインドを作成して、作成されたプロジェクト内でユーザーまたはグループにロールを割り当てます。
kubectl create -f projectrolebinding.yaml
次のprojectrolebinding.yaml
ファイルの例では、 admin プロジェクト ロールを持つユーザーを追加します。プロジェクト ロールの値は、 admin、 view、または edit です。apiVersion: authorization.cci.vmware.com/v1alpha1 kind: ProjectRoleBinding metadata: name: cci:user:vmware.com:<user_alias> namespace: <project_name> roleRef: apiGroup: authorization.cci.vmware.com kind: ProjectRole name: admin subjects: - kind: User name: <[email protected]>
手順 2:リージョンの作成
リージョンを作成して、スーパーバイザーをそのリージョンに割り当てられるようにします。
kubectl create -f region.yaml
region.yaml
ファイルの例。
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
手順 3:スーパーバイザーとリージョンの関連付け
スーパーバイザーをリージョンに関連付けるには、更新するスーパーバイザーを見つけて、名前空間の配置に使用されるリージョンとラベルを追加します。
- 更新するスーパーバイザーを見つけるには、スーパーバイザーを一覧表示します。スーパーバイザー リソースは、vCenter Server のデータ収集後に表示されます。
kubectl -n cci-config get supervisors
結果の例を次に示します。NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- スーパーバイザー
adminannie-vcenter:domain-c8
を更新します。kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
次の例には、metadata.labels
のキーと値のペアとspec.regionNames
リージョンが含まれています。 environment: testing ラベルと fipsMode: strict ラベルを使用して、スーパーバイザー配置の決定に役立てることができます。apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: Supervisor metadata: labels: environment: testing fipsMode: strict name: adminannie-vc:domain-c8 namespace: cci-config uid: ccd3d154-6404-47b7-8786-bb2d49ad9f5d spec: cloudAccountName: adminannie-vc externalId: domain-c8 externalName: wcp-test-dc-cluster regionNames: - <region_name>
- または、[スーパーバイザー リージョン] タブをクリックします にあるプロジェクトの
手順 4:リージョン バインドとリージョン バインド構成の作成
プロジェクトのユーザーがリージョン内のスーパーバイザーにスーパーバイザー名前空間を作成できるように、リージョン バインドとリージョン バインド構成を作成します。
- リージョン バインドを作成します。
kubectl create -f regionbinding.yaml
regionbinding.yaml
ファイルの例。apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
リージョン バインドにはスーパーバイザーの配置の設定が含まれていないため、リージョン バインド構成も作成する必要があります。
- 作成したすべてのリージョン バインドに対して、リージョン バインド構成を作成します。スーパーバイザーの追加のフィルタリングに使用される一致式を含めることができます。スーパーバイザー ラベルは、リージョン内のスーパーバイザーのサブセットに対してスーパーバイザー名前空間の配置を許可するために使用されます。
kubectl create -f regionbindingconfig.yaml
次のregionbindingconfig.yaml
ファイルの例では、 testing 環境ラベルに一致するすべてのスーパーバイザーが、そのプロジェクトとリージョンで作成されたスーパーバイザー名前空間をホストできます。apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
手順 5:スーパーバイザー名前空間クラスの作成およびスーパーバイザー名前空間クラス構成の追加
作成時に名前空間の設定のカスタマイズに使用できるオプションのパラメータを使用して名前空間テンプレートを定義するには、スーパーバイザー名前空間クラスを作成します。次に、スーパーバイザー名前空間の配置に使用されるスーパーバイザーを絞り込むための一致式を使用して、スーパーバイザー名前空間クラス構成を作成できます。
- スーパーバイザー名前空間クラスを作成します。
kubectl create -f supervisornamespaceclass.yaml
次のsupervisornamespaceclass.yaml
ファイルの例では、parameters
のオプションの入力に、名前空間の作成時にユーザーが指定した名前空間クラスのパラメータが反映されています。すべての入力にデフォルト値が必要です。これらの値は、ストレージ クラス、制限、および追加の制約をカスタマイズする際に使用されます。apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClass metadata: name: <class_name> spec: description: supervisor namespace class parameters: - name: podCountLimit type: Integer minimum: 100 maximum: 1000 default: 500
スーパーバイザー名前空間クラスにはスーパーバイザー配置の設定が含まれていないため、スーパーバイザー名前空間クラス構成も作成する必要があります。
- スーパーバイザー名前空間クラス構成を作成します。
kubectl create -f supervisornamespaceclassconfig.yaml
YAML はスーパーバイザー名前空間に継承させるすべてのスーパーバイザー名前空間構成を使用して構成され、以下を含めることができます。- 仮想マシン サービスが仮想マシンのプロビジョニング時に使用するイメージを含むコンテンツ ライブラリ。
- T シャツ サイズなどの仮想マシン クラス。
- CPU、メモリ、およびストレージに適用されるリソース制限。
- 使用するストレージ クラス。
- スーパーバイザー名前空間の作成に使用するスーパーバイザーを決定する SupervisorSelector。
次のsupervisornamespaceclassconfig.yaml
ファイルの例では、supervisorSelector
を使用してスーパーバイザー ラベルを照合します。apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassConfig metadata: name: <class_name> spec: storageClasses: - name: management-storage-policy-thin vmClasses: - name: big-vm-class - name: small-vm-class contentSources: - name: global-content-library type: ContentLibrary # Below limits are an EXAMPLE! Setting them may cause unexpected behavior in your namespace # Either set reasonable limits, or remove the below section to get unlimited resources limits: - name: pod_count limit: "((parameters.podCountLimit))" supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
手順 6:名前空間クラスとプロジェクトの関連付け
プロジェクトでスーパーバイザー名前空間クラスを使用してスーパーバイザー名前空間を作成できるようにするには、スーパーバイザー名前空間クラスのバインドを作成します。
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
ファイルの例。
namespace
は、スーパーバイザー名前空間クラスに関連付けるプロジェクトの名前を指定します。overrideParameters
はオプションです。これらは、スーパーバイザー名前空間の作成時にユーザーが指定したパラメータ値を無視する一方で、特定のパラメータ値を強制する場合に使用されます。有効なタイプは 整数、文字列、ブール値 です。
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000