GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Richten Sie mit kubeadm einen Kubernetes-Cluster auf einer AWS EC2-Instance mit Ubuntu ein

In diesem Artikel erfahren Sie, wie Sie einen Kubernetes-Cluster mit 2 Worker-Knoten und 1 Master-Knoten auf Ubuntu 18.04 LTS-Servern einrichten. Wir verwenden die Datei „kubeadm " Tool zum Einrichten des Clusters. Kubeadm ist ein Tool, das entwickelt wurde, um "kubeadm init bereitzustellen " und "kubeadm beitreten " zum Erstellen von Kubernetes-Clustern. Bevor wir mit der Erstellung des Clusters fortfahren, wollen wir kurz einige Begriffe verstehen.

    1. Docker:
      Docker ist eine offene Plattform zum Entwickeln, Versenden und Ausführen von Anwendungen. Docker ermöglicht es Ihnen, Ihre Anwendungen von Ihrer Infrastruktur zu trennen, damit Sie Software schnell bereitstellen können. Mit Docker können Sie Ihre Infrastruktur genauso verwalten wie Ihre Anwendungen.
    2. Bild:
      Ein Image ist eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Docker-Containers. Häufig basiert ein Bild auf einem anderen Bild, mit einigen zusätzlichen Anpassungen
    3. Behälter:
      Ein Container ist eine ausführbare Instanz eines Images. Sie können einen Container mit der Docker-API oder -CLI erstellen, starten, stoppen, verschieben oder löschen. Sie können einen Container mit einem oder mehreren Netzwerken verbinden, ihm Speicher hinzufügen oder sogar ein neues Image basierend auf seinem aktuellen Zustand erstellen.
    4. Kubernetes:
      Kubernetes ist ein Open-Source-Container-Orchestrierungssystem zur Automatisierung der Anwendungsbereitstellung, -skalierung und -verwaltung.
    5. Knoten:
      Ein Knoten stellt eine einzelne Maschine im Cluster dar.
    6. Pods:
      A ist eine Gruppe von Containern, die zusammen auf demselben Host bereitgestellt werden. Es ist die grundlegende Ausführungseinheit von Kubernetes Anwendung.
    7. Bereitstellungen:
      Eine Bereitstellung führt mehrere Replikate Ihrer Anwendung aus und ersetzt automatisch alle Instanzen, die ausfallen oder nicht mehr reagieren. Es stellt deklarative Aktualisierungen für Pods und ReplicaSets bereit.
    8. Replik-Set:
      Es stellt sicher, wie viele Replikate eines Pods ausgeführt werden sollen. Es kann als Ersatz für den Replikationscontroller betrachtet werden.
  • Replikationscontroller:
    Es ist ein Supervisor für lange laufende Pods. Es startet eine bestimmte Anzahl von Pods, die Repliken genannt werden, und stellt sicher, dass sie die ganze Zeit laufen.
  1. Service:
    Es ist eine Abstraktion, die einen logischen Satz von Pods und eine Richtlinie für den Zugriff auf sie definiert.

API-Server usw., Controller Manager und Scheduler sind die Komponenten des Masters und Docker, Kubelet-Dienst und Kubernetes-Proxy-Dienst sind die Komponenten des Worker-Knotens. Wir werden diese Komponenten in diesem Dokument nicht diskutieren. Wenn Sie mehr über diese Komponenten erfahren möchten, können Sie die offizielle Seite von Kubernetes hier besuchen.

Voraussetzungen

  1. 3 Ubuntu 18.04 Server mit mindestens 2 GB RAM und 2 CPUs.
  2. Ein Systemnutzer mit "sudo"-Zugriff auf jedem Server.

Was wir tun werden

  1. Richten Sie einen Kubernetes-Cluster mit kubeadm ein

Richten Sie einen Kubernetes-Cluster mit kubeadm ein

Hier,

Wir haben 3 Ubuntu 18.04 LTS-Server.

Server 1=Knoten1
Server 2=Knoten2
Server 3=Master

Bevor wir mit der eigentlichen Installation fortfahren, ändern wir den Hostnamen der Server.

Mit den folgenden Befehlen können Sie auf jedem Server einen Hostnamen festlegen. Nachdem Sie die folgenden Befehle auf jedem Server ausgeführt haben, melden Sie sich erneut bei den Servern an, damit die Server einen neuen Hostnamen erhalten.

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

Führen Sie die unten aufgeführten Schritte aus, um den funktionierenden Kubernets-Cluster aufzurufen.

Besorgen Sie sich den Docker-GPG-Schlüssel (Führen Sie den folgenden Befehl auf allen Knoten aus) :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Fügen Sie das Docker-Repository hinzu(Führen Sie den folgenden Befehl auf allen Knoten aus ) :

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
  stable"

Rufen Sie den Kubernetes-gpg-Schlüssel ab(Führen Sie den folgenden Befehl auf allen Knoten aus ) :

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Fügen Sie das Kubernetes-Repository hinzu(Führen Sie den folgenden Befehl auf allen Knoten aus ) :

Katze <deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

Aktualisieren Sie Ihre Pakete(Führen Sie den folgenden Befehl auf allen Knoten aus )

sudo apt-get update

Installieren Sie Docker, kubelet, kubeadm und kubectl(Führen Sie den folgenden Befehl auf allen Knoten aus ) :

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Halten Sie sie in der aktuellen Version(Führen Sie den folgenden Befehl auf allen Knoten aus ) :

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Fügen Sie die iptables-Regel zu sysctl.conf hinzu (Führen Sie den folgenden Befehl auf allen Knoten aus ) :

echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Aktivieren Sie iptables sofort(Führen Sie den folgenden Befehl auf allen Knoten aus :

sudo sysctl -p

Auf Meister :

Initialisieren Sie den Cluster (Führen Sie den folgenden Befehl nur auf dem Master-Knoten aus) :

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Lokale kubeconfig einrichten(Führen Sie den folgenden Befehl nur auf dem Master-Knoten aus ) :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Wenden Sie das Flannel CNI-Netzwerk-Overlay an(Führen Sie den folgenden Befehl nur auf dem Master-Knoten aus ) :

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Auf Knoten 1 und Knoten 2:

Verbinden Sie die Worker-Knoten mit dem Cluster (Führen Sie den folgenden Befehl aus nur auf Node1 und Node2) :

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
   --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f64f955preedac954f18f7>

Überprüfen Sie, ob die Worker-Knoten dem Cluster erfolgreich beigetreten sindFühren Sie den folgenden Befehl auf dem Master-Knoten aus ) :

kubectl erhält Knoten

Schlussfolgerung:

In diesem Artikel haben wir gelernt, einen Kubernetes-Cluster mit dem kubeadm-Tool einzurichten. Wir haben gesehen, wie einfach ein Cluster erstellt werden kann, wenn die Schritte nicht ausgelassen werden und die Installation ordnungsgemäß durchgeführt wird.


Ubuntu
  1. So stellen Sie Nginx Load Balancing auf einem Kubernetes-Cluster unter Ubuntu 18.04 LTS bereit

  2. Erstellen Sie mit Terraform eine EC2-Instance auf AWS

  3. Richten Sie Nextcloud mit Redis mit Docker ein

  4. Kubernetes-Cluster unter Ubuntu 20.04 mit kubeadm einrichten

  5. Erhöhen des Speicherplatzes der AWS EC2 Ubuntu-Instance

So richten Sie einen Apache Tomcat-Cluster mit 3 Knoten unter Ubuntu ein

So installieren Sie Jenkins mithilfe einer .war-Datei auf einer AWS EC2 Ubuntu 20.04-Instance

So erhöhen Sie den Speicherplatz einer AWS EC2 Ubuntu-Instance

So erstellen Sie eine Ubuntu EC2-Instance auf AWS

So richten Sie Kubernetes 1.5 mit kubeadm unter CentOS ein

Portainer mit Docker auf Ubuntu installieren