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.
- Wenn der Benutzerzugriff auf CCI mithilfe von vSphere+ konfiguriert wird, können Benutzer nur auf die von vSphere+ erstellten Standardprojekte zugreifen. Sie können die CLI verwenden, um den Zugriff auf zusätzliche Projekte und Cloud-Konten zu konfigurieren.
- Als Administrator vorhandener VMware Aria Automation-Instanzen können Sie die CLI für den Zugriff auf CCI verwenden, ohne sie über vSphere+ initiieren zu müssen.
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 vSphere-Administrator Benutzern Zugriff auf VMware Aria Automation gewährt hat, indem Sie die Entwicklererfahrung in vSphere+ aktivieren. Weitere Informationen hierzu finden Sie unter Konfigurieren des Zugriffs auf die Cloud Consumption Interface für neue Aria Automation-Benutzer.
- 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.
- Sie haben Ihr Token zur Anmeldung beim CCI-Server verwendet und den Standardkontext in CCI geändert.
Erstellen eines Projekts und Erstellen von Projektrollenbindungen
Zum Gruppieren von VMware Aria 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]>
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>
Verknüpfen eines Supervisors mit 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
Beispiel für einen Supervisor mit Schlüssel-Wert-Paaren (metadata.labels
) und Regionen (spec.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
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
Erstellen einer 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
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
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