身為 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 AssemblerAutomation Service Broker 的管理員服務角色。
  • 確認您具備以下條件:
    • 已下載 CCI kubectl 外掛程式。
    • 已取得管理員使用者的 API Token。
    • 已使用 Token 登入 CCI 伺服器,並將預設內容變更為 CCI。
    請參閱使用命令列介面執行主管命名空間工作

建立專案和專案角色繫結

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

  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]>

建立區域

可以建立區域,以便可以為該區域指派主管。

kubectl create -f region.yaml
範例 region.yaml 檔案。
apiVersion: topology.cci.vmware.com/v1alpha1
kind: Region
metadata:
  name: <region_name>
spec:
  description: <description_of_region>

將主管與區域相關聯

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

  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 的主管範例。
    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

建立區域繫結和區域繫結組態

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

  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

建立主管命名空間類別

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

  1. 建立主管命名空間類別。
    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

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

  2. 建立主管命名空間類別組態。
    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 是可選的。這些參數用於在建立主管命名空間時強制指定參數值,而忽略使用者提供的參數值。有效類型為 IntegerStringBoolean
apiVersion: infrastructure.cci.vmware.com/v1alpha1
kind: SupervisorNamespaceClassBinding
metadata:
  name: <class_name>
  namespace: <project_name>
spec:
  overrideParameters:
    - name: podCountLimit
      type: Integer
      const: 1000