Als DevOps-Benutzer können Sie einen Supervisor-Namespace und Infrastrukturressourcen innerhalb des Namespace mithilfe von CCI kubectl-Befehlen erstellen. Die folgenden Beispiele zeigen, wie Sie einen Supervisor-Namespace erstellen und dem Namespace eine VM hinzufügen.
Voraussetzungen
- Stellen Sie sicher, dass ein Automation-Administrator die Cloud Consumption Interface-Infrastruktur eingerichtet hat. Weitere Informationen hierzu finden Sie unter Einrichten der CCI-Infrastruktur mithilfe von kubectl.
- Sie müssen Mitglied mindestens eines Projekts in Automation Service Broker sein.
- Sie müssen mindestens Organisationsmitglied in Automation mit der Automation Service Broker-Dienstrolle „Benutzer“ sein.
- Stellen Sie sicher, dass Sie über Folgendes verfügen:
- Das CCI kubectl-Plug-In wurde heruntergeladen.
- Ein API-Token für die Dienstrolle „Benutzer“ wurde abgerufen und als Variable zugewiesen.
TOKEN='<your_API_token>'
- Sie haben Ihr Token zur Anmeldung beim CCI-Server verwendet.
Erstellen eines Supervisor-Namespace
In diesem Beispiel wird die Erstellung eines Supervisor-Namespace mit dem Namen ns-for-devops-example dargestellt.
Sie erfassen mithilfe von kubectl-Befehlen Informationen für die folgenden Ressourcen:
- Projekt
- Regionsbindung
- Supervisor-Namespace-Klassenbindung
- Legen Sie den Standardkontext auf CCI fest.
kubectl config use-context cci
- Listen Sie die verfügbaren Projekte auf.
kubectl get projects
Im Ergebnis wird eine Liste der Projekte zurückgegeben, denen Sie angehören.NAME SHARED RESOURCES cci-document true
- Listen Sie die Regionen in cci-document auf.
kubectl get regionbinding -n cci-document
Im Ergebnis werden alle Regionen im Projekt angezeigt.NAME AGE us-docs-1 2d13h
- Listen Sie die Supervisor-Namespace-Klassen in cci-document auf.
kubectl get supervisornamespaceclassbinding -n cci-document
Im Ergebnis werden alle Supervisor-Namespace-Klassen im Projekt angezeigt.NAME AGE docs-class 2d13h
- Erstellen Sie eine YAML-Datei für den Supervisor-Namespace, den Sie erstellen möchten. Im folgenden Beispiel wird ein Namespace mit folgenden Elementen erstellt:
- cci-document für das Projekt.
- us-docs-1 für die Region.
- docs-class für die Namespace-Klasse.
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
- Erstellen Sie mit der YAML-Datei als Eingabe einen Supervisor-Namespace. In diesem Beispiel befindet sich die YAML-Datei im selben Verzeichnis wie die kubectl-Anwendung.
kubectl create -f Create_Supervisor_Namespace.YAML
- Prüfen Sie den Status des Supervisor-Namespace in cci-document.
kubectl describe supervisornamespace ns-for-devops-example -n cci-document
Wenn im ErgebnisStatus: True
undType: Ready
angezeigt werden, kann der Supervisor-Namespace verwendet werden und wird in der Benutzeroberfläche angezeigt:- Navigieren Sie für Automation Service Broker zu .
- Navigieren Sie für Automation Assembler zu .
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>
- Wenn Sie den Supervisor-Namespace löschen möchten, geben Sie den Namen des Namespace und den Namen des Projekts an und schließen Sie dabei das Flag --force ein.
kubectl delete supervisornamespace ns-for-devops-example -n cci-document --force
Hinzufügen einer VM zum Supervisor-Namespace
In diesem Beispiel wird die Erstellung einer VM mit dem Namen VM-for-devops-example dargestellt.
Sie erfassen mithilfe von kubectl-Befehlen Informationen für die folgenden Ressourcen:
- VM-Klasse
- VM-Image
- Speicherklasse
- Melden Sie sich erneut beim CCI-Server an und stellen Sie sicher, dass der neu erstellte Supervisor-Namespace in der Antwort angezeigt wird.
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
- Legen Sie den Standardkontext so fest, dass Sie den Namespace nicht in jedem Befehl mit Kontext angeben müssen.
kubectl config use-context cci:cci-document:ns-for-devops-example
Das Ergebnis bestätigt, dass der Kontext gewechselt wurde und jeder nachfolgende Befehl im Kontext voncci:cci-document:ns-for-devops-example
ausgeführt wird.Switched to context "cci:cci-document:ns-for-devops-example".
- Listen Sie die verfügbaren VM-Klassen auf.
kubectl get virtualmachineclassess
Wählen Sie eine der VM-Klassen aus dem Ergebnis aus.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
- Listen Sie die verfügbaren VM-Images auf.
kubectl get virtualmachineimages
Wählen Sie das Image aus, das Sie verwenden möchten.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
- Um die verfügbaren Speicherrichtlinien aufzulisten, verwenden Sie den Befehl zum Abrufen von Ressourcenkontingenten.
kubectl get resourcequota
Der erste Abschnitt der Anforderung ist die Speicherrichtlinie.NAME AGE REQUEST LIMIT ns-for-devops-example-storagequota 6m22s wcpglobal-storage-profile.storageclass.storage.k8s.io/requests.storage: 0/9223372036854775807
- Erstellen Sie eine YAML-Datei für die VM, die Sie dem Supervisor-Namespace hinzufügen möchten. Im folgenden Beispiel wird eine VM mit folgenden Elementen erstellt:
- ns-for-devops-example für den Namespace.
- vmi-02549e2ab956621e9 für das VM-Image.
- guaranteed-small für die VM-Klasse.
- wcpglobal-storage-profile für die Speicherrichtlinie.
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
- Erstellen Sie mit der YAML-Datei als Eingabe eine VM im Supervisor-Namespace. In diesem Beispiel befindet sich die YAML-Datei im selben Verzeichnis wie die kubectl-Anwendung.
kubectl create -f Create_VM.YAML
- Prüfen Sie den Status der VM-Erstellung in ns-for-devops-example.
kubectl describe virtualmachine vm-for-devops-example -n ns-for-devops-example
Wenn im Ergebnis dreimalStatus: True
(fürType: GuestCustomization
,Type: VirtualMachinePrereqReady
undType: VirtualMachineTools
) angezeigt werden, wurde die VM erfolgreich im Supervisor-Namespace erstellt.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>
- Wenn Sie die VM löschen möchten, geben Sie den Namen der VM und den Namen des Namespace an und schließen Sie dabei das Flag --force ein.
kubectl delete virtualmachine vm-for-devops-example -n ns-for-devops-example --force