作为 VMware Aria Automation 云管理员,您可以使用命令行界面启用 Cloud Consumption Interface (CCI) 访问并配置监管构造。命令行界面使用 Kubernetes 命令行工具或 kubectl。
有关可以使用 CLI 执行的操作的完整列表,请参见 Cloud Consumption Interface 的 Kubernetes API 参考。
必备条件
- 确认主管集群已在 vCenter 实例上启用,并且已在 VMware Aria Automation 中注册。
- 确认您至少是 VMware Aria Automation 中的组织成员,具有 Automation Assembler 或 Automation Service Broker 的管理员服务角色。
- 验证您是否:
- 已下载 CCI kubectl 插件。
- 为管理员用户获取了 API 令牌,或定义了用于存储用户密码的变量。
- 将令牌与 -t 选项结合使用,或将管理员凭据与 -u 选项结合使用以登录到 CCI 服务器,并已将默认上下文更改为 CCI。
- 确认您已在 Automation Assembler 中添加 vCenter 云帐户。
有关这些必备条件中任意一个的详细信息,请参见Cloud Consumption Interface 设置和配置
步骤 1:创建项目和项目角色绑定
要对 Automation 用户进行分组并设置对基础架构资源的访问权限,请创建项目和项目角色绑定。
注: 要使用 UI 创建项目和项目角色绑定,请参见
如何为我的 Automation Assembler 开发团队添加项目。
- 创建项目。
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 数据收集后,将看到主管资源。
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>
要在
Automation Assembler 或
Automation Service Broker UI 中查看主管区域列表,请转到:
- 或者,单击位于主管区域选项卡。 中某个项目的
步骤 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
为可选项。这些参数用于在创建主管命名空间时强制指定参数值,而忽略用户提供的参数值。有效类型为 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