作为 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 令牌。
    • 使用令牌登录到 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: <username@company.com>

创建区域

可以创建区域,以便可以为该区域分配主管。

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