Kubernetes Cluster installieren und betreiben- Tagebuch

  • Moin,


    ich habe ja schon für den Voron 2.4 und V0 ein Tagebuch hier erstellt - das ist quasi readonly für Euch... Wenn Diskussionsbedarf mach ich separate Diskussionsfreds. Warum das also nicht auch mal für IT zeuchs machen?

    Boom here we are... :)

    Vorweg wenn Ihr das nachmachen wollt: Braucht Ihr mindestens 2 VMs oder halbswegsbrauchbare Rechner mit Linux (ubuntu) oder mehrere am besten PI4 mit Ubuntu core. HyperV oder mehr als 2 VMs sind eigentlich nicht nötig um die "Mechanik" zu lernen.


    WTF ist Kubernetes und warum überhaupt. Zur Zeit betreibe ich ja eine HyperV Cluster mit mehr und mehr VMs. Hmm OK was ist ein Hyper-V Cluster und was ist eine VM. Also eine VM (virtuelle Maschine) ist quasi so etwas wie ein ganzer Computer mit Betriebssystem und all der Software die man braucht installiert. Eine VM läuft nur nicht direkt auf einer Hardware sondern über einen Hypervisor, bei mir HyperV, das könnte aber auch VMWare oder ähnliches sein. Cluster sind dann mehrere Hypervisoren?? die zusammenarbeiten und die VMs untereinander verteilen können (loadsharing ausfallsicherheit etc.). Kubernetes ist dann so etwas ähnliches wie so ein Orchestrator, aber eben nicht für VMs, sondern für Container. OK Container noch was neues. Im Gegensatz zu VMs haben Container kein komplette OS an board, sondern greifen auf den Host durch. Container werden meist auch nur für eine Anwendung gemacht (also webserver, db, piholes...) auf eine VM läuft ja meist alles mögliche. Statt von Anwendungen spricht man auch von services die ein Container anbietet.


    Warum jetzt also nochmals der Umsteig von HyperV-Cluster auf Kubernetes?

    • Resourcen sparen durch weniger overhead bei einem Container
    • Strikte trennung der Services - bei VMs tendiert man ja schon mal dazu mehr auf eine VM zu packen um den OS overhead zu verkleinern
    • Ich will das endlich mal lernen - Docker, container, kubernetes! Ich hatte ja schon mal einen Anlauf genommen; dann aber aufgehört, weil es mir viel zu kompliziert für privat erschien. Jetzt fast zwei Jahre später... nochmals von vorne :)

    Mein Cluster hat gerade 4 Server (1 Fileserver + 3 Worker für VMs) und darauf laufen ca. 20 VMs + etliches anderes Zeug. Die Idee ist nun Ubuntu VMs zu erzeugen... moment dann hab ich ja noch mehr VMs?! Ja richtig aber nur ein paar und dann ziehen ja die alten VMs hoffentlich in ihre Container... Also nochmas VMs erzeugen ala X Master und Y Worker. Warum Ubuntu? Weil ich Ubuntu ein bisserl kenn, ich bin ja sonst eher auf Windows unterwegs und weil mit Ubuntu Core auch ein OS für Raspberries vorhanden ist. Also ja ich möchte meine RPIs als Worker mit einbinden (das aber eher spaßeshalber). Das ist vor allem weil ARM und x64 dann gemischt läuft, mal schauen wie das funktionieren wird.


    In dem Bild seht Ihr meine X VMs die auf den 3 Cluster servern laufen. Unten dann schon zwei VMs die einen ersten Master und Worker mit Ubuntu (20 LTS Server) beinhalten. Ach ja als Kubernetes habe ich mich für K3S von Rancher entschieden, hautpsächlich weil es sehr leichtgewichtig ist und auch auf PIs läuft. Deswegen auch der Name der VMs K3-<type des Knotens>-<OS>-<Host>-<instanz>, US steht für Ubuntu Server, HV HyperV als Host und Instanz ist klar die laufende Nummer - könnt Ihr aber machen wie Ihr wollt.


    IP-Adresse für Server vergebe ich immer statisch, DHCP nur für unwichtigen kram wie Ipads und anders IOT gedöns wo die IP egal ist (reine clients).



    Speicherbedarf ist nackig <1GB auf dem Master habe ich noch etwas mehr software installiert, der Worker ist komplett minimales Ubuntu Server ohne extra Pakete.


    Ach ja Ubuntu läuft unter HyperV probemlos wenn man den Secureboot deaktiviert. Ihr braucht nat. auch keinen Cluster Hyper-V auf Eurem WIndows system oder VMware oder gar eine klassische Hardwareinstallation auf einem alten Rechner tut es auch.




    Bevor es die Tage dann weiter geht hier mal ein paar Youtubevideos zur Unterhaltung


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Habt Geduld mit mir - eines von vielen Projekten ...


    Ach ja und das eigentlich deployment von k3s werde ich versuchen mit Ansible oder ähnlichen Tools zu automatisieren. D.h. wenn man eine Grundkonfig (sprich VMs and PIs laufen) hat soll der Cluster am Ende vollautomatisch erstellt werden können. Das VM deployment könnte man jetzt auch automatisieren, aber darauf werde ich verzichten denke ich. Ich werde die VMs, wenn initial erstellt und für gut befunden, einmal sichern und als Testgrundlage nehmen. Bei den PIs images sichern.


    Noch ein Nachtrag:

    Hier seht Ihr den Platzverbrauch der virtuellen Platten der beiden Ubuntu Server contra Ubuntu Dektop (standard installationen). Also nimmt auf jeden Fall die Server Version, wenn Ihr auf die GUI verzichten könnt. Es fällt einem am Anfang etwas schwer, aber wenn man sich auf eine bestimmt Linux Distro einschiesst kommt man auf der Shell recht schnell zurecht.

  • Olaf Krause

    Changed the title of the thread from “Kubernetes Cluster - Tagebuch” to “Kubernetes Cluster installieren und betreiben- Tagebuch”.
  • Sodele weiter gehts mit Vorbereitungen. Was wir sicher brauchen ist WSL (Window Subsystem für Linux) zumindest wenn ich meine WIndows Workstation hier einbringen möchte. Zumindest ANsible möchte ich so laufen lassen. Es findest sich sicher auch einiges andere was aus der Linux Welt kommt und so "direkt" unter windows laufen kann.


    Erster Schritt WSL Feature aktivieren: Such einfach nach "Windows Feature aktivieren" oder "Turn on Windows Features" in der Windows Suchleiste. Dann bekommt Ihr das Controfenster und könnt WSL akltiveren.



    Oops neu starten (Windows Krankheit das immer zu verlangen) geht jetzt nicht. Also anders

    Macht eine Powershell mit Adminrechten auf und gebt wsl --install ein (damit das geht braucht Ihr eine aktuelle Windows 10 version).


    Code
    PS C:\Users\olaf.krause\AppData> wsl --install
    Installation: VM-Plattform
    VM-Plattform wurde installiert.
    Herunterladen: WSL-Kernel
    Installation: WSL-Kernel
    WSL-Kernel wurde installiert.
    Herunterladen: Ubuntu
    Der angeforderte Vorgang wurde erfolgreich abgeschlossen. Änderungen werden erst nach einem Neustart des Systems wirksam.

    OK war einen Versuch wert :( - aber Ihr seht schon hier comes Ubuntu. Wenn das nicht "zufällig" zu dem passt was ich oben als Zielplatform gesehen habe (pssst es war Ubuntu).


    Ach ja meine WIndows Version ist:


    Dann muss ich wohl wirklich warten, bis der aktuell Task fertig ist damit ich meinen Rechner neu starten kann ... also bis die Tage.


    Ach hier wieder ein paar Youtubes


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Windows feature via DISM installieren, macht es auch so - geht am einfachsten und schnellsten.

    Hilft aber nix jetzt muss man rebooten damit man weiter machen kann.


  • Tage später nach etlichen Reboots und installationen. Hatte wohl einen leichten updatestau (Grafikkarte, USB driver, Windows H2 und wat weiss ich) wieder online.


    Jetzt geht auch

    Code
    S C:\Windows\system32> wsl --set-default-version 2
    Informationen zu den wichtigsten Unterschieden zu WSL 2 finden Sie unter https://aka.ms/wsl2
    Der Vorgang wurde erfolgreich beendet.

    Damit habe wir WSL 2 als default eingestellt.


    Wenn wir das Windowsfeature control nochmals öffnen sollte wir unsere zwei Features enabled sehen:



    Kurzer check ob wir schon ein Linux drauf haben


    Code
    PS C:\Windows\system32> wsl -l -v
    Für das Windows-Subsystem für Linux wurden keine Distributionen installiert.
    Distributionen zur Installation finden Sie im Microsoft Store:
    https://aka.ms/wslstore

    wie erwartet nein also weiter im Text mit der eigentlich Installation von Ubuntu. Dazu müsst Ihr den Windows Store öffnen und dort nach ubutu suchen - ich habe die latest LTS 20.04 genommen.


     


    Herunterladen und dann öffnen klicken. Es sollte ein VM Fenster aufgehen, dass Dir sagt das die installation läuft.


    Oops geht nicht


       


    Ursache CPU Virtualisierung aus hoppala. Bei Asus heisst das SMV im Bios.


    jetzt geht es aber


     


    Wir sollen einen Benutzernamen vergeben für Linux und das pwd. Hurray wir sind da:



    Die Welcome message sagt richtiges Ubuntu und WSL 2. Jetzt noch kurz das Ubuntu auf den neuesten stand gebracht und dann ist es gut für heute:

    Code
    apt update
    apt upgrade
    apt autoremove

    obiges als root mit sudo oder sudo -i und dann direkt. Bei mir waren 87 Paket abzudaten oder uptodaten denglish sorry zu aktualisieren halt.


    ach ja die powershell auf windows sagt jetzt


    Code
    PS C:\Windows\system32> wsl -l -v
    NAME            STATE           VERSION
    * Ubuntu-20.04    Running         2

    Also alles gut und Gute Nacht :)

  • Sodele 6 VMs mit Ubuntu Server laufen alle mit Standard Einstellungen und keiner zusätzlichen Software (habe master-01 auch nochmals neu erstellt). Alle 6 Maschienen sind exportiert unm diese später in Minuten wieder auf den Ausgangszustand bringen zu können. Je 3 weil die ja auch ausfallsicher laufen sollen.


     

    Fragt mich nicht warum die alle eine andere größe haben - sind alle tupfergleich installiert bis auf den maschinennamen. Die PIs kommen auch noch


    IP Adressen zwischen 81 und 100 und ein paar PIs liegen bereit
    uc steht in dem Fall für Ubuntu Core


    Bzgl. Raspberries - das sehe ich eher erst noch als Spielerei und lernen (eigentlich das ganze Projekt ist ein IT Kurs für mich), aber wenn denn der Touring PI2 raus kommt (irgendwann 2022) werde ich die PI compute Module wohl intensiver nutzen. Es wird sich eine Anwendung finden lassen.


    Nächster Schritt feste IP adressen vergeben - alles was als Server dienen Soll bekommt be mir eine feste IP. Die geplanten sind ja oben in dem Bild schon sichtbar. Feste IP Adresse unter Ubuntu 20.04 geht ja anscheinend über netplan hier mal der Stand noch mit DHCP vor der Umstellung. Hmm das müsste doch auch mit Ansible gehen oder?


    Sodele mehr wird heute nicht gehen, da ich mich auch mal wieder um meine 3D Drucke kümmern muss...

  • Ganz kurz Mittagspausen install von Ansible auf Windows (WSL)


    Code
    apt install python3-pip
    pip install ansible
    ansible --version

    ergibt bei mir


    Code
    -----:~# ansible --version
    ansible [core 2.11.6]
    config file = None
    configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
    ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
    executable location = /usr/local/bin/ansible
    python version = 3.8.10 (default, Sep 28 2021, 16:10:42) [GCC 9.3.0]
    jinja version = 2.10.1
    libyaml = True

    ab minute 20 ungefähr in dem Livestream

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!