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.
- Si el acceso de los usuarios a CCI se configura mediante vSphere+, los usuarios solo podrán acceder a los proyectos predeterminados que crea vSphere+. El posible utilizar la CLI para configurar el acceso a proyectos y cuentas de nube adicionales.
- Si es administrador de instancias de VMware Aria Automation existentes, puede utilizar la CLI para acceder a CCI sin iniciarlo a través de vSphere+.
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 administrador de vSphere haya otorgado a los usuarios acceso a VMware Aria Automation activando Experiencia de desarrollador en vSphere+. Consulte Configurar el acceso a la interfaz de consumo de nube para nuevos usuarios de Aria Automation.
- 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:
- Descargado el complemento kubectl de CCI.
- Obtenido un token de API para el usuario administrador.
- Utilizó el token para iniciar sesión en el servidor CCI y cambió el contexto predeterminado a CCI.
Crear un proyecto y enlaces de funciones de proyecto
Para agrupar usuarios de VMware Aria 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]>
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>
Asociar un supervisor a 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
Ejemplo de supervisor conmetadata.labels
pares de clave-valor y regionesspec.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
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
Crear una 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
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
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