Como usuario de desarrollo y operaciones, puede crear un espacio de nombres de supervisor y crear recursos de infraestructura dentro de ese espacio de nombres mediante comandos kubectl de CCI. Estos ejemplos muestran cómo crear un espacio de nombres de supervisor y agregar una máquina virtual al espacio de nombres.
Requisitos previos
- Compruebe que un administrador de Automation haya configurado la infraestructura de la interfaz de consumo de nube (CCI). Consulte Configurar la infraestructura de CCI mediante kubectl.
- Compruebe que es miembro de al menos un proyecto de Automation Service Broker.
- Compruebe que es, como mínimo, miembro de la organización en Automation con la función de servicio Usuario de Automation Service Broker.
- Compruebe que ha hecho lo siguiente:
- Descargó el complemento kubectl de CCI.
- Obtuvo un token de API para la función de servicio Usuario y se le asignó como una variable.
TOKEN='<your_API_token>'
- Utilizó el token para iniciar sesión en el servidor CCI.
Crear un espacio de nombres de supervisor
En este ejemplo se muestra cómo crear un espacio de nombres de supervisor denominado ns-for-devops-example.
Mediante los comandos kubectl, puede recopilar información para los siguientes recursos:
- Proyecto
- Enlace de regiones
- Enlace de clase de espacio de nombres de supervisor
- Establezca el contexto predeterminado para CCI.
kubectl config use-context cci
- Enumere los paquetes disponibles.
kubectl get projects
El resultado muestra los proyectos en los que se encuentra.NAME SHARED RESOURCES cci-document true
- Enumere las regiones existentes en cci-document.
kubectl get regionbinding -n cci-document
El resultado muestra todas las regiones del proyecto.NAME AGE us-docs-1 2d13h
- Enumere las clases de espacio de nombres de supervisor existentes en cci-document.
kubectl get supervisornamespaceclassbinding -n cci-document
El resultado muestra todas las clases de espacio de nombres de supervisor en el proyecto.NAME AGE docs-class 2d13h
- Cree un archivo YAML para el espacio de nombres de supervisor que desea crear. En el siguiente ejemplo se crea un espacio de nombres con:
- cci-document para el proyecto.
- us-docs-1 para la región.
- docs-class para la clase de espacio de nombres.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespace metadata: name: ns-for-devops-example namespace: cci-document spec: description: Create_Namespace_example regionName: us-docs-1 className: docs-class
- Con el archivo YAML como entrada, cree un espacio de nombres de supervisor. En este ejemplo, el archivo YAML se encuentra en el mismo directorio que la aplicación kubectl.
kubectl create -f Create_Supervisor_Namespace.YAML
- Compruebe el estado del espacio de nombres de supervisor en cci-document.
kubectl describe supervisornamespace ns-for-devops-example -n cci-document
Cuando el resultado muestraStatus: True
yType: Ready
, el espacio de nombres de supervisor está listo para usarse y se muestra en la interfaz de usuario:- Para Automation Service Broker, vaya a .
- Para Automation Assembler, vaya a .
Name: ns-for-devops-example Namespace: cci-document Labels: <none> Annotations: infrastructure.cci.vmware.com/wcp-address: 192.168.0.2 API Version: infrastructure.cci.vmware.com/v1alpha1 Kind: SupervisorNamespace Metadata: Creation Timestamp: 2023-07-31T17:30:49Z UID: b2f65844-d545-4a5f-976d-381e079275b1 Spec: Class Name: docs-class Class Parameters: Description: Create_Namespace_example Region Name: us-docs-1 Status: Conditions: Last Transition Time: 2023-07-31T17:30:50Z Status: True Type: Ready Phase: Created Events: <none>
- Si desea eliminar el espacio de nombres de supervisor, proporcione el nombre del espacio de nombres, el nombre del proyecto e incluya la marca --force.
kubectl delete supervisornamespace ns-for-devops-example -n cci-document --force
Agregar una máquina virtual al espacio de nombres de supervisor
En este ejemplo se muestra cómo crear una máquina virtual con el nombre VM-for-devops-example.
Mediante los comandos kubectl, puede recopilar información para los siguientes recursos:
- Clase de máquina virtual
- Imagen de máquina virtual
- Clase de almacenamiento
- Vuelva a iniciar sesión en el servidor CCI y compruebe que puede ver el espacio de nombres de supervisor recién creado en la respuesta.
kubectl cci login --server api.mgmt.cloud.vmware.com --token $TOKEN Logging into api.mgmt.cloud.vmware.com Getting supervisor namespaces Successfully logged into api.mgmt.cloud.vmware.com Created kubeconfig contexts: cci cci:cci-document:ns-7lan cci:cci-document:ns-for-devops-example cci:supervisor:gp-namespace
- Establezca el contexto predeterminado para que no sea necesario especificar el espacio de nombres con contexto en cada comando.
kubectl config use-context cci:cci-document:ns-for-devops-example
El resultado confirma que se cambió el contexto y que cada comando subsiguiente estará en el contexto decci:cci-document:ns-for-devops-example
.Switched to context "cci:cci-document:ns-for-devops-example".
- Enumere las clases de máquina virtual disponibles.
kubectl get virtualmachineclassess
En el resultado seleccione una de las clases de máquinas virtuales.NAME CPU MEMORY AGE best-effort-2xlarge 8 64Gi 2d15h best-effort-4xlarge 16 128Gi 2d15h best-effort-8xlarge 32 128Gi 2d15h best-effort-large 4 16Gi 2d15h best-effort-medium 2 8Gi 2d15h best-effort-small 2 4Gi 2d15h best-effort-xlarge 4 32Gi 2d15h best-effort-xsmall 2 2Gi 2d15h guaranteed-2xlarge 8 64Gi 2d15h guaranteed-4xlarge 16 128Gi 2d15h guaranteed-8xlarge 32 128Gi 2d15h guaranteed-large 4 16Gi 2d15h guaranteed-medium 2 8Gi 2d15h guaranteed-small 2 4Gi 2d15h guaranteed-xlarge 4 32Gi 2d15h guaranteed-xsmall 2 2Gi 2d15h
- Enumere las imágenes de máquina virtual disponibles.
kubectl get virtualmachineimages
Seleccione las imágenes que desea utilizar.NAME PROVIDER-NAME CONTENT-LIBRARY-NAME IMAGE-NAME VERSION OS-TYPE FORMAT AGE vmi-02549e2ab956621e9 clitem-02549e2ab956621e9 cl-c7a511c539dddc1f1 groovy-20210415.1-with-ovt-11.3 ubuntu64Guest OVF 143m vmi-041ff2740d6aee34a clitem-041ff2740d6aee34a cl-c7a511c539dddc1f1 ubuntu-20-1633387172196-v1.1 ubuntu64Guest OVF 143m vmi-1cc3c618d0ead1129 clitem-1cc3c618d0ead1129 cl-c7a511c539dddc1f1 jammy-server-cloudimg-amd64 ubuntu64Guest OVF 143m
- Para enumerar las directivas de almacenamiento disponibles, utilice el comando para obtener cuotas de recursos.
kubectl get resourcequota
La primera sección de la solicitud es la directiva de almacenamiento.NAME AGE REQUEST LIMIT ns-for-devops-example-storagequota 6m22s wcpglobal-storage-profile.storageclass.storage.k8s.io/requests.storage: 0/9223372036854775807
- Cree un archivo YAML para la máquina virtual que desea agregar al espacio de nombres de supervisor. En el siguiente ejemplo se crea una máquina virtual con:
- ns-for-devops-example para el espacio de nombres.
- vmi-02549e2ab956621e9 para la imagen de máquina virtual.
- guaranteed-small para la clase de máquina virtual.
- wcpglobal-storage-profile para la directiva de almacenamiento.
apiVersion: vmoperator.vmware.com/v1alpha1 kind: VirtualMachine metadata: name: VM-for-devops-example namespace: ns-for-devops-example spec: imageName: vmi-02549e2ab956621e9 className: guaranteed-small storageClass: wcpglobal-storage-profile powerState: poweredOn
- Con el archivo YAML como entrada, cree una máquina virtual en el espacio de nombres de supervisor. En este ejemplo, el archivo YAML se encuentra en el mismo directorio que la aplicación kubectl.
kubectl create -f Create_VM.YAML
- Compruebe el estado de creación de la máquina virtual en ns-for-devops-example.
kubectl describe virtualmachine vm-for-devops-example -n ns-for-devops-example
Cuando el resultado muestra tresStatus: True
paraType: GuestCustomization
,Type: VirtualMachinePrereqReady
yType: VirtualMachineTools
, la máquina virtual se creó correctamente en el espacio de nombres de supervisor.Name: vm-for-devops-example Namespace: ns-for-devops-example Labels: topology.kubernetes.io/zone=domain-c50 Annotations: virtualmachine.vmoperator.vmware.com/first-boot-done: true API Version: vmoperator.vmware.com/v1alpha1 Kind: VirtualMachine Metadata: Creation Timestamp: 2023-08-15T00:30:55Z Finalizers: virtualmachine.vmoperator.vmware.com Generation: 1 Resource Version: 19196052 UID: f2460f3c-225b-460b-8d11-95a1bdaebe72 Spec: Class Name: guaranteed-small Image Name: vmi-02549e2ab956621e9 Network Interfaces: Network Type: vsphere-distributed Power Off Mode: hard Power State: poweredOn Restart Mode: hard Storage Class: wcpglobal-storage-profile Suspend Mode: hard Status: Bios UUID: 421eb2b5-04ef-f3e1-8d17-f8e73a2576b2 Change Block Tracking: false Conditions: Last Transition Time: 2023-08-15T00:32:30Z Status: True Type: GuestCustomization Last Transition Time: 2023-08-15T00:31:55Z Status: True Type: VirtualMachinePrereqReady Last Transition Time: 2023-08-15T00:32:20Z Status: True Type: VirtualMachineTools Host: 10.186.234.28 Instance UUID: 501ea6c0-c0cb-b03c-08e6-324642f923d1 Network Interfaces: Connected: true Ip Addresses: 192.168.128.11/16 fe80::250:56ff:fe9e:ff48/64 Mac Address: 00:50:56:9e:ff:48 Phase: Created Power State: poweredOn Unique ID: vm-104 Vm Ip: 192.168.128.11 Zone: domain-c50 Events: <none>
- Si desea eliminar la máquina virtual, proporcione el nombre de la máquina virtual, el nombre del espacio de nombres e incluya la marca --force.
kubectl delete virtualmachine vm-for-devops-example -n ns-for-devops-example --force