身為 VMware Aria Automation 雲端管理員,您可以使用命令列介面啟用 Cloud Consumption Interface (CCI) 存取權並設定監管建構。命令列介面使用 Kubernetes 命令列工具或 kubectl。
例如,您可以在以下情況下使用 CLI:
- 如果使用者使用 vSphere+ 設定了對 CCI 的存取權,則使用者只能存取 vSphere+ 建立的預設專案。可以使用 CLI 設定對其他專案和雲端帳戶的存取權。
- 如果您是現有 VMware Aria Automation 執行個體的管理員,則可以使用 CLI 存取 CCI,而無需透過 vSphere+ 起始 CCI。
如需有關可以使用 CLI 執行的動作的完整清單,請參閱Cloud Consumption Interface 的 Kubernetes API 參考。
必要條件
- 確認 vSphere 管理員已透過在 vSphere+ 中啟用開發人員體驗,授與使用者對 VMware Aria Automation 的存取權。請參閱為新的 Aria Automation 使用者設定對 Cloud Consumption Interface 的存取。
- 確認主管叢集已在 vCenter 執行個體上啟用,並且已在 VMware Aria Automation 中登錄。
- 確認您至少是 VMware Aria Automation 中的組織成員,具有 Automation Assembler 或 Automation Service Broker 的管理員服務角色。
- 確認您具備以下條件:
- 已下載 CCI kubectl 外掛程式。
- 已取得管理員使用者的 API Token。
- 已使用 Token 登入 CCI 伺服器,並將預設內容變更為 CCI。
建立專案和專案角色繫結
若要對 VMware Aria 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]>
建立區域
可以建立區域,以便可以為該區域指派主管。
kubectl create -f region.yaml
範例
region.yaml
檔案。
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
將主管與區域相關聯
若要將主管與區域相關聯,請找到要更新的主管,然後新增將用於命名空間放置的區域和標籤。
- 若要找到需要更新的主管,請列出主管。在進行 vCenter 資料收集後,將看到主管資源。
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
的主管範例。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: - eu-west1
建立區域繫結和區域繫結組態
可以建立區域繫結和區域繫結組態,以便專案中的使用者可以在區域中的主管上建立主管命名空間。
- 建立區域繫結。
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
建立主管命名空間類別
若要定義具有可選參數的命名空間範本 (可以在建立期間使用這些參數自訂命名空間設定),請建立主管命名空間類別。然後,可以建立包含比對運算式的主管命名空間類別組態,可以使用這些比對運算式對用於主管命名空間放置的主管進行額外篩選。
- 建立主管命名空間類別。
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
在以下範例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
將命名空間類別與專案相關聯
若要允許在專案中使用主管命名空間類別建立主管命名空間,請建立主管命名空間類別繫結。
kubectl create -f supervisornamespaceclassbinding.yaml
範例
supervisornamespaceclassbinding.yaml
檔案。
namespace
指定要與主管命名空間類別關聯的專案名稱。overrideParameters
是可選的。這些參數用於在建立主管命名空間時強制指定參數值,而忽略使用者提供的參數值。有效類型為 Integer、String 或 Boolean。
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000