Als VMware Aria Automation-Cloud-Administrator können Sie eine Befehlszeilenschnittstelle verwenden, um den CCI-Zugriff (Cloud Consumption Interface) zu aktivieren und Governance-Konstrukte zu konfigurieren. Die Befehlszeilenschnittstelle verwendet das Kubernetes-Befehlszeilentool, das auch als „kubectl“ bezeichnet wird.
Eine vollständige Liste der Aktionen, die Sie mithilfe der CLI durchführen können, finden Sie unter Kubernetes-API-Referenz für die Cloud Consumption Interface.
Voraussetzungen
- Stellen Sie sicher, dass ein Supervisor-Cluster auf einer vCenter-Instanz aktiviert und bei VMware Aria Automation registriert ist.
- Sie müssen mindestens Organisationsmitglied in VMware Aria Automation mit der Administrator-Dienstrolle für Automation Assembler oder Automation Service Broker sein.
- Stellen Sie sicher, dass Sie über Folgendes verfügen:
- Das CCI kubectl-Plug-In wurde heruntergeladen.
- Ein API-Token für den Admin-Benutzer wurde abgerufen, oder eine Variable zum Speichern des Benutzerkennworts wurde definiert.
- Ihr Token wurde mit der Option -t verwendet, oder Ihre Administratoranmeldedaten wurden mit der Option -u zur Anmeldung beim CCI-Server verwendet, und der Standardkontext wurde in CCI geändert.
- Stellen Sie sicher, dass ein vCenter-Konto in Automation Assembler hinzugefügt haben.
Weitere Informationen zu diesen Voraussetzungen finden Sie unter Einrichtung und Konfiguration der Cloud Consumption Interface
Schritt 1: Erstellen eines Projekts und einer Projektrollenbindung
Zum Gruppieren von Automation-Benutzern und Festlegen von Zugriff auf Infrastrukturressourcen erstellen Sie ein Projekt und eine Projektrollenbindung.
- Erstellen Sie ein Projekt.
kubectl create -f project.yaml
Beispieldateiproject.yaml
.apiVersion: project.cci.vmware.com/v1alpha1 kind: Project metadata: name: <project_name> spec: description: <description_of_project> sharedResources: true
- Erstellen Sie eine Projektrollenbindung, um Benutzern oder Gruppen innerhalb eines erstellten Projekts Rollen zuzuweisen.
kubectl create -f projectrolebinding.yaml
Mithilfe der folgenden Beispieldateiprojectrolebinding.yaml
wird ein Benutzer mit der Projektrolle admin hinzugefügt. Zu den Projektrollenwerten gehören: admin, anzeigen oder bearbeiten.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]>
Schritt 2: Erstellen einer Region
Sie erstellen eine Region, damit Sie dieser Region Supervisoren zuweisen können.
kubectl create -f region.yaml
region.yaml
.
apiVersion: topology.cci.vmware.com/v1alpha1 kind: Region metadata: name: <region_name> spec: description: <description_of_region>
Schritt 3: Zuordnen eines Supervisors zu einer Region
Zum Verknüpfen eines Supervisors mit einer Region suchen Sie nach dem zu aktualisierenden Supervisor und aktualisieren dann die Region und die Bezeichnungen, die für die Namespace-Platzierung verwendet werden.
- Für die Suche nach dem zu aktualisierenden Supervisor listen Sie die Supervisoren auf. Supervisor-Ressourcen werden nach der vCenter-Datenerfassung angezeigt.
kubectl -n cci-config get supervisors
Bei Folgendem handelt es sich um ein Beispielergebnis.NAME AGE demo-self-service:domain-c50 75d adminannie-vcenter:domain-c8 5d18h scale-test-vc-01:domain-c8 56d
- Aktualisieren Sie den Supervisor mit der Bezeichnung
adminannie-vcenter:domain-c8
.kubectl -n cci-config edit supervisor adminannie-vc:domain-c8
Das folgende Beispiel enthältmetadata.labels
Schlüssel-Wert-Paare und Regionenspec.regionNames
. Die Bezeichnungen environment: testing und fipsMode: strict können bei Entscheidungen zur Platzierung von Supervisoren verwendet werden.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>
- Oder klicken Sie auf die Registerkarte Supervisor-Regionen für ein Projekt, das sich unter befindet.
Schritt 4: Erstellen einer Regionsbindung und einer Regionsbindungskonfiguration
Sie erstellen eine Regionsbindung und eine Regionsbindungskonfiguration, damit Benutzer in einem Projekt Supervisor-Namespaces für Supervisoren in einer Region erstellen können.
- Erstellen Sie eine Rollenbindung.
kubectl create -f regionbinding.yaml
Beispieldateiregionbinding.yaml
.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBinding metadata: name: <region_name> namespace: <project_name>
Da eine Regionsbindung keine Platzierungseinstellungen für Supervisoren enthält, müssen Sie auch eine Regionsbindungskonfiguration erstellen.
- Erstellen Sie eine Regionsbindungskonfiguration für jede erstellte Regionsbindung. Sie können Übereinstimmungsausdrücke einschließen, die für die zusätzliche Filterung von Supervisoren verwendet werden. Supervisor-Bezeichnungen werden verwendet, um die Platzierung des Supervisor-Namespace in einer Teilmenge der Supervisoren in einer Region zuzulassen.
kubectl create -f regionbindingconfig.yaml
In der folgenden Beispieldateiregionbindingconfig.yaml
können alle Supervisoren, die mit der Bezeichnung der Test-Umgebung übereinstimmen, die in diesem Projekt und dieser Region erstellten Supervisor-Namespaces hosten.apiVersion: topology.cci.vmware.com/v1alpha1 kind: RegionBindingConfig metadata: name: <region_name> namespace: <project_name> spec: supervisorSelector: matchExpressions: - key: environment operator: In values: - testing
Schritt 5: Erstellen einer Supervisor-Namespace-Klasse und Hinzufügen einer Konfiguration für die Supervisor-Namespace-Klasse
Zum Festlegen von Namespace-Vorlagen mit optionalen Parametern, die zum Anpassen der Namespace-Einstellungen während der Erstellung verwendet werden können, erstellen Sie eine Supervisor-Namespace-Klasse. Anschließend können Sie eine Supervisor-Namespace-Klassenkonfiguration mit Übereinstimmungsausdrücken für die zusätzliche Filterung von Supervisoren erstellen, die für die Platzierung des Supervisor-Namespace verwendet werden.
- Erstellen Sie eine Supervisor-Namespace-Klasse.
kubectl create -f supervisornamespaceclass.yaml
In der folgenden Beispieldateisupervisornamespaceclass.yaml
spiegelt die optionale Eingabe unterparameters
Parameter der Namespace-Klasse wider, die Benutzer beim Erstellen des Namespace angeben. Alle Eingaben müssen Standardwerte aufweisen. Die Werte werden verwendet, um die Speicherklassen, Grenzwerte und zusätzlichen Einschränkungen anzupassen.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
Da die Supervisor-Namespace-Klasse keine Einstellungen für die Supervisor-Platzierung enthält, müssen Sie auch eine Supervisor-Namespace-Klassenkonfiguration erstellen.
- Erstellen Sie eine Supervisor-Namespace-Klassenkonfiguration.
kubectl create -f supervisornamespaceclassconfig.yaml
Die YAML-Datei ist mit allen Supervisor-Namespace-Konfigurationen konfiguriert, die vom Supervisor-Namespace übernommen werden sollen, und kann Folgendes enthalten:- Inhaltsbibliotheken, die die Images enthalten, die der VM-Dienst bei der Bereitstellung virtueller Maschinen verwendet.
- VM-Klassen, wie z. B. T-Shirt-Größen.
- Erzwungene Ressourcengrenzwerte für CPU, Arbeitsspeicher und Speicher.
- Zu verwendende Speicherklassen.
- SupervisorSelector als Entscheidungshilfe bei der Auswahl des für die Erstellung des Supervisor-Namespace zu verwendenden Supervisors.
In der folgenden Beispieldateisupervisornamespaceclassconfig.yaml
wirdsupervisorSelector
für den Abgleich von Supervisor-Bezeichnungen verwendet.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
Schritt 6: Verknüpfen einer Namespace-Klasse mit einem Projekt
Damit ein Supervisor-Namespace mithilfe der Supervisor-Namespace-Klasse in einem Projekt erstellt werden kann, erstellen Sie eine Supervisor-Namespace-Klassenbindung.
kubectl create -f supervisornamespaceclassbinding.yaml
supervisornamespaceclassbinding.yaml
.
namespace
gibt den Namen des Projekts an, das mit der Supervisor-Namespace-Klasse verknüpft werden soll.overrideParameters
sind optional. Sie werden verwendet, um einen Parameterwert zu erzwingen, während die vom Benutzer angegebenen Parameterwerte bei der Erstellung des Supervisor-Namespace ignoriert werden. Zu den gültigen Typen gehören Ganzzahl, Zeichenfolge oder Boolesch.
apiVersion: infrastructure.cci.vmware.com/v1alpha1 kind: SupervisorNamespaceClassBinding metadata: name: <class_name> namespace: <project_name> spec: overrideParameters: - name: podCountLimit type: Integer const: 1000