Kubernetes vor Ort einrichten?

Kubernetes vor Ort einrichten?

Ich würde gerne wissen, wie ich einen Kubernetes-Cluster auf meinem Ubuntu 20 DPS einrichte. Ich meine, ich habe Docker und Kubeadm installiert. Ich weiß, wie man ein Deployment, einen Service und ein bisschen Ingress durchführt. Ich habe einen bereits konfigurierten Kubernetes-Cluster (aks) verwendet.

Ich muss mein DPS so einrichten, dass es einige Webanwendungen (Websites, APIs, CDN usw.) verfügbar macht. Welche Schritte muss ich ausführen, um Kubernetes zu konfigurieren? Wie mache ich eine bestimmte Website auf einem bestimmten Sub-DNS verfügbar (zum Beispiel eine Domäne der 3. Ebene: trd.mysite.com)?

Muss ich einige Add-Ons wie Nginx-Controller, Metallb und Flannel installieren? Ich verstehe diesen Netzwerkkram nicht, bin aber auch an einem Kurs/Tutorial interessiert, bitte helfen Sie mir, danke!

BEARBEITEN: Dies sind meine YAMLs. Im Moment möchte ich einfach eine Webanwendung auf der Hauptdomäne (xxxx.com) verfügbar machen. Anschließend werde ich eine interne REST-API und eine weitere Webanwendung hinzufügen, die die Rest-API verwendet und auf einer Domäne der 3. Ebene (yyy.xxxxx.com) verfügbar gemacht wird. http://www.mediafire.com/file/c7qwouqri441wek/Kube.zip/file

Antwort1

Ok, also schauen Sie mal. Um den Server erfolgreich ausführen zu können, benötigen Sie:

1. Docker

2.Wenn Sie die Installation lieber mitAbonnieren- Sie benötigen die unten aufgeführten Kubernetes-Pakete. Wir diskutieren in dieser Antwort nur den Kubeadm-Weg. Weitere Tools finden Sie in der internen Dokumentation.

Ansonsten können Sie zB verwendenMinikubus,Abonnieren,Art. Ich mag Minikube und Kind.

  • Kind ist ein Tool zum Ausführen lokaler Kubernetes-Cluster mithilfe von Docker-Container-„Knoten“. Kind wurde in erster Linie zum Testen von Kubernetes selbst entwickelt, kann aber auch für die lokale Entwicklung oder CI verwendet werden.
  • MiniKube ist normalerweise die erste Kubernetes-Technologie, die jemand findet, wenn er anfangen möchte (die offizielle Kubernetes-Dokumentation bietet ein Tutorial zum Bereitstellen Ihres ersten Clusters mit MiniKube). Es ist eine sehr einfache Lösung, die sich auf Ihrem Laptop installieren lässt und zum Lernen und Testen konzipiert ist. Beim Start wird ein Einzelknotencluster (die kleinste Größe) bereitgestellt.

Alle Tools findet ihr hier zum Nachlesen:

3. CNI- für die ordnungsgemäße Vernetzung innerhalb Ihres Clusters.

Es gibt Dutzende von CNI-Plugins. Sie sollten etwas auswählen.

Die beliebtesten sind Flanell und Calico. Manchmal (je nach Bedarf) können Sie installierenKanal. Kurz gesagt - Sie installieren gleichzeitig Calico fürNetzwerkrichtlinien+ Flanell als reguläres CNI zum Netzwerken.

Hier ist der wichtige Tipp! Um CNI richtig zu installieren, sollten Sie es vor der Clustererstellung auswählen. Das liegt daran, dass Sie den Cluster mit dem richtigen --pod-network-cidr=Flag initialisieren müssen.

  • kubeadm init --pod-network-cidr=10.244.0.0/16für Flanell
  • kubeadm init --pod-network-cidr=192.168.0.0/16für Calico
  1. SchutzUndIngress-Controller

Ein API-Objekt, das den externen Zugriff auf die Dienste in einem Cluster verwaltet, normalerweise HTTP.

Ingress bietet möglicherweise Lastausgleich, SSL-Terminierung und namensbasiertes virtuelles Hosting.

Damit die Ingress-Ressource funktioniert, muss der Cluster über eineIngress-Controllerläuft.

Vollständige Liste der verschiedenen Ingress-Controller:Ingress-Controller. Vergleichsmatrix istHier

die beliebtesten:Nginx Ingress-Controller, Kubernetes Ingress Controller (OOB, ebenfalls basierend auf nginx. Aber das sind unterschiedliche), Traefik


Schritte zum Erstellen des Clusters:

Sie sollten den Master enttabuisieren, damit Sie Pods darauf ausführen können. Ohne dies können Sie keine Pods auf Ihrem Master ausführen.

kubectl taint nodes --all node-role.kubernetes.io/master-

Antwort2

Bevor Sie das alles lesen, sehen Sie sich Kubespray an, das Ansbile verwendet, um Cluster für Sie zu erstellen. Wenn Sie jedoch wissen möchten, wie Kubernetes unter der Haube funktioniert, lesen Sie den Rest der Antwort.

Der erste Schritt zum Einrichten eines Kubernetes-Clusters besteht darin, die Komponenten und ihre Funktionsweise zu kennen. Durch die
einfache Installation von Kubeadm wird kein Cluster gestartet. Sie sollten alle für Ihre Anforderungen erforderlichen Komponenten installieren, bevor Sie Ihre YAML-Dateien bereitstellen.

hier ist ein Link zu einer GitHub-Seite. Dort wird Kubeadm verwendet, um einen gesamten Kubernetes-Cluster mit 3 Masterknoten und beliebig vielen Workerknoten zu starten.
Hinweis: Es werden ältere Versionen verwendet, aber es ist eine gute Referenz zum Erlernen von Kubernetes-Komponenten. Sehen Sie sich unbedingt seine Skripte zur YAML-Erstellung für wichtige Clusterkomponenten an und lesen Sie auch die Einzelheiten zu den Clusterkomponenten und deren Funktion.
https://github.com/cookeem/kubeadm-ha/blob/master/v1.11/README.md
Wenn Sie Web-Apps in Ihrem Cluster in einer Domäne verfügbar machen möchten, müssen Sie den Ingress Controller Manager installieren, mit dem Sie Ingress-Ressourcen erstellen können.
Hier ist ein Ingress-YAML-Beispiel aus den Kubernetes-Dokumenten.
https://kubernetes.io/docs/concepts/services-networking/ingress/
Wenn Sie HTTPS mit gültigen Zertifikaten verwenden möchten, können Sie Kubernetes-Geheimnisse verwenden oder den Zertifikatsmanager auf Ihrem Cluster für die automatische Erfassung und Erneuerung von Lets Encrypt konfigurieren.
Beide Optionen sind gut dokumentiert und Sie müssen lediglich eine Google-Suche durchführen, um herauszufinden, wie Sie Ihre Ingress-Ressource dazu bringen, diese Zertifikate zu verwenden.
Stellen Sie sicher, dass Ihre Domäne auf die öffentliche IP-Adresse eines Clusterknotens (Worker oder Master) verweist.

metallb wird mit Clustern vor Ort verwendet, um den Load Balancer-Diensttyp bereitzustellen, den Cloud-Anbieter integriert haben

Flannel ist ein Netzwerk-Plugin, das die Vernetzung Ihres Clusters ermöglicht.
Wenn Sie möchten, dass Ihre Pods miteinander kommunizieren können, sollten Sie über ein Netzwerk-Plugin (CNI) wie Flannel, Calico oder ein anderes unterstütztes Plugin verfügen.
Stellen Sie sich Flannel als den Netzwerk-Switch Ihres Clusters vor.

verwandte Informationen