身為 VMware Aria Automation 雲端管理員,您可以使用命令列介面設定 Cloud Consumption Interface (CCI) 存取權並設定監管建構。命令列介面使用 Kubernetes 命令列工具或 kubectl。

如需有關可以使用 CLI 執行的動作的完整清單,請參閱Cloud Consumption Interface 的 Kubernetes API 參考

備註: 此外,還可以使用 UI 執行以下部分步驟。在這些步驟中,提供了使用 UI 執行相關動作的說明文件連結。

必要條件

  • 確認主管叢集已在 vCenter 執行個體上啟用,並且已在 VMware Aria Automation 中登錄。
  • 確認您至少是 VMware Aria Automation 中的組織成員,具有 Automation AssemblerAutomation Service Broker 的管理員服務角色。
  • 確認您具備以下條件:
    • 已下載 CCI kubectl 外掛程式。
    • 為管理員使用者取得了 API Token,或定義了用於儲存使用者密碼的變數。
    • 將 Token 與 -t 選項搭配使用,或將管理員認證與 -u 選項搭配使用以登入 CCI 伺服器,並已將預設內容變更為 CCI。
  • 請確認您已在 Automation Assembler 中新增 vCenter 雲端帳戶。
  • 確認 vCenter 雲端帳戶名稱不包含任何空格或大寫字母。例如,my-vcenter-cloud-account

如需有關這些必要條件中任意一個的詳細資訊,請參閱Cloud Consumption Interface 設定和組態

步驟 1:建立專案和專案角色系結

若要對 Automation 使用者進行分組並設定對基礎結構資源的存取權,請建立專案和專案角色繫結。

若要使用 UI 建立專案和專案角色繫結,請參閱如何為我的 Automation Assembler 開發團隊新增專案

  1. 建立專案。
    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
    
  2. 建立專案角色繫結為已建立專案內的使用者或群組指派角色。
    kubectl create -f projectrolebinding.yaml
    以下範例 projectrolebinding.yaml 檔案將新增具有 admin 專案角色的使用者。專案角色值為: adminviewedit
    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:將主管與區域相關聯

若要將主管與區域相關聯,請找到要更新的主管,然後新增將用於命名空間放置的區域和標籤。

  1. 若要找到需要更新的主管,請列出主管。在進行 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
  2. 更新名為 adminannie-vcenter:domain-c8 的主管。
    kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
    以下範例包括 metadata.labels 索引鍵-值配對和區域 spec.regionNames。可以使用 environment: testingfipsMode: strict 標籤來協助制定主管放置決策。
    apiVersion: infrastructure.cci.vmware.com/v1alpha1
    kind: Supervisor
    metadata:
      labels:
        environment: testing
      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>
若要在 Automation AssemblerAutomation Service Broker UI 中檢視主管區域清單,請移至:
  • 基礎結構 > 設定 > 主管區域
  • 或者,按一下位於基礎結構 > 管理 > 專案中某個專案的主管區域索引標籤。
請參閱 檢視管理員建構

步驟 4:建立區域繫結和區域繫結組態

可以建立區域繫結和區域繫結組態,以便專案中的使用者可以在區域中的主管上建立主管命名空間。

  1. 建立區域繫結。
    kubectl create -f regionbinding.yaml
    範例 regionbinding.yaml 檔案。
    apiVersion: topology.cci.vmware.com/v1alpha1
    kind: RegionBinding
    metadata:
      name: <region_name>
      namespace: <project_name>

    區域繫結不包括任何主管放置設定,因此還必須建立區域繫結組態。

  2. 為建立的每個區域繫結建立一個區域繫結組態。可以包括比對運算式,用於對主管進行額外篩選。主管標籤用於允許在區域中的一部分主管上放置主管命名空間。
    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:建立主管命名空間類別並新增主管命名空間類別組態

若要定義具有可選參數的命名空間範本 (可以在建立期間使用這些參數自訂命名空間設定),請建立主管命名空間類別。然後,可以建立包含比對運算式的主管命名空間類別組態,可以使用這些比對運算式對用於主管命名空間放置的主管進行額外篩選。

若要使用 UI 建立具有主管命名空間類別組態的主管命名空間類別,請參閱如何使用 UI 建立並設定命名空間類別、命名空間類別組態和命名空間類別繫結

  1. 建立主管命名空間類別。
    kubectl create -f supervisornamespaceclass.yaml
    在以下範例 supervisornamespaceclass.yaml 檔案中, parameters 下的可選輸入反映了使用者在建立命名空間時提供的命名空間類別參數。所有輸入都必須具有預設值。這些值用於自訂儲存區類別、限制和其他限制。 name 值必須全部小寫且不含空格。
    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

    主管命名空間類別不包含任何主管放置設定,因此還必須建立主管命名空間類別組態。

  2. 建立主管命名空間類別組態。
    kubectl create -f supervisornamespaceclassconfig.yaml
    YAML 設定了您希望主管命名空間繼承的所有主管命名空間組態,其中可包括:
    • 內容程式庫,其中包含在佈建虛擬機器時虛擬機器服務使用的映像。
    • 虛擬機類別,例如 T-Shirt 大小。
    • 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:將命名空間類別與專案相關聯

若要允許在專案中使用主管命名空間類別建立主管命名空間,請建立主管命名空間類別繫結。

若要使用 UI 將命名空間類別與專案關聯,請參閱如何使用 UI 建立並設定命名空間類別、命名空間類別組態和命名空間類別繫結

kubectl create -f supervisornamespaceclassbinding.yaml
範例 supervisornamespaceclassbinding.yaml 檔案。
  • namespace 指定要與主管命名空間類別關聯的專案名稱。
  • overrideParameters 是可選的。這些參數用於在建立主管命名空間時強制指定參數值,而忽略使用者提供的參數值。有效類型為 IntegerStringBooleanname 值必須全部小寫且不含空格。
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podcountlimit
      type: Integer
      const: 1000