Zugriff auf Kubernetes-Cluster nach der Bereitstellung mit Kubectl auf CODE-DE 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 CODE-DE 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:

  • 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 CODE-DE 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:

../_images/download_config_cli.png

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:

../_images/download_config_horizon.png

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

../_images/cluster_config_editor.png

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:

../_images/get_nodes_large.png

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:

../_images/kubectl_help.png

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 CODE-DE OpenStack Magnum.