So richten Sie einen Kubernetes-Cluster auf AWS mit Kops ein

Kops wird verwendet, um den Kubernetes-Cluster auf einfachste Art und Weise aufzusetzen. Es ist ein Kommandozeilen-Tool, das zum Erstellen von Kubernetes-Clustern verwendet wird. Kops unterstützt offiziell AWS, wobei GCP, DigitalOcean und OpenStack in der Beta-Phase sind. Kops kann auch Terraform-Dateien für die benötigte Clusterkonfiguration generieren. Man kann mit Kops nicht nur einfach einen Cluster erstellen, sondern auch die Kubernetes-Version im Cluster ändern, löschen und aktualisieren.

In diesem Artikel sehen wir uns die Schritte zum Erstellen eines Kubernetes-Clusters mit einem Master- und einem Worker-Knoten auf AWS an. Bevor wir fortfahren, wird vorausgesetzt, dass Sie bereits mit Kubernetes vertraut sind

Vorraussetzungen

  1. AWS-Konto(Erstellen Sie es, falls Sie noch keines haben).
  2. EC2 Ubuntu 18.04-Instanz (Klicken Sie hier, um zu erfahren, wie Sie eine EC2-Instanz auf AWS erstellen).
  3. S3 Bucket (Klicken Sie hier, um zu erfahren, wie Sie ein S3 Bucket auf AWS erstellen).
  4. Domain-Name (Suchen Sie nach „How to buy a Domain Name on AWS?“, um die Schritte zum Erstellen einer Domain auf AWS zu verstehen).
  5. IAM-Rolle mit ausreichenden/Admin-Berechtigungen (Klicken Sie hier, um zu erfahren, wie Sie eine IAM-Rolle auf AWS erstellen).

Was müssen wir tun?

  1. Melden Sie sich bei AWS an.
  2. Überprüfen Sie den S3 Bucket, IAM Role.
  3. Hängen Sie die IAM-Rolle an die Instanz an.
  4. Installieren Sie Kubectl und Kops auf der EC2-Instanz.
  5. Validieren Sie Recordset-Regeln und eine gehostete Zone.
  6. Erstellen Sie einen Kubernetes-Cluster mit Kops.
  7. Löschen Sie den Cluster.

Anmeldung bei AWS

Klicken Sie hier, um zur Anmeldeseite zu gelangen, auf der Sie Ihre Anmeldedaten eingeben können, um sich in das Konto einzuloggen.

Login-Seite

Sobald Sie sich erfolgreich bei Ihrem AWS-Konto angemeldet haben, sehen Sie die AWS Management Console wie folgt.

AWS-Hauptkonsole

Überprüfen Sie das S3-Bucket, die IAM-Rolle

Um einen Cluster mit Kops zu erstellen, benötigen wir ein S3-Bucket, in dem Kops die gesamte Clusterkonfiguration speichern wird.

Überprüfen Sie den Bucket, der für die Speicherung der Kops-Konfigurationen verwendet werden soll.

S3 Bucket

Überprüfen Sie, ob die IAM-Rolle, die Sie verwenden möchten, über ausreichende/admin-Berechtigungen verfügt. Kops benötigt keine Admin-Berechtigungen, wenn Sie sich mit AWS IAM und Berechtigungen nicht auskennen und keine Zugriffsprobleme haben wollen, können Sie die Admin-Berechtigung verwenden.

IAM-Rolle

Hängen Sie die IAM-Rolle an die Instanz an

Sobald Sie die Rolle haben, hängen Sie sie an die EC2-Instanz an, die Sie zum Ausführen der kops-Befehle verwenden werden. Gehen Sie zu EC2 –> wählen Sie die EC2-Instanz aus –> klicken Sie auf Actions –> Security — > Modify IAM role.

EC2-Instanz aktualisieren

Wählen Sie die IAM-Rolle aus und speichern Sie die Änderungen.

Hängen Sie die IAM-Rolle an die EC2-Instanz an

Installieren Sie Kubectl und Kops auf der EC2-Instanz

Bis zu diesem Punkt haben Sie einen S3-Bucket und eine EC2-Instanz mit der erforderlichen Rolle. Loggen Sie sich nun in die EC2-Instanz ein, die Sie zum Erstellen eines Clusters mit Kops verwenden werden.

Der nächste Schritt ist die Installation von Kubectl auf der EC2-Instanz.

Führen Sie die folgenden Befehle aus, um kubectl auf dem Ubuntu-Server zu installieren

curl -LO „https://dl.k8s.io/release/$(curl -L -s

curl -LO „https://dl.k8s.io/$(curl -L -s

echo „$(<kubectl.sha256) kubectl“ | sha256sum –check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

mkdir -p ~/.local/bin/kubectl

mv ./kubectl ~/.local/bin/kubectl

Prüfen Sie die kubectl-Version mit dem folgenden Befehl.

kubectl version –client

Kops auf der EC2-Instanz installieren

Jetzt können Sie Kops auf der gleichen EC2-Instanz installieren.

Prüfen Sie, ob kops existiert, wenn nicht, installieren Sie es mit den folgenden Befehlen auf dem Ubuntu Server.

kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d ‚“‚ -f 4)/kops-linux-amd64

chmod +x kops-linux-amd64

sudo mv kops-linux-amd64 /usr/local/bin/kops

Jetzt sollten Sie kops auf dem Server haben.

kops

Installieren Sie Kubectl auf der EC2-Instanz

Validieren Sie Recordset-Regeln und eine gehostete Zone.

Kops benötigt die erforderlichen DNS-Records, um einen Cluster zu erstellen.

Hier habe ich eine zweite gehostete Zone in route53.

Erstellen einer gehosteten Zone

Außerdem habe ich die NS-Server meiner SUBDOMAIN auf die PARENT-Domain in Route53 kopiert.

Gehen Sie zu Route53 — > Gehostete Zonen — > Gehen Sie zur Hauptstandard-Hosted-Zone — > Suchen Sie nach dem Recordset und überprüfen Sie dessen Werte.

Erstellen eines Datensatzes in der Haupt-Hosted-Zone

Erstellen eines Kubernetes-Clusters mit Kops

Jetzt sind wir bereit, einen Cluster zu erstellen. Bevor wir einen Cluster erstellen, wollen wir sehen, was wir erhalten, wenn wir versuchen, die Cluster aufzulisten.

kops get clusters

Der obige Befehl wird fehlschlagen, da er einen S3-Bucket als Parameter benötigt.

kops get clusters –state s3://kops.devopslee.com

Da es keine vorhandenen Cluster gibt, listet der Befehl nichts auf.

Wenn Sie den Namen des S3-Buckets nicht als Parameter an den Befehl übergeben möchten, können Sie seinen Wert im Terminal in die Variable „KOPS_STATE_STORE“ exportieren.

export KOPS_STATE_STORE=s3://kops.devopslee.com

Dieses Mal müssen Sie den S3-Bucket nicht im Befehl angeben

kops get clusters

Cluster holen

Versuchen wir nun, einen Cluster zu erstellen mit

  1. 1 Master-Knoten mit der Instanz des Typs t2.medium
  2. 1 Worker-Knoten mit der Instanz des Typs t2.micro
  3. Verfügbarkeitszone als us-east-1a,us-east-1b,us-east-1c

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c

Der obige Befehl gibt Fehler aus, da wir keinen ssh-Schlüssel angegeben haben.

Prüfen Sie, ob Sie ein Schlüsselpaar in Ihrer Instanz haben.

ls -l ~/.ssh/

Wenn Sie kein Schlüsselpaar haben, können Sie es mit dem folgenden Befehl erstellen.

ssh-keygen

Erzeugen von ssh-Schlüsseln

Wenn Sie dieses Mal den create-Befehl erneut ausführen, wird er fehlschlagen, da die S3 durch den vorherigen Befehl mit der Cluster-Konfiguration aktualisiert wurde, auch wenn er aufgrund des fehlenden ssh-Schlüssels fehlgeschlagen ist.

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub

Löschen wir also die Clusterkonfiguration und erstellen den Cluster mit ssh-Schlüssel neu.

kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes

Recreation fehlschlägt, löschen Sie die Clusterkonfiguration

Diesmal übergeben wir den öffentlichen ssh-Schlüssel beim Erstellen des Clusters.

kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub

Erstellen einer Clusterkonfiguration mit einem privaten Schlüssel

Zunächst wird die Clusterkonfiguration erstellt.

Details zur Cluster-Erstellung

Jetzt haben wir die Clusterkonfiguration. Wenn wir Änderungen an der Konfiguration vornehmen möchten, können wir das tun, ansonsten können wir mit der Erstellung des Clusters fortfahren. Sie können zum S3-Bucket gehen und darin eine Clusterkonfiguration sehen.

Konfiguration im S3-Bucket aktualisiert

Diesmal wird Ihnen angezeigt, dass der Cluster verfügbar ist.

kops get cluster

Aber die Ressourcen sind noch nicht erstellt.

Um die Ressourcen sofort zu erstellen, müssen wir den Cluster mit –yes als Option für den Befehl aktualisieren.

kops update cluster –name kops.devopslee.com –yes

Aktualisieren des Clusters zum Erstellen von Cloud-Ressourcen

Die Erstellung des Clusters wird einige Zeit in Anspruch nehmen. Sie können den Zustand des Clusters mit dem folgenden „validate“-Befehl überprüfen.

kops validate cluster –wait 10m

Validieren Sie den Cluster, es kann 10 Minuten dauern, bis der Cluster aktiv wird

Sobald alle Cluster-Ressourcen erstellt sind, ist der Cluster einsatzbereit.

Cluster im Zustand Ready

Sobald die EC2-Instanzen bereit sind, aktualisiert kops die Hosted-Zone mit A-Einträgen, die IPs des Masters enthalten.

Datensätze werden mit der IP des Master-Knotens aktualisiert

Sie sind nun bereit, den Cluster zu verwenden. Um vorhandene Pods im Standard-Namensraum zu überprüfen, führen Sie den folgenden Befehl aus.

kubectl get pods

Sie können auch Pods aus allen Namespaces überprüfen

kubectl get pods -A

Prüfen Sie Knoten im Cluster.

kubectl get nodes

Um weitere Details zu den Knoten zu holen, verwenden Sie -o wide im Befehl.

kubectl get nodes -o wide

Überprüfen Sie die System-Pods im Cluster

Löschen des Clusters

Wenn Sie den Cluster nicht mehr benötigen, können Sie ihn einfach mit Kops löschen.

kops get cluster

Sie müssen nur einen einzigen Befehl ausführen.

kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes

Den Cluster löschen

Kops löscht alle Ressourcen, die es für den Cluster erstellt hat, damit dieser voll funktionsfähig ist

Cluster-Löschung erfolgreich

Fazit

In diesem Artikel haben wir alle Schritte zum Erstellen eines Kubernetes-Clusters mit Kops gesehen. Wir haben gesehen, dass Kops eine Domain benötigt, um einen voll funktionsfähigen Cluster zu erstellen. Wir haben gesehen, wie einfach es ist, einen Cluster mit Kops zu erstellen und zu löschen.

Das könnte dich auch interessieren …