Zugriff auf Kubernetes-Cluster nach der Bereitstellung mit Kubectl auf EO-Lab OpenStack Magnum
In diesem Tutorial beginnen Sie mit einem frisch installierten Kubernetes-Cluster auf dem OpenStack-Server von Cloudferro und verbinden das wichtigste Kubernetes-Tool, kubectl, mit der Cloud.
Was wir abdecken werden
Wie man kubectl mit dem OpenStack Magnum Server verbindet
Wie man mit kubectl auf Cluster zugreift
Voraussetzungen
No. 1 Konto
Sie benötigen einen EO-Lab Hosting-Konto mit Horizon-Schnittstelle https://cloud.fra1-1.cloudferro.com/auth/login/?next=/.
Nr. 2 Installation von kubectl
Die Standardtypen der kubectl-Installation sind beschrieben auf Install Tools page der offiziellen Kubernetes-Website.
Nr. 3 Ein bereits installierter Cluster auf der Magnum-Website
Möglicherweise haben Sie bereits einen Cluster installiert, wenn Sie einen dieser Artikel befolgt haben:
Mit Horizon-Schnittstelle: Erstellen eines Kubernetes-Clusters mit EO-Lab OpenStack Magnum.
Mit Befehlszeilenschnittstelle: So verwenden Sie die Befehlszeilenschnittstelle für Kubernetes-Cluster auf EO-Lab OpenStack Magnum.
Sie können auch einen neuen Cluster mit dem Namen k8s-cluster für diesen Zweck erstellen, indem Sie den folgenden CLI-Befehl verwenden:
openstack coe cluster create \
--cluster-template k8s-stable-1.23.5 \
--labels eodata_access_enabled=false,floating-ip-enabled=true,master-lb-enabled=true \
--merge-labels \
--keypair sshkey \
--master-count 3 \
--node-count 2 \
--master-flavor eo1.large \
--flavor eo1.large \
k8s-cluster
Warnung
Es dauert etwa 10-20 Minuten, bis sich der neue Cluster gebildet hat.
Im Rest dieses Textes werden wir den Clusternamen k8s-cluster verwenden - achten Sie darauf, dass Sie stattdessen den Namen des bestehenden Clusters verwenden.
Nr. 4 Verbinden Sie den Openstack-Client mit der Cloud
Prepare openstack and magnum clients by executing Step 2 Connect OpenStack and Magnum Clients to Horizon Cloud from article Installation von OpenStack- und Magnum-Clients für die Befehlszeilenschnittstelle von EO-Lab Horizon.
Der Plan
Führen Sie die in Voraussetzung Nr. 2 aufgeführten Schritte aus und installieren Sie kubectl auf der Plattform Ihrer Wahl.
Verwenden Sie den vorhandenen Kubernetes-Cluster auf Cloudferro oder installieren Sie einen neuen mit den in Voraussetzung Nr. 3 beschriebenen Methoden.
Verwenden Sie Schritt 2 in Voraussetzung Nr. 4, um die Verbindung von openstack- und magnum-Clients mit der Cloud zu aktivieren.
Anschließend werden Sie kubectl mit der Cloud verbinden.
Schritt 1 Erstellen eines Verzeichnisses zum Herunterladen der Zertifikate
Erstellen Sie ein neues Verzeichnis mit dem Namen k8sdir, in das die Zertifikate heruntergeladen werden sollen:
mkdir k8sdir
Sobald die Zertifikatsdatei heruntergeladen ist, führen Sie einen ähnlichen Befehl aus wie diesen:
export KUBECONFIG=/home/dusko/k8sdir/config
Dies setzt voraus
dass eine Ubuntu-Umgebung (/home) verwendet wird,
dass der Benutzer dusko ist,
das Verzeichnis, das Sie gerade erstellt haben /k8sdir und schließlich, dass
config die Datei ist, die Daten für die Autorisierung zum Kubernetes-Cluster enthält.
Bemerkung
Unter Linux kann eine Datei eine Erweiterung haben oder auch nicht, während sie unter Windows eine Erweiterung haben muss.
Schritt 2A Herunterladen von Zertifikaten vom Server mit Hilfe der CLI-Befehle
Sie werden den Befehl ausführen
openstack coe cluster config
um die Dateien herunterzuladen, die kubectl für die Authentifizierung beim Server benötigt. Sehen Sie sich die Eingabeparameter mit dem Parameter –help an:
openstack coe cluster config --help
usage: openstack coe cluster config [-h]
[--dir <dir>] [--force] [--output-certs]
[--use-certificate] [--use-keystone]
<cluster>
Get Configuration for a Cluster
positional arguments:
<cluster> The name or UUID of cluster to update
optional arguments:
-h, --help show this help message and exit
--dir <dir> Directory to save the certificate and config files.
--force Overwrite files if existing.
--output-certs Output certificates in separate files.
--use-certificate Use certificate in config files.
--use-keystone Use Keystone token in config files.
Laden Sie die Zertifikate in den Ordner k8sdir herunter:
openstack coe cluster config \
--dir k8sdir \
--force \
--output-certs \
k8s-cluster
Es werden vier Dateien in den Ordner heruntergeladen:
ls k8sdir
ca.pem cert.pem config key.pem
Der Parameter –output-certs erzeugt .pem-Dateien, bei denen es sich um X.509-Zertifikate handelt, die ursprünglich erstellt wurden, um sie per E-Mail versenden zu können. Die Datei config kombiniert die .pem-Dateien und enthält alle Informationen, die kubectl für den Zugriff auf die Cloud benötigt. Die Verwendung von –force überschreibt die vorhandenen Dateien (falls vorhanden), so dass Sie garantiert nur mit den neuesten Versionen der Dateien des Servers arbeiten.
Das Ergebnis dieses Befehls ist in der folgenden Zeile zu sehen:
export KUBECONFIG=/home/dusko/k8sdir/config
Kopieren Sie diesen Befehl, fügen Sie ihn in die Befehlszeile des Terminals ein und drücken Sie die Taste Eingabe auf der Tastatur, um ihn auszuführen. Die Systemvariable KUBECONFIG wird dadurch initialisiert und der Befehl kubectl hat jederzeit Zugriff auf die Datei config.
Dies ist der gesamte Vorgang im Terminalfenster:

Schritt 2B Herunterladen von Zertifikaten vom Server mit Horizon-Befehlen
Sie können die Konfigurationsdatei von Horizon direkt auf Ihren Computer herunterladen. Listen Sie zunächst die Cluster mit dem Befehl Container Infra -> Clusters auf, suchen Sie den Cluster und klicken Sie auf das Dropdown-Menü ganz rechts in der Spalte:

Klicken Sie auf die Option Cluster-Konfiguration anzeigen und die Konfigurationsdatei wird in den Editor geladen:

Speichern Sie die Datei im Editor auf der Festplatte. Der Dateiname setzt sich aus dem Namen des Clusters und dem Wort config zusammen, und wenn Sie dieselbe Datei mehrmals heruntergeladen haben, kann ein Bindestrich gefolgt von einer Zahl stehen, etwa so:
k8s-cluster-config-1.yaml
Speichern Sie die Datei der Einheitlichkeit halber im gleichen Ordner k8sdir wie die config-Datei und setzen Sie die Variable KUBECONFIG auf diese Adresse:
export KUBECONFIG=/home/dusko/k8sdir/k8s-cluster_config-1.yaml
Je nach Ihrer Umgebung müssen Sie möglicherweise ein neues Terminalfenster öffnen, damit der obige Befehl funktioniert.
Schritt 3 Überprüfen Sie, ob kubectl Zugriff auf die Cloud hat
Zeigen Sie die grundlegenden Daten des Clusters mit dem folgenden Befehl an:
kubectl get nodes -o wide
Das Ergebnis ist:

Damit wird überprüft, ob kubectl ordnungsgemäß auf die Cloud zugreifen kann.
Um die verfügbaren Befehle von kubectl zu sehen, verwenden Sie:
kubectl --help
Die Auflistung ist zu lang, um sie hier wiederzugeben, aber sie beginnt folgendermaßen:

kubectl also has a long list of options, which are parameters that can be applied to any command. See them with
kubectl options
Was als nächstes zu tun ist
Wenn kubectl betriebsbereit ist, können Sie
Anwendungen auf dem Cluster bereitstellen,
auf mehrere Cluster zugreifen,
Lastverteiler erstellen,
über Portweiterleitung auf Anwendungen im Cluster zugreifen,
Service für den Zugriff auf Anwendungen in einem Cluster verwenden,
Container-Images im Cluster auflisten
Dienste, Deployments und alle anderen Ressourcen in einem Kubernetes-Cluster nutzen.
Kubernetes Dashboard ist eine visuelle Alternative zu kubectl. Um es zu installieren, siehe Verwendung des Dashboards für den Zugriff auf Kubernetes-Cluster auf EO-Lab OpenStack Magnum.