RK-API Kurzanleitung
Sie können auf die Ressourcen von Rancher über die Kubernetes-API zugreifen. Diese Anleitung hilft Ihnen, als Rancher-Benutzer mit dieser API zu beginnen.
-
Klicken Sie in der oberen linken Ecke auf ☰ > Globale Einstellungen.
-
Finden Sie die Adresse im Feld
server-urlund kopieren Sie sie. -
rancher-admin/users/settings/api-keys.adoc#_creating_an_api_key[Erstellen] Sie einen Rancher-API-Schlüssel ohne Scope.
|
Ein Rancher-API-Schlüssel ohne Scope gewährt uneingeschränkten Zugriff auf alle Ressourcen, auf die der Benutzer zugreifen kann. Um unbefugte Nutzung zu verhindern, sollte dieser Schlüssel sicher aufbewahrt und häufig gewechselt werden. |
-
Erstellen Sie eine
kubeconfig.yaml-Datei. Ersetzen Sie$SERVER_URLdurch die Server-URL und$API_KEYdurch Ihren Rancher-API-Schlüssel:apiVersion: v1 kind: Config clusters: - name: "rancher" cluster: server: "$SERVER_URL" users: - name: "rancher" user: token: "$API_KEY" contexts: - name: "rancher" context: user: "rancher" cluster: "rancher" current-context: "rancher"
Sie können diese Datei mit jedem kompatiblen Tool verwenden, wie kubectl oder client-go. Für eine schnelle Demo siehe das kubectl-Beispiel.
Für weitere Informationen zur Handhabung komplexerer Zertifikateinstellungen siehe Festlegen von CA-Zertifikaten.
Für weitere Informationen zu verfügbaren kubeconfig-Optionen siehe die Upstream-Dokumentation.
API-kubectl-Beispiel
In diesem Beispiel zeigen wir, wie man kubectl verwendet, um ein Projekt zu erstellen, gefolgt von dessen Löschung. Für eine Liste weiterer verfügbarer Rancher-Ressourcen, siehe die Seite API-Referenz.
|
Zu diesem Zeitpunkt sind nicht alle Rancher-Ressourcen über die Rancher Kubernetes API verfügbar. |
-
Setzen Sie Ihre KUBECONFIG-Umgebungsvariable auf die kubeconfig-Datei, die Sie gerade erstellt haben:
export KUBECONFIG=$(pwd)/kubeconfig.yaml
-
Verwenden Sie
kubectl explain, um die verfügbaren Felder für Projekte oder komplexe Unterfelder von Ressourcen anzuzeigen:
kubectl explain projects
kubectl explain projects.spec
Nicht alle Ressourcen haben möglicherweise eine detaillierte Ausgabe.
-
Fügen Sie der Datei mit dem Namen
project.yamlfolgenden Inhalt hinzu:
apiVersion: management.cattle.io/v3
kind: Project
metadata:
# name should be unique across all projects in every cluster
name: p-abc123
# generateName can be used instead of `name` to randomly generate a name.
# generateName: p-
# namespace should match spec.ClusterName.
namespace: local
spec:
# clusterName should match `metadata.Name` of the target cluster.
clusterName: local
description: Example Project
# displayName is the human-readable name and is visible from the UI.
displayName: Example
-
Erstellen Sie das Projekt:
kubectl create -f project.yaml
-
Löschen Sie das Projekt:
Wie Sie das Projekt löschen, hängt davon ab, wie Sie den Projektnamen erstellt haben.
A. Wenn Sie name beim Erstellen des Projekts verwendet haben:
```bash kubectl delete -f project.yaml ```
B. Wenn Sie generateName verwendet haben:
Replace `$PROJECT_NAME` with the randomly generated name of the project displayed by Kubectl after you created the project. ```bash kubectl delete project $PROJECT_NAME -n local ```
CA-Zertifikate angeben
Um sicherzustellen, dass Ihre Tools die CA-Zertifikate von Rancher erkennen, erfordern die meisten Setups zusätzliche Änderungen an der obigen Vorlage.
-
Klicken Sie in der oberen linken Ecke auf ☰ > Globale Einstellungen.
-
Suchen Sie den Wert im Feld
ca-certsund kopieren Sie ihn. -
Speichern Sie den Wert in einer Datei mit dem Namen
rancher.crt.
Wenn Ihre Rancher-Instanz von einem anderen Dienst proxyiert wird, müssen Sie das Zertifikat extrahieren, das der Dienst verwendet, und es zur kubeconfig-Datei hinzufügen, wie in Schritt 5 gezeigt. |
-
Die folgenden Befehle konvertieren
rancher.crtin eine base64-Ausgabe, entfernen alle Zeilenumbrüche und aktualisieren den Cluster in der kubeconfig mit dem Zertifikat, und beenden mit dem Entfernen derrancher.crt-Datei:
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG
kubectl config set clusters.rancher.certificate-authority-data $(cat rancher.crt | base64 -i - | tr -d '\n')
rm rancher.crt
-
(Optional) Wenn Sie selbstsignierte Zertifikate verwenden, die von Ihrem System nicht vertraut werden, können Sie die unsichere Option in Ihrer kubeconfig mit kubectl festlegen:
|
Diese Option sollte nicht in der Produktion verwendet werden, da sie ein Sicherheitsrisiko darstellt. |
export KUBECONFIG=$PATH_TO_RANCHER_KUBECONFIG
kubectl config set clusters.rancher.insecure-skip-tls-verify true
Wenn Ihre Rancher-Instanz von einem anderen Dienst proxyiert wird, müssen Sie das Zertifikat extrahieren, das der Dienst verwendet, und es zur kubeconfig-Datei hinzufügen, wie oben gezeigt.