1.051
Bearbeitungen
K (→Controller) |
KKeine Bearbeitungszusammenfassung |
||
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 19: | Zeile 19: | ||
Die Installation in einem VM Cluster wie Proxmox bietet sich aufgrund der Zeitersparnis an, dennoch sollte aber alles hier beschriebene grundsätzlich auch auf "echten" Maschinen funktionieren. | Die Installation in einem VM Cluster wie Proxmox bietet sich aufgrund der Zeitersparnis an, dennoch sollte aber alles hier beschriebene grundsätzlich auch auf "echten" Maschinen funktionieren. | ||
Zeile 38: | Zeile 36: | ||
''Einige Kubernetes Deployments nutzen MongoDB als Datenbank.'' | ''Einige Kubernetes Deployments nutzen MongoDB als Datenbank.'' | ||
''Ab MongoDB 5.0 werden keine Systeme mehr unterstützt deren CPU das AVX-Flag nicht hat.'' | ''Ab MongoDB 5.0 werden keine Systeme mehr unterstützt deren CPU das AVX-Flag nicht gesetzt hat.'' | ||
''Damit es später keine Probleme gibt, sollte als CPU | ''Damit es später keine Probleme gibt, sollte daher als CPU nicht 'kvm64' sondern 'host' ausgewählt werden.'' | ||
Dies wird ebenfalls empfohlen um "Nested Virtualization" zu nutzen, wodurch die Performance erheblich verbessert werden kann.<ref>https://pve.proxmox.com/wiki/Nested_Virtualization</ref> | |||
=== Controller und Worker === | === Controller und Worker === | ||
Zeile 162: | Zeile 162: | ||
setenforce 0 | setenforce 0 | ||
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config | sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config | ||
</syntaxhighlight>Jetzt können die | </syntaxhighlight>Jetzt können die Tools für den Cluster installiert werden:<syntaxhighlight lang="bash"> | ||
dnf update | dnf update | ||
dnf install -y kubeadm kubectl kubelet nfs-utils --disableexcludes=kubernetes | dnf install -y kubeadm kubectl kubelet nfs-utils --disableexcludes=kubernetes | ||
Zeile 171: | Zeile 171: | ||
- '''kubelet''' / Steuert die Kommunikation zwischen den Nodes und der API | - '''kubelet''' / Steuert die Kommunikation zwischen den Nodes und der API | ||
- '''nfs-utils''' / Um NFS Exports in den Cluster einzubinden | - '''nfs-utils''' / Um NFS Exports als "Persistent Volume" in den Cluster einzubinden | ||
Kubelet beim Neustart automatisch starten:<syntaxhighlight lang="bash"> | Kubelet beim Neustart automatisch starten:<syntaxhighlight lang="bash"> | ||
systemctl enable kubelet | systemctl enable kubelet | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Firewall konfigurieren === | === Firewall konfigurieren === | ||
Zeile 271: | Zeile 273: | ||
Wenn man jetzt mit <code>kubectl get nodes</code> den Status des einen Nodes abfragt wird man feststellen, dass dieser auf "Not Ready" bleibt... | Wenn man jetzt mit <code>kubectl get nodes</code> den Status des einen Nodes abfragt wird man feststellen, dass dieser auf "Not Ready" bleibt... | ||
Mit <code>kubectl get pods -n kube-system</code> sieht man, dass die Pods "coredns" im Status "Pending" sind. | Mit <code>kubectl get pods -n kube-system</code> sieht man, dass die Pods "coredns" im Status "Pending" sind.<syntaxhighlight lang="bash"> | ||
NAME READY STATUS RESTARTS AGE | |||
Das liegt daran, dass der "coredns" auf eine interne IP im Bereich 10.244.0.0/16 wartet. | coredns-787d4945fb-k4q67 1/1 Pending 0 5m16s | ||
coredns-787d4945fb-klgw4 1/1 Pending 0 5m16s | |||
etcd-k8s-ctrlr-1 1/1 Running 0 6m31s | |||
kube-apiserver-k8s-ctrlr-1 1/1 Running 0 6m30s | |||
kube-controller-manager-k8s-ctrlr-1 1/1 Running 0 6m29s | |||
kube-proxy-8gstv 1/1 Running 0 5m13s | |||
kube-scheduler-k8s-ctrlr-1 1/1 Running 0 6m31s | |||
</syntaxhighlight>Das liegt daran, dass der "coredns" auf eine interne IP im Bereich 10.244.0.0/16 wartet. | |||
Damit der Node eine IP zugewiesen bekommt, müssen wir als erstes den [https://github.com/flannel-io/flannel flannel-Agent] installieren. | Damit der Node eine IP zugewiesen bekommt, müssen wir als erstes den [https://github.com/flannel-io/flannel flannel-Agent] installieren. | ||
Zeile 435: | Zeile 444: | ||
==== Keycloak (OIDC) ==== | ==== Keycloak (OIDC) ==== | ||
Siehe [[Kubernetes Dashboard mit Keycloak OIDC]] | |||
Zeile 489: | Zeile 499: | ||
== Weiterführende Links == | == Weiterführende Links == | ||
*[https://krew.sigs.k8s.io/plugins/ Plugins für kubectl Kommando] | *[https://krew.sigs.k8s.io/plugins/ Plugins für kubectl Kommando] | ||
*[https://github.com/collabnix/kubetools Liste mit Tools für Kubernetes] | *[https://github.com/collabnix/kubetools Liste mit Tools für Kubernetes] | ||
*[https://artifacthub.io/ Sammlung von Kubernetes Packages (Helm)] | *[https://artifacthub.io/ Sammlung von Kubernetes Packages (Helm)] | ||
== Quellen == | == Quellen == | ||
https://www.thegeekdiary.com/how-to-access-kubernetes-dashboard-externally/ | * https://www.youtube.com/watch?v=U1VzcjCB_sY | ||
* https://docs.docker.com/engine/install/centos/ | |||
* https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ | |||
* https://www.thegeekdiary.com/how-to-access-kubernetes-dashboard-externally/ | |||
=== Einzelnachweise === | === Einzelnachweise === |