En tant qu'utilisateur DevOps, vous pouvez créer un espace de noms de superviseur et créer des ressources d'infrastructure dans l'espace de noms à l'aide des commandes kubectl de la CCI. Ces exemples montrent comment créer un espace de noms de superviseur et ajouter une machine virtuelle à l'espace de noms.
Conditions préalables
- Vérifiez qu'un administrateur Automation a configuré l'interface de consommation de cloud. Reportez-vous à la section Configuration de l'infrastructure CCI à l'aide de kubectl.
- Vérifiez que vous êtes membre d'au moins un projet dans Automation Service Broker.
- Vérifiez que vous êtes au moins membre de l'organisation dans Automation avec le rôle de service Utilisateur pour Automation Service Broker.
- Vérifiez que vous disposez de éléments suivants :
- Téléchargement du plug-in CCI kubectl.
- Un jeton d'API a été obtenu pour le rôle de service Utilisateur et a été attribué en tant que variable.
TOKEN='<your_API_token>'
- Utilisez votre jeton pour vous connecter au serveur CCI.
Créer un espace de noms de superviseur
Cet exemple montre comment créer un espace de noms de superviseur nommé ns-for-devops-example.
À l'aide des commandes kubectl, vous collectez des informations pour les ressources suivantes :
- Projet
- Liaison de région
- Liaison de classe d'espace de noms de superviseur
- Définissez le contexte par défaut sur CCI.
kubectl config use-context cci
- Répertoriez les projets disponibles.
kubectl get projects
Le résultat répertorie les projets dans lesquels vous vous trouvez.NAME SHARED RESOURCES cci-document true
- Répertoriez les régions dans cci-document.
kubectl get regionbinding -n cci-document
Le résultat affiche toutes les régions du projet.NAME AGE us-docs-1 2d13h
- Répertoriez les classes d'espace de noms de superviseur dans cci-document.
kubectl get supervisornamespaceclassbinding -n cci-document
Le résultat affiche toutes les classes d'espace de noms du superviseur dans le projet.NAME AGE docs-class 2d13h
- Créez un fichier YAML pour l'espace de noms de superviseur que vous souhaitez créer. L'exemple suivant crée un espace de noms avec :
- cci-document pour le projet.
- us-docs-1 pour la région.
- docs-class pour la classe d'espace de noms.
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
- Avec le fichier YAML comme entrée, créez un espace de noms de superviseur. Dans cet exemple, le fichier YAML se trouve dans le même répertoire que l'application kubectl.
kubectl create -f Create_Supervisor_Namespace.YAML
- Vérifiez l'état de l'espace de noms de superviseur dans cci-document.
kubectl describe supervisornamespace ns-for-devops-example -n cci-document
Lorsque le résultat afficheStatus: True
etType: Ready
, l'espace de noms de superviseur est prêt à être utilisé et s'affiche dans l'interface utilisateur.- Pour Automation Service Broker, accédez à .
- Pour Automation Assembler, accédez à .
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 vous souhaitez supprimer l'espace de noms de superviseur, fournissez le nom de l'espace de noms, le nom du projet et incluez l'indicateur --force.
kubectl delete supervisornamespace ns-for-devops-example -n cci-document --force
Ajouter une machine virtuelle à l'espace de noms de superviseur
Cet exemple montre comment créer une machine virtuelle nommée VM-for-devops-example.
À l'aide des commandes kubectl, vous collectez des informations pour les ressources suivantes :
- Classe de machine virtuelle
- Image de machine virtuelle
- Classe de stockage
- Reconnectez-vous au serveur CCI et vérifiez que vous voyez l'espace de noms de superviseur récemment créé dans la réponse.
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
- Définissez le contexte par défaut afin d'éviter de spécifier l'espace de noms avec le contexte dans chaque commande.
kubectl config use-context cci:cci-document:ns-for-devops-example
Le résultat confirme que le contexte a été basculé et que toutes les commandes suivantes seront dans le contexte decci:cci-document:ns-for-devops-example
.Switched to context "cci:cci-document:ns-for-devops-example".
- Répertoriez les classes de machine virtuelle disponibles.
kubectl get virtualmachineclassess
Sélectionnez l'une des classes de machine virtuelle dans le résultat.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
- Répertorier les images de machine virtuelle disponibles.
kubectl get virtualmachineimages
Sélectionnez l'image que vous souhaitez utiliser.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
- Pour répertorier les stratégies de stockage disponibles, utilisez la commande pour obtenir des quotas de ressources.
kubectl get resourcequota
La première section de la demande est la stratégie de stockage.NAME AGE REQUEST LIMIT ns-for-devops-example-storagequota 6m22s wcpglobal-storage-profile.storageclass.storage.k8s.io/requests.storage: 0/9223372036854775807
- Créez un fichier YAML pour la machine virtuelle que vous souhaitez ajouter à l'espace de noms de superviseur. L'exemple suivant crée une machine virtuelle avec :
- ns-for-devops-example pour l'espace de noms.
- vmi-02549e2ab956621e9 pour l'image de machine virtuelle.
- guaranteed-small pour la classe de machine virtuelle.
- wcpglobal-storage-profile pour la stratégie de stockage.
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
- Avec le fichier YAML comme entrée, créez une machine virtuelle dans l'espace de noms de superviseur. Dans cet exemple, le fichier YAML se trouve dans le même répertoire que l'application kubectl.
kubectl create -f Create_VM.YAML
- Vérifiez l'état de création de la machine virtuelle dans ns-for-devops-example.
kubectl describe virtualmachine vm-for-devops-example -n ns-for-devops-example
Lorsque le résultat affiche troisStatus: True
pourType: GuestCustomization
,Type: VirtualMachinePrereqReady
etType: VirtualMachineTools
, la machine virtuelle a été créée dans l'espace de noms de superviseur.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 vous souhaitez supprimer la machine virtuelle, fournissez le nom de la machine virtuelle, le nom de l'espace de noms et incluez l'indicateur --force.
kubectl delete virtualmachine vm-for-devops-example -n ns-for-devops-example --force