API einrichten
Red Hat® OpenShift® on IBM Cloud® nutzt dieselbe Anwendungsprogrammierschnittstelle (Application Programming Interface, API) wie IBM Cloud Kubernetes Service, sodass Sie Ihre Community-Kubernetes- oder Red Hat OpenShift-Cluster mit denselben Methoden konsistent erstellen und verwalten können. Informationen zur Verwendung der Befehlszeilenschnittstelle (CLI) finden Sie unter Befehlszeilenschnittstelle einrichten.
Informationen zur API
Die Red Hat OpenShift on IBM Cloud-API automatisiert die Bereitstellung und Verwaltung von IBM Cloud-Infrastrukturressourcen für Ihre Cluster, sodass Ihren Apps die nötigen Rechen-, Netz- und Speicherressourcen zur Verfügung stehen, um Ihren Benutzern dienlich sein zu können.
Die API unterstützt die verschiedenen Infrastrukturanbieter, die Ihnen für die Erstellung von Clustern zur Verfügung stehen. Weitere Informationen finden Sie unter Infrastruktur-Provider-Übersicht.
Mit der API der Version 2 (v2) können Sie sowohl klassische als auch VPC-Cluster verwalten. Version 2 (v2) der API wurde dazu konzipiert, um nach Möglichkeit eine Beeinträchtigung der bestehenden Funktionalität zu vermeiden.
Stellen Sie jedoch sicher, dass Sie sich mit den folgenden Unterschieden zwischen der API v1 und der API v2 vertraut machen.
- Präfix für API-Endpunkt
- v1-API:
https://containers.cloud.ibm.com/global/v1 - v2-API:
https://containers.cloud.ibm.com/global/v2 - v3 API:
https://containers.cloud.ibm.com/global/v3 - API-Referenzdokumente
- v1 und v2 API
- v3 API.
- Stil der API-Architektur
- v1-API: REST (Representational State Transfer) mit Schwerpunkt auf Ressourcen, mit denen Sie über HTTP-Methoden wie
GET,POST,PUT,PATCHundDELETEinteragieren. - v2-API: RPCs (Remote Procedure Calls) mit Schwerpunkt auf Aktionen, die ausschließlich über
GET- undPOST-HTTP-Methoden erfolgen. - Unterstützte Containerplattformen
- v1-API: Verwenden Sie die Red Hat OpenShift on IBM Cloud-API, um Ihre IBM Cloud-Infrastrukturressourcen, wie z. B. Workerknoten, sowohl für Kubernetes-Community als auch Red Hat OpenShift-Cluster zu verwalten.
- v2-API: Verwenden Sie die Red Hat OpenShift on IBM Cloud
v2-API, um Ihre IBM Cloud-Infrastrukturressourcen, wie z. B. Workerknoten, sowohl für Kubernetes-Community als auch Red Hat OpenShift-VPC-Cluster zu verwalten. - Red Hat OpenShift-API
- v1 API: Um die Red Hat OpenShift API zur Verwaltung von Red Hat OpenShift und Kubernetes Ressourcen innerhalb des Clusters, wie Pods oder Namespaces, zu verwenden, müssen Sie sich anmelden, indem Sie einen IBM Cloud API-Schlüssel gegen ein Red Hat OpenShift Zugriffstoken austauschen. Weitere Informationen finden Sie unter API-Schlüssel für die Anmeldung bei Clustern verwenden.
- v2-API: Identisch mit
v1; siehe API-Schlüssel für die Anmeldung bei Clustern verwenden. - Unterstützte APIs nach Infrastrukturtyp
- v1-API:
classic - v2-API:
vpcundclassic- Der Provider
vpcist für die Unterstützung mehrerer VPC-Provider konzipiert. Der unterstützte Subprovider istvpc-gen2, was einem VPC-Cluster mit Rechenressourcen der 2. Generation entspricht. - Providerspezifische Anforderungen weisen einen Pfadparameter in der URL auf, wie zum Beispiel bei
v2/vpc/createCluster. Manche APIs stehen nur einem bestimmten Provider zur Verfügung, wie zum BeispielGET vlanfür die klassische Infrastruktur oderGET vpcsfür VPC. - Providerunabhängige Anforderungen können einen providerspezifischen Hauptteilparameter enthalten, den Sie (in der Regel in JSON) angeben, zum Beispiel
{"provider": "vpc"}, wenn nur für den angegebenen Provider Antworten zurückgeben möchten.
- Der Provider
GET-Antworten- v1-API: Die
GET-Methode für eine Sammlung von Ressourcen (z. B.GET v1/clusters) gibt für jede Ressource in der Liste die gleichen Details zurück wie eineGET-Methode für eine einzelne Ressource (z. B.GET v1/clusters/{idOrName}). - v2-API: Um die Rückgabe von Antworten zu beschleunigen, gibt die v2
GET-Methode für eine Sammlung von Ressourcen (z. B.GET v2/clusters) nur eine Untergruppe der Informationen zurück, die in einerGET-Methode für eine einzelne Ressource (z. B.GET v2/clusters/{idOrName}) angegeben sind. Manche Listenantworten enthalten eine Providereigenschaft, die angibt, ob das zurückgegebene Element für die klassische Infrastruktur oder für eine VPC-Infrastruktur gilt. Die ListeGET zonesgibt zum Beispiel einige Ergebnisse wiemon01zurück, die nur beim Provider der klassischen Infrastruktur verfügbar sind, während andere Ergebnisse wieus-south-01nur bei einem Provider der VPC-Infrastruktur verfügbar sind. - Cluster-, Workerknoten- und Worker-Pool-Antworten
- v1-API: Die Antworten enthalten nur spezifische Informationen für den Provider der klassischen Infrastruktur (z. B. die VLANs in
GET-Cluster- und -Workerantworten. - v2-API: Die zurückgegebenen Informationen variieren je nach Infrastrukturprovider. Für derartige providerspezifische Antworten können Sie den Provider in Ihrer Anforderung angeben. Für VPC-Cluster werden beispielsweise keine VLAN-Informationen zurückgegeben, da sie keine VLANs enthalten. Stattdessen geben sie Teilnetz- und CIDR-Netzinformationen zurück.
Clusterbereitstellungen mit der API automatisieren
Mithilfe der Red Hat OpenShift on IBM Cloud-API können Sie die Erstellung, Bereitstellung und Verwaltung Ihrer Red Hat OpenShift-Cluster automatisieren.
Die Red Hat OpenShift on IBM Cloud-API benötigt Headerinformationen, die Sie in Ihrer API-Anforderung angeben müssen. Diese Headerinformationen können je nach verwendeter API variieren. Um festzustellen, welche Header-Informationen für Ihre API benötigt werden, lesen Sie die Red Hat OpenShift on IBM Cloud API-Dokumentation.
Für die Authentifizierung bei Red Hat OpenShift on IBM Cloud müssen Sie ein IBM Cloud-IAM-Token (IAM = Identity and Access Management) angeben, dass mit Ihren IBM Cloud-Berechtigungsnachweisen erstellt wird und die IBM Cloud-Konto-ID enthält, mit der der Cluster erstellt wurde. Abhängig von der Methode Ihrer Authentifizierung bei IBM Cloud stehen Ihnen die folgenden Optionen zur Automatisierung der Erstellung Ihres IBM Cloud-IAM-Tokens zur Verfügung.
- Nicht föderierte ID
-
- Erzeugen Sie einen IBM Cloud API-Schlüssel: Alternativ zur Verwendung des IBM Cloud Benutzernamens und Passworts können Sie IBM Cloud API-Schlüssel verwenden. IBM Cloud API-Schlüssel sind abhängig von dem IBM Cloud Konto, für das sie generiert werden. Sie können Ihren IBM Cloud-API-Schlüssel nicht mit einer anderen Konto-ID im selben IBM Cloud-IAM-Token kombinieren. Um auf Cluster zugreifen zu können, die mit einem anderen Konto als dem Konto erstellt wurden, auf dem der IBM Cloud-API-Schlüssel basiert, müssen Sie sich bei dem Konto anmelden, um einen neuen API-Schlüssel zu generieren.
- IBM Cloud-Benutzername und -Kennwort: Sie können die Schritte in diesem Abschnitt ausführen, um die Erstellung Ihres IBM Cloud-IAM-Zugriffstokens vollständig zu automatisieren.
- Föderierte ID
-
- Einen IBM Cloud-API-Schlüssel generieren: IBM Cloud-API-Schlüssel sind von dem IBM Cloud-Konto abhängig, für das sie erstellt wurden. Sie können Ihren IBM Cloud-API-Schlüssel nicht mit einer anderen Konto-ID im selben IBM Cloud-IAM-Token kombinieren. Um auf Cluster zugreifen zu können, die mit einem anderen Konto als dem Konto erstellt wurden, auf dem der IBM Cloud-API-Schlüssel basiert, müssen Sie sich bei dem Konto anmelden, um einen neuen API-Schlüssel zu generieren.
- Einmalkenncode verwenden: Wenn Sie sich bei IBM Cloud mit einem Einmalkenncode authentifizieren, kann die Erstellung Ihres IBM Cloud-IAM-Tokens nicht vollständig automatisiert werden, da das Abrufen Ihres Einmalkenncodes die manuelle Interaktion mit Ihrem Web-Browser erfordert. Für die vollständige Automatisierung der Erstellung Ihres IBM Cloud-IAM-Tokens müssen Sie daher einen IBM Cloud-API-Schlüssel erstellen.
- API-Schlüssel: Zum Generieren Ihres IBM Cloud API-Schlüssel zu generieren, gehen Sie wie folgt vor.
- Klicken Sie in der Menüleiste auf Verwalten > Zugriff (IAM).
- Klicken Sie auf die Seite Benutzer und wählen Sie Ihren eigenen Eintrag aus.
- Klicken Sie im Fenster API-Schlüssel auf IBM Cloud-API-Schlüssel erstellen.
- Geben Sie einen Namen und eine Beschreibung für Ihren API-Schlüssel ein und klicken Sie auf Erstellen.
- Klicken Sie auf Anzeigen, um den API-Schlüssel anzuzeigen, der für Sie generiert wurde.
- Kopieren Sie den API-Schlüssel, sodass Sie ihn zum Abrufen Ihres neuen IBM Cloud-IAM-Zugriffstokens verwenden können.
-
Erstellen Sie Ihr IBM Cloud-IAM-Zugriffstoken. Die Informationen des Hauptteils, die in Ihre Anforderung eingeschlossen werden, variieren abhängig von der IBM Cloud-Authentifizierungsmethode, die Sie verwenden.
POST https://iam.cloud.ibm.com/identity/token- Überschrift
-
Content-Type: application/x-www-form-urlencodedAuthorization: Basic Yng6Yng=Dabei entsprichtYng6Yng=der als URL codierten Berechtigung für den Benutzernamen bx und das Kennwort bx.
- Hauptteil für IBM Cloud-Benutzername und -Kennwort
-
grant_type: passwordusername: Ihr IBM Cloud-Benutzername.password: Ihr IBM Cloud-Kennwort.
- Hauptteil für IBM Cloud-API-Schlüssel
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey: Ihr IBM Cloud-API-Schlüssel
- Hauptteil für einmaligen IBM Cloud-Kenncode
-
grant_type: urn:ibm:params:oauth:grant-type:passcodepasscode: Ihr einmaliger IBM Cloud-Kenncode. Führen Sie den Befehlibmcloud login --ssoaus und folgen Sie den Anweisungen in der CLI-Ausgabe, um Ihren einmaligen Kenncode unter Verwendung Ihres Web-Browsers abzurufen.
Das folgende Beispiel zeigt die Ausgabe für die vorherige Anforderung.
{ "access_token": "<iam_access_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503 "scope": "ibm openid" }Sie finden das IBM Cloud IAM-Token im Feld
access_tokenIhrer API-Ausgabe. Notieren Sie sich das IBM Cloud-IAM-Token, um weitere Headerinformationen in den nächsten Schritten abzurufen. -
Rufen Sie die ID des IBM Cloud-Kontos ab, mit dem Sie arbeiten wollen. Ersetzen Sie
TOKENdurch das IAM-Token IBM Cloud, das Sie im vorherigen Schritt aus dem Feldaccess_tokenIhrer API-Ausgabe abgerufen haben. In der API-Ausgabe finden Sie die ID Ihres IBM Cloud-Kontos im Feld resources.metadata.guid.GET https://accounts.cloud.ibm.com/coe/v2/accounts- Überschrift
-
Content-Type: application/jsonAuthorization: bearer TOKENAccept: application/json
Das folgende Beispiel zeigt die Ausgabe der vorherigen Anforderung.
{ "next_url": null, "total_results": 5, "resources": [ { "metadata": { "guid": "<account_ID>", "url": "/coe/v2/accounts/<account_ID>", "created_at": "2016-09-29T02:49:41.842Z", "updated_at": "2018-08-16T18:56:00.442Z", "anonymousId": "1111a1aa1a1111a1aa11aa11111a1111" }, "entity": { "name": "<account_name>", -
Generieren Sie ein neues IBM Cloud-IAM-Token, das Ihre IBM Cloud-Berechtigungsnachweise und die Konto-ID enthält, mit der Sie arbeiten wollen.
Wenn Sie einen IBM Cloud-API-Schlüssel verwenden, müssen Sie die IBM Cloud-Konto-ID verwenden, für die der API-Schlüssel erstellt wurde. Um auf Cluster in anderen Konten zuzugreifen, melden Sie sich bei diesem Konto an und erstellen Sie einen IBM Cloud API-Schlüssel, der auf diesem Konto basiert.
POST https://iam.cloud.ibm.com/identity/token- Überschrift
-
Content-Type: application/x-www-form-urlencodedAuthorization: Basic Yng6Yng=Dabei entsprichtYng6Yng=der als URL codierten Berechtigung für den Benutzernamen bx und das Kennwort bx.
- Hauptteil für IBM Cloud-Benutzername und -Kennwort
-
grant_type: passwordusername: Ihr IBM Cloud-Benutzername.password: Ihr IBM Cloud-Kennwort.bss_account: Die IBM Cloud-Konto-ID, die Sie im vorherigen Schritt abgerufen haben.
- Hauptteil für IBM Cloud-API-Schlüssel
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey: Ihr IBM Cloud-API-Schlüssel.bss_account: Die IBM Cloud-Konto-ID, die Sie im vorherigen Schritt abgerufen haben.
- Hauptteil für einmaligen IBM Cloud-Kenncode
-
grant_type: urn:ibm:params:oauth:grant-type:passcodepasscode: Ihr IBM Cloud-Kenncode.bss_account: Die IBM Cloud-Konto-ID, die Sie im vorherigen Schritt abgerufen haben.
Das folgende Beispiel zeigt die Ausgabe für die API-Anforderung.
{ "access_token": "<iam_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503 }Sie finden das IBM Cloud IAM-Token im
access_tokenund das Refresh-Token imrefresh_tokenFeld Ihrer API-Ausgabe. -
Listen Sie alle klassischen Cluster oder VPC-Cluster in Ihrem Konto auf. Beispielanforderung zum Auflisten von Classic-Clustern.
GET https://containers.cloud.ibm.com/global/v2/classic/getClusters- Überschrift
Authorization: bearer <iam_token>
Beispielbefehl zum Auflisten von VPC-Clustern.
GET https://containers.cloud.ibm.com/global/v2/vpc/getClusters?provider=vpc-gen2- Überschrift
Authorization: Ihr IBM Cloud IAM-Zugriffstoken (bearer <iam_token>).
-
In der API-Dokumentation von Red Hat OpenShift on IBM Cloud finden Sie eine Liste der unterstützten APIs.
Wenn Sie die API für die Automatisierung verwenden, sollten Antworten der API berücksichtigt werden und nicht Dateien in diesen Antworten. Beispiel: Die Kubernetes-Konfigurationsdatei für Ihren Clusterkontext kann geändert werden. Erstellen
Sie daher keine Automatisierung auf der Basis bestimmter Inhalte dieser Datei, wenn Sie den Aufruf GET /v1/clusters/{idOrName}/config verwenden.
Aktualisieren von IAM-Zugriffstokens mit der API
Jedes IBM Cloud Identity and Access Management-Zugriffstoken (IAM-Zugriffstoken), das über die API ausgegeben wird, läuft nach einer Stunde ab. Sie müssen Ihr Zugriffstoken regelmäßig aktualisieren, um den Zugriff auf die IBM Cloud-API sicherzustellen.
Bevor Sie beginnen, vergewissern Sie sich, dass Sie einen IBM Cloud API-Schlüssel haben, mit dem Sie ein neues Zugriffstoken anfordern können.
Führen Sie die folgenden Schritte aus, wenn Sie ein neues IBM Cloud IAM-Token erhalten möchten.
-
Generieren Sie ein neues IBM Cloud IAM-Zugriffstoken unter Verwendung des IBM Cloud API-Schlüssels.
POST https://iam.cloud.ibm.com/identity/token- Überschrift
-
Content-Type: application/x-www-form-urlencoded
- Body
-
grant_type: urn:ibm:params:oauth:grant-type:apikeyapikey:Ihr IBM Cloud-API-Schlüssel.
Das folgende Beispiel zeigt die Ausgabe für die vorherige API-Anforderung.
{ "access_token": "<iam_token>", "refresh_token": "<iam_refresh_token>", "token_type": "Bearer", "expires_in": 3600, "expiration": 1493747503, "scope": "ibm openid" }Sie finden Ihr neues IBM Cloud IAM-Token im Feld
access_tokenIhrer API-Ausgabe. -
Setzen Sie die Arbeit mit der Red Hat OpenShift on IBM Cloud API-Dokumentation fort, indem Sie das Token aus dem vorherigen Schritt verwenden.