Como administrador de nube de VMware Aria Automation puede utilizar una interfaz de línea de comandos para habilitar el acceso a la interfaz de consumo de nube (Cloud Consumption Interface, CCI) y configurar construcciones de gobernanza. La interfaz de línea de comandos utiliza la herramienta de línea de comandos de Kubernetes, o kubectl.
Para obtener una lista completa de las acciones que puede realizar mediante la CLI, consulte Referencia de la API de Kubernetes para la interfaz de consumo de nube.
Requisitos previos
- Compruebe que un clúster de supervisor esté habilitado en una instancia de vCenter y que esté registrado en VMware Aria Automation.
- Compruebe que es, como mínimo, un miembro de la organización en VMware Aria Automation con la función de servicio Administrador para Automation Assembler o Automation Service Broker.
- Compruebe que ha hecho lo siguiente:
- Descargó el complemento kubectl de CCI.
- Obtuvo un token de API para el usuario administrador o definió una variable para almacenar la contraseña de usuario.
- Utilizó el token con la opción -t o utilizó las credenciales de administrador con la opción -u para iniciar sesión en el servidor CCI y cambió el contexto predeterminado a CCI.
- Compruebe que ha agregado una cuenta de nube de vCenter en Automation Assembler.
Para obtener más información sobre cualquiera de estos requisitos previos, consulte Instalación y configuración de la interfaz de consumo de nube
Paso 1: Crear un proyecto y enlaces de funciones de proyecto
Para agrupar usuarios de Automation y establecer acceso a recursos de infraestructura, cree un proyecto y enlaces de funciones de proyecto.
- Cree un proyecto.
kubectl create -f project.yaml
Archivo deproject.yaml
de ejemplo.apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- Cree un enlace de función de proyecto para asignar funciones a usuarios o grupos dentro de un proyecto creado.
kubectl create -f projectrolebinding.yaml
El siguiente archivoprojectrolebinding.yaml
de ejemplo agrega un usuario con la función de proyecto admin. Los valores de las funciones de proyecto son: admin, view o 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]>
Paso 2: Crear una región
Cree una región para poder asignar supervisores a esa región.
kubectl create -f region.yaml
region.yaml
de ejemplo.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
Paso 3: Asociar un supervisor con una región
Para asociar un supervisor a una región, busque el supervisor que desea actualizar y después agregue la región y las etiquetas que se utilizarán para la colocación del espacio de nombres.
- Para encontrar el supervisor que desea actualizar, enumere los supervisores. Los recursos de supervisor se pueden ver después de la recopilación de datos de vCenter.
kubectl -n cci-config get supervisors
A continuación, se muestra un ejemplo de resultado.NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- Actualice el supervisor llamado
adminannie-vcenter:domain-c8
.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
El siguiente ejemplo incluyemetadata.labels
pares clave-valor y regionesspec.regionNames
. Las etiquetas environment: testing y fipsMode: strict se pueden utilizar para ayudar en las decisiones de colocación del supervisor.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>
- También puede hacer clic en la pestaña Regiones de supervisor de un proyecto ubicado en
Paso 4: Crear un enlace de regiones y una configuración de enlace de regiones
Cree un enlace de regiones y una configuración de enlace de regiones para que los usuarios de un proyecto puedan crear espacios de nombres de supervisor en supervisores de una región.
- Cree un enlace de regiones.
kubectl create -f regionbinding.yaml
Archivo deregionbinding.yaml
de ejemplo.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
Un enlace de regiones no incluye ninguna configuración de colocación de supervisor, por lo que también debe crear una configuración de enlace de regiones.
- Cree una configuración de enlace de regiones para cada enlace de regiones que haya creado. Puede incluir expresiones de coincidencia que se utilizan para filtrar más supervisores. Las etiquetas de supervisor se utilizan para permitir la colocación del espacio de nombres de supervisor en un subconjunto de los supervisores de una región.
kubectl create -f regionbindingconfig.yaml
En el siguiente archivoregionbindingconfig.yaml
de ejemplo, cualquier supervisor que coincida con la etiqueta de entorno prueba puede alojar los espacios de nombres de supervisor creados en ese proyecto y esa región.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Paso 5: Crear una clase de espacio de nombres de supervisor y agregar una configuración de clase de espacio de nombres de supervisor
Para definir plantillas de espacio de nombres con parámetros opcionales que se puedan utilizar para personalizar la configuración del espacio de nombres durante la creación, cree una clase de espacio de nombres de supervisor. A continuación, puede crear una configuración de clase de espacio de nombres de supervisor con expresiones de coincidencia que se utilizan para filtrar otros supervisores que se usan para la colocación del espacio de nombres de supervisor.
- Cree una clase de espacio de nombres de supervisor.
kubectl create -f supervisornamespaceclass.yaml
En el siguiente archivosupervisornamespaceclass.yaml
de ejemplo, la entrada opcional enparameters
refleja los parámetros de clase de espacio de nombres que los usuarios proporcionan al crear el espacio de nombres. Todas las entradas deben tener valores predeterminados. Los valores se pueden utilizar para personalizar las clases de almacenamiento, los límites y las restricciones adicionales.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
La clase de espacio de nombres de supervisor no contiene ninguna configuración de colocación de supervisor, por lo que también debe crear una configuración de clase de espacio de nombres de supervisor.
- Cree una configuración de clase de espacio de nombres de supervisor.
kubectl create -f supervisornamespaceclassconfig.yaml
El YAML está configurado con todas las configuraciones de espacio de nombres de supervisor que desea que herede el espacio de nombres de supervisor y puede incluir:- Bibliotecas de contenido que contienen las imágenes que utiliza el servicio de máquina virtual al aprovisionar máquinas virtuales.
- Clases de máquinas virtuales como T-shirt Sizes (tamaños de camisetas).
- Límites de recursos aplicados de CPU, memoria y almacenamiento.
- Clases de almacenamiento que se utilizarán.
- SupervisorSelector se usa para decidir qué supervisor se utilizará para la creación del espacio de nombres de supervisor.
En el siguiente archivosupervisornamespaceclassconfig.yaml
de ejemplo, se usasupervisorSelector
para hacer coincidir las etiquetas de supervisor.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
Paso 6: Asociar una clase de espacio de nombres con un proyecto
Para permitir la creación de un espacio de nombres de supervisor mediante la clase de espacio de nombres de supervisor en un proyecto, cree un enlace de clase de espacio de nombres de supervisor.
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
de ejemplo.
namespace
especifica el nombre del proyecto que desea asociar con la clase de espacio de nombres de supervisor.overrideParameters
son opcionales. Se utilizan para forzar un valor de parámetro mientras se ignoran los valores de parámetros proporcionados por el usuario cuando se crea el espacio de nombres de supervisor. Los tipos válidos son Entero, Cadena o Booleano.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000