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

So installieren und konfigurieren Sie Kubernetes und Docker unter Ubuntu 18.04 LTS

Kubernetes ist eine Open-Source-Plattform zur Verwaltung containerisierter Anwendungen. Es ermöglicht Ihnen, Ihre containerisierten Anwendungen in der Clusterumgebung zu verwalten, zu skalieren und automatisch bereitzustellen. Kubernetes wird von Google entwickelt.

Mit Kubernetes können Sie Container über mehrere Hosts hinweg orchestrieren, die containerisierten Anwendungen mit allen Ressourcen im Handumdrehen skalieren und über eine zentralisierte Containerverwaltungsumgebung verfügen.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Kubernetes auf Ubuntu 18.04 installieren und konfigurieren. Wir verwenden 1 Server „k8s-master“ als Kubernetes-Host-Master und 2 Server als Kubernetes-Worker, „worker01“ und „worker02“.

Voraussetzungen

  • 3 Ubuntu-Server
    • 10.0.15.10 k8s-master
    • 10.0.15.21 worker01
    • 10.0.15.22 worker02
  • Root-Rechte

Was wir tun werden

  1. Kubeadm-Installation
    1. Hosts einrichten
    2. Installieren Sie Docker
    3. SWAP deaktivieren
    4. Kubeadm-Pakete installieren
  2. Kubernetes-Cluster-Initialisierung
  3. Hinzufügen von Worker-Knoten zum Kubernetes-Cluster
  4. Testen

Schritt 1 - Kubeadm-Installation

In diesem ersten Schritt bereiten wir diese 3 Server für die Kubernetes-Installation vor, also führen Sie alle Befehle auf den Master- und Worker-Knoten aus.

Wir werden alle Server für die Kubernetes-Installation vorbereiten, indem wir die vorhandene Konfiguration auf den Servern ändern und auch einige Pakete installieren, einschließlich Docker und Kubernetes selbst.

Setup-Hosts

Bearbeiten Sie die Hostdatei auf allen Servern mit dem vim-Editor.

sudo vim /etc/hosts

Hostkonfiguration unten einfügen.

10.0.15.10 k8s-master10.0.15.21 worker0110.0.15.22 worker02

Speichern und beenden.

Testen Sie jetzt alle Server-Hostnamen.

ping -c 3 k8s-master
ping -c 3 worker01
ping -c 3 worker02

Stellen Sie sicher, dass alle IP-Adressen als Hostname aufgelöst werden.

Docker installieren

In diesem Tutorial installieren wir Docker aus dem Ubuntu-Repository.

Installieren Sie Docker mit dem folgenden apt-Befehl.

sudo apt install docker.io -y

Nachdem die Installation abgeschlossen ist, starten Sie den Docker-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

sudo systemctl docker starten
sudo systemctl docker aktivieren

Die Docker-Installation ist abgeschlossen.

SWAP deaktivieren

Um die Kubernetes-Linux-Server einzurichten, müssen wir SWAP deaktivieren.

Überprüfen Sie die Auslagerungsliste und deaktivieren Sie sie.

sudo swapon -s
sudo swapoff -a

Um SWAP dauerhaft zu deaktivieren, müssen wir die Datei „/etc/fstab“ bearbeiten.

sudo vim /etc/fstab

Machen Sie einen Kommentar zum SWAP-Partitionstyp.

#/dev/mapper/hakase--labs--vg-swap_1 none swap sw 0 0

Speichern und beenden, dann das System neu starten.

sudo reboot

Kubeadm-Pakete installieren

In diesem Tutorial verwenden wir Kubeadm-Pakete, um den Kubernetes-Cluster einzurichten. Wir werden die Kubeadm-Pakete aus dem offiziellen Kubernetes-Repository installieren.

Installieren Sie apt-transport-https.

sudo apt install -y apt-transport-https

Fügen Sie den Kubernetes-Schlüssel hinzu.

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

Fügen Sie das Kubernetes-Repository hinzu, indem Sie eine neue repo.list-Datei im Verzeichnis „/etc/apt/sources.list.d“ erstellen.

cd /etc/apt/
sudo vim sources.list.d/kubernetes.list

fügen Sie das Kubernetes-Repository unten ein.

deb http://apt.kubernetes.io/ kubernetes-xenial main

Hinweis:

Wir verwenden immer noch das Xenial Ubuntu 16.04-Repository für unsere Kubeadm-Installation.

Aktualisieren Sie nun das Repository und installieren Sie kubeadm-Pakete mit den folgenden apt-Befehlen.

sudo apt update
sudo apt install -y kubeadm kubelet kubectl

Warten Sie auf die Installation der kubeadm-Pakete.

Schritt 2 – Initialisierung des Kubernetes-Clusters

In diesem Schritt initialisieren wir Kubernetes auf dem Knoten „k8s-master“. Führen Sie alle Befehle in dieser Phase nur auf dem 'k8s-master'-Server aus.

Initialisieren Sie den Kubernetes-Cluster mit dem folgenden kubeadm-Befehl.

sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=10.0.15.10 --kubernetes-version "1.11.0"

Hinweis:

  • --apiserver-advertise-address =legt fest, auf welcher IP-Adresse Kubernetes seinen API-Server ankündigen soll.
  • --pod-network-cidr =Geben Sie den IP-Adressbereich für das Pod-Netzwerk an. Wir verwenden das virtuelle Netzwerk „Flanell“. Wenn Sie ein anderes Pod-Netzwerk wie Weave-Net oder Calico verwenden möchten, ändern Sie die Bereichs-IP-Adresse.

Wenn die Kubernetes-Initialisierung abgeschlossen ist, erhalten Sie das unten gezeigte Ergebnis.

Kopieren Sie den 'kubeadm join ... ... ... ' Befehl an Ihren Texteditor. Der Befehl wird verwendet, um neue Worker-Knoten im Kubernetes-Cluster zu registrieren.

Um Kubernetes zu verwenden, müssen wir nun einige Befehle ausführen, wie im Ergebnis gezeigt.

Erstellen Sie ein neues Konfigurationsverzeichnis „.kube“ und kopieren Sie die Konfiguration „admin.conf“ aus dem Verzeichnis „/etc/kubernetes“.

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

Stellen Sie als Nächstes das Flanell-Netzwerk mithilfe des Befehls kubectl im Kubernetes-Cluster bereit.

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

Das Flanell-Netzwerk wurde im Kubernetes-Cluster bereitgestellt.

Warten Sie eine Minute und überprüfen Sie dann den Kubernetes-Knoten und die Pods mit den folgenden Befehlen.

kubectl get nodes
kubectl get pods --all-namespaces

Und Sie erhalten, dass der „k8s-master“-Knoten als „Master“-Cluster mit dem Status „bereit“ ausgeführt wird und alle „kube-system“-Pods, die für den Cluster benötigt werden, betriebsbereit sind.

Die Initialisierung und Konfiguration des Kubernetes-Clustermasters wurde abgeschlossen.

Schritt 3 – Hinzufügen von Worker-Knoten zum Kubernetes-Cluster

In diesem Schritt fügen wir dem Kubernetes-Cluster zwei Node-Worker „worker01“ und „worker02“ hinzu.

Stellen Sie eine Verbindung zum „worker01“-Server her und führen Sie den kubeadm-Join-Befehl aus, den Sie von der Cluster-Initialisierung erhalten.

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcpre> 

Stellen Sie eine Verbindung zum „worker02“-Server her und führen Sie den kubeadm-Join-Befehl aus, den Sie von der Cluster-Initialisierung erhalten..

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcpre> 

Warten Sie einige Minuten und kehren Sie zum 'k8s-master'-Knotenmaster zurück und überprüfen Sie den Knotenstatus.

kubectl erhält Knoten

Sie werden sehen, dass die Worker-Knoten „worker01“ und „worker02“ Teil des Kubernetes-Clusters sind.

Schritt 4 – Testen

In diesem Schritt werden wir den Nginx-Webserver innerhalb des Clusters bereitstellen. Wir werden den Nginx-Webserver mithilfe der YAML-Vorlage bereitstellen.

Erstellen Sie ein neues Verzeichnis mit dem Namen „nginx“ und wechseln Sie in dieses Verzeichnis.

mkdir -p nginx/
cd nginx/

Erstellen Sie nun die Nginx-Bereitstellungs-YAML-Datei „nginx-deployment.yaml“ mit dem vim-Editor.

sudo vim nginx-deployment.yaml

Konfigurationen unten einfügen.

apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deployment labels:app:nginxspec:replicas:3 selector:matchLabels:app:nginx template:metadata:labels:app:nginx spec:containers:- name:nginx image :nginx:1.14.0 Ports:- containerPort:80

Speichern und beenden.

Hinweis:

  • Wir erstellen ein neues „Deployment“ mit dem Namen „nginx-deployment“.
  • Richten Sie das App-Label als „nginx“ mit „3“ Replikaten ein.
  • Das 'nginx-deployment' wird Container mit dem Namen 'nginx' haben, basierend auf dem Docker-Image 'nginx:1.14.0', und wird den Standard-HTTP-Port 80 verfügbar machen.

Erstellen Sie nun die Bereitstellung, indem Sie den folgenden kubectl-Befehl ausführen.

kubectl create -f nginx-deployment.yaml

Überprüfen Sie nach dem Erstellen einer neuen „nginx-Bereitstellung“ die Bereitstellungsliste im Cluster.

kubectl Get Deployments
kubectl beschreiben Deployment nginx-Deployment

Überprüfen Sie nun die Kubernetes-Pods und Sie sehen den Pod „nginx-deployment-xxx“, überprüfen Sie die Details des Pods.

kubectl-Get-Pods
kubectl-Describe-Pods nginx-deployment-6cb5f7bf4f-t5xfh

Sie erhalten nginx-Bereitstellungs-Pods mit 3 Replikaten auf den Worker-Knoten.

Als nächstes müssen wir einen neuen Dienst für unsere „nginx-Bereitstellung“ erstellen.

Erstellen Sie eine neue YAML-Datei mit dem Namen „nginx-service.yaml“.

vim nginx-service.yaml

Fügen Sie die Konfiguration unten ein.

apiVersion:v1kind:Servicemetadata:name:nginx-service labels:run:nginx-servicespec:type:NodePort ports:- port:80 protocol:TCP selector:app:nginx

Speichern und beenden.

Hinweis:

  • Wir erstellen einen neuen Kubernetes-Dienst namens "nginx-service".
  • Der Typ des Dienstes ist „NodePort“ mit dem TargetPort-HTTP-Standardport 80.
  • Der Dienst gehört zu der App mit dem Namen „nginx“, basierend auf unserer Bereitstellung „nginx-deployment“.

Erstellen Sie den Kubernetes-Dienst mit dem folgenden kubectl-Befehl.

kubectl create -f nginx-service.yaml

Überprüfen Sie nun alle verfügbaren Dienste im Cluster und Sie erhalten den 'nginx-Dienst' auf der Liste. Überprüfen Sie dann die Details des Dienstes.

kubectl-Get-Service
kubectl-Describe-Service-nginx-service

Und Sie werden sehen, dass der NodePort „nginx-service“ auf Port „32649“ läuft.

Überprüfen Sie mit dem curl-Befehl alle Worker-Knoten.

Auf dem Arbeiter01.

Curlworker01:32649

Sie sehen die Nginx-Standardseite.

Auf dem Arbeiter02.

Curlworker02:32649

Die Installation und Konfiguration des Kubernetes-Clusters auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.


Ubuntu
  1. So installieren Sie Kubernetes unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  3. So installieren Sie Docker unter Ubuntu 22.04 / 20.04 LTS

  4. So installieren und konfigurieren Sie Ansible unter Ubuntu 18.04 LTS

  5. So installieren und konfigurieren Sie Fail2ban unter Ubuntu 20.04 LTS

So installieren und konfigurieren Sie Odoo ERP auf Ubuntu 20.04 LTS

So installieren und konfigurieren Sie MySQL in Ubuntu 20.04 LTS

So installieren Sie Docker unter Ubuntu 16.04 LTS

So installieren und konfigurieren Sie den DNS-Server unter Ubuntu 16.04 LTS

So installieren Sie Docker unter Ubuntu 18.04 LTS

So installieren und konfigurieren Sie Kitematic unter Ubuntu Linux