Beiträge von Olaf Krause

    Jetzt muss ich aber vorsichtshalber anmerken, dass man doch besser direkt eine VM nutzt. Einfach um Sicherheitsissues bei LXC zu vermeiden. Also nur wenn Sicherheit bzgl. dem was nachher auf dem LXC (im docker) läuft nicht relevant ist / man keine root rechte etc. braucht.

    bzgl. Ressourcen macht es nat. einen Unterschied - hier mal ein Vergleich mit drei kleinen containern auf LXC contra VM.

    • Speicher: 143MB : 567MB
    • Disk: 1,68 GB : 3,63GB
    • CPU naja nicht wirklich vergleichbar da unterschiedliche Settings, aber tendenziell LXC auch besser.

    Je mehr Container desto weniger wird der Overhead vom OS beitragen.

    DHCP requests

    Code
    sudo dhclient -v -r
    sudo dhclient -v

    DHCP requests mit loggen:

    Code
    tcpdump -i <yourinterface> udp port 67 and port 68 -vvv

    Auf Ubuntu 22

    Zitat

    journalctl | grep -i DHCP

    Wenn Euer client beim Start KEINE Adresse beim DHCP server abfrag (Ihr habt evtl. eine NIC hinzugefügt) prüft netplan

    Ihr braucht hier einen passenden Eintrag für Euer interface. Siehe auch https://acceptdefaults.com/2022/12/23/cha…-22-04-netplan/

    Jetzt die Worker oder auch agents genannt. Darauf achten, dass der service type agent ist.

    Code
    mkdir -p /etc/rancher/rke2
    curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
    systemctl enable rke2-agent.service
    nano /etc/rancher/rke2/config.yaml

    Inhalt der yaml datei (jetzt ohne die hostnames):

    Code
    server: https://lx-k8s-cluster-01.research.ok-edv.de:9345
    token: <sertoken>

    dann den service starten (auch wieder agent)

    Code
    systemctl start rke2-agent.service

    und siehe da erster agent läuft:

    Code
    root@lx-k8s-thor-03:/etc/rancher/rke2# kubectl get  node
    NAME             STATUS   ROLES                       AGE    VERSION
    lx-k8s-loki-01   Ready    <none>                      14s    v1.24.9+rke2r1
    lx-k8s-thor-01   Ready    control-plane,etcd,master   146m   v1.24.9+rke2r1
    lx-k8s-thor-02   Ready    control-plane,etcd,master   135m   v1.24.9+rke2r1
    lx-k8s-thor-03   Ready    control-plane,etcd,master   121m   v1.24.9+rke2r1

    und ein wenig später alle drei

    Ach ja logfiles für den agent mit

    Code
    journalctl -u rke2-agent -f

    anschauen

    den zweiten und dritten server.

    Note: man kann auch eine bestimmte RKE Version installieren indem man die Version mit angibt

    curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_VERSION=v1.24.6+rke2r1 sh -

    Code
    curl -sfL https://get.rke2.io | sh -
    # create config file
    mkdir -p /etc/rancher/rke2/ 

    dann unter /etc/rancher/rke2/config.yaml folgendes eintragen

    Code
    server: https://lx-k8s-cluster-01.research.ok-edv.de:9345
    token: <servertoken>
    tls-san:
    - lx-k8s-thor-02
    - lx-k8s-thor-02.research.ok-edv.de
    - lx-k8s-cluster-01.research.ok-edv.de
    - lx-k8s-cluster-01
    - 192.168.0.80
    - 192.168.0.82

    der server token steht auf dem ersten server in /var/lib/rancher/rke2/server/node-token.

    Dann den service enablen und starten wie beim ersten server.

    Code
    systemctl enable rke2-server.service
    systemctl start rke2-server.service

    Anmerkung: Auf dem dritten server sieht das config file dann wie folgt aus. Also nur 02 durch 03 beim hostnamen ersetzen.

    Code
    root@lx-k8s-thor-03:~# cat /etc/rancher/rke2/config.yaml
    server: https://lx-k8s-cluster-01.research.ok-edv.de:9345
    token: <token>
    tls-san:
    - lx-k8s-thor-03
    - lx-k8s-thor-03.research.ok-edv.de
    - lx-k8s-cluster-01.research.ok-edv.de
    - lx-k8s-cluster-01
    - 192.168.0.80
    - 192.168.0.83

    Ergebnis drei Master laufen

    Code
    root@lx-k8s-thor-01:~# kubectl get node
    NAME             STATUS   ROLES                       AGE     VERSION
    lx-k8s-thor-01   Ready    control-plane,etcd,master   29m     v1.24.9+rke2r1
    lx-k8s-thor-02   Ready    control-plane,etcd,master   18m     v1.24.9+rke2r1
    lx-k8s-thor-03   Ready    control-plane,etcd,master   3m38s   v1.24.9+rke2r1

    Demnächste dann weiter mit den Agents/workers.

    Sodele wieder back to kubernetes die X-te. Proxmox läuft jetzt stabil also habe ich mich auch mal wieder an kubernetes gewagt.

    Im prinzip hier RE: Kubernetes Cluster installieren und betreiben- Tagebuch wieder eingestiegen:

    Vorraussetzungen: VM mit 4+GB RAM, 16GB Platte, 4 cores, kein swap und kein IPv6.

    Ich habe mir dafür Ubuntu Server Minimized LTS 22 als template in Proxmox erstellt. Hier kurz was ich nach der Standard installation gemacht habe (wie man ein temlate erstellt findet sich hier):

    • No IPV6 (via Grub): disable_ipv6 entries
    • No ssh hostkey: rm /etc/ssh/ssh_host*
    • No machine-id: truncate -s 0 /etc/machine-id & ln -s /var/lib/dbus/machine-id /etc/machine-id
    • qemu-guest-agent is installed
    • nano is installed
    • htop is installed (find ich besser als top)
    • iftop is installed (muss nicht sein, manchmal aber nett zu sehen wohin gesprochen wird)
    • net-tools are installed
    • iptables installiert (wichtig siehe RE: Kubernetes Cluster installieren und betreiben- Tagebuch)

    Nach dem klonen muss man leider noch mit dpg-reconfigure openssh-server die hostkeys neu erstellen (sollte cloudinit eigentlich machen) und den hostnamen anpassen. Dann noch sicherstellen das der DHCP server eine passende reservierung hat oder man eine statische IP konfiguriert.

    IPAdressen 192.168.0.80 (cluster vip), 81-83 für master und 84-86 für worker nodes reserviert.
    Anmerkung: das habe ich später in ein anderes Subnetz (192.168.1.x) geschoben, also nicht wundern wenn die IPs nicht in allen Bildern passen.

    Auch die Namen vorher festgelegt

    • lx-k8s-thor-01 bis -03 für master
    • lx-k8s-loki-01 bis -03 für worker
    • lx-k8s-cluster-01 für den ersten cluster

    Den ersten Master instalieren (siehe auch https://docs.rke2.io/install/quickstart) mit

    Code
    curl -sfL https://get.rke2.io | sh -
    systemctl enable rke2-server.service
    # wenn Ihr eine spezielle konfig braucht diese anpassen siehe paar Zeilen weiter unten BEVOR ihr den service startet.
    systemctl start rke2-server.service

    Prüfen ob er läuft mit

    Code
    journalctl -u rke2-server -f 

    das Hochfahren kann ein paar Minuten dauern.

    wenn Ihr einen Cluster aufsetzen möchtet bitte das config file /etc/rancher/rke2/config.yaml anpassen ala

    Code
    tls-san:
    - lx-k8s-thor-01
    - lx-k8s-thor-01.dmz.ok-edv.de
    - lx-k8s-cluster-01.dmz.ok-edv.de
    - lx-k8s-cluster-01
    - 192.168.1.30
    - 192.168.1.31
    node-taint:
    - "CriticalAddonsOnly=true:NoExecute"

    In meinem Fall habe ich noch einen node-taint hinzugefügt um z verhindern, das diese Server auch workloads bekommt. Unter tls-san listet Ihr alle namen und IPs auf unter denen der Server erreichbar sein wird. Also oben hostname, fqdn, den CLusternamen (via VIP) und die IPs.

    Dann nochmals per kubectl checken

    Code
    # link all the things - kubectl
    ln -s $(find /var/lib/rancher/rke2/data/ -name kubectl) /usr/local/bin/kubectl
    
    # add kubectl conf
    export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
     
    # check node status
    kubectl  get node

    Den Link braucht man natürlich nur einmal erstellen und das export in euer shell start sequence.

    Code
    Rauskommen sollte etwas wie:
    
    root@lx-k8s-thor-01:/etc/rancher/rke2# kubectl get node
    NAME             STATUS   ROLES                       AGE   VERSION
    lx-k8s-thor-01   Ready    control-plane,etcd,master   40m   v1.24.9+rke2r1

    Mein erster Master läuft also mit RKE Version 1.24.9

    oder

    Code
    root@lx-k8s-thor-01:/etc/rancher/rke2# kubectl get node -o wide
    NAME             STATUS   ROLES                       AGE   VERSION          INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    lx-k8s-thor-01   Ready    control-plane,etcd,master   85m   v1.24.9+rke2r1   192.168.0.81   <none>        Ubuntu 22.04.1 LTS   5.15.0-56-generic   containerd://1.6.12-k3s1


    Update 22:51h MEZ:

    Keine Updates verfügbar - es bleibt ein Rätsel

    Naja wenn Du eine alte distro benutzt (oder eine die eben diese Version als neueste drin hat) wirst Du keine neuere Version bekommen. Deswegen meine Frage welches OS Du nutzt.

    Wenn es nicht schon beim einloggen als Meldung kommst siehst Du das Release von Deiner Distro ja bei jedem apt update

    root@lx-nutserver-01:~# apt update

    OK:1 http://archive.raspberrypi.org/debian bullseye InRelease

    Andere distro oder version vermute ich mal die noch eine ältere Version hat. Vermutlich hast Du debian buster?
    nut-scanner taucht in den changes in der Version2.7.4-9 auf.

    Es gibt schon eine 2.8 siehe auch https://github.com/networkupstools/nut die kommt dann mit dem nächsten debian major release aktuell in sid / bookworm

    was sagt denn /sbin/upsd -V bzw

    olaf-krause@lx-nutserver-02:~ $ sudo apt install nut-server

    Reading package lists... Done

    Building dependency tree... Done

    Reading state information... Done

    nut-server is already the newest version (2.7.4-13)

    und welche Raspi OS verwendest Du? Ich: debian bullseye.

    Code
    olaf-krause@lx-nutserver-02:~ $ whereis nut-scanner
    nut-scanner: /usr/bin/nut-scanner /usr/share/man/man8/nut-scanner.8.gz

    evtl. nicht im Pfad?

    Seriennummer: ja wenn die denn geliefert werden würde. Wird bei den OnlineUSVs nicht untestützt, bei der Powerwalker sehe ich eine Seriennummer.

    Moin zum neuen Jahr 2023

    Hier kurz ein Hinweis zu Glasswire als Netzwerkmonitor. Warum, weil es super visualisiert und intuitiv zu bedienen ist.

    Hier mal kurz die Hauptbildschirme:

        

    • Den ersten Bildschirm habe ich weggelassen, da nur Trafficmenge zu sehen - langweilig
    • Dann den mit den Applikationen - spannend - vor allem wenn hier Anwendungen nach Hause telefonieren, ob sie nicht gestartet sind oder man sie vergessen hat zu deinstallieren - realtime also die die gerade kommunizieren
    • Dann Details über die Apps Traffictypen und Remotehosts - historisch damit man nichts verpasst - das ganze dann gleich optional mit Sicherheitscan ob die Server die Kontaktiert werden als ghefährlich eingestuft sind.
    • Last but not leat unten die Liste der Apps die neu hinzugekommen sind - quasi Ihr erstes mal nach Hause telefonieren - oder sonst wohin. Ich habe meine stats zurückgesetzt von daher nur eine neu gelistet.

    Hier mal ein Beispiel was für Infos man bekommt wenn man eine einzelne App selektiert. In diesem Fall ein Software SIP Phone. Das ist mit meinem FreePBX verbunden - stimmt also. Die 174er Adresse ist eine lokale vSwitch Adresse (HyperV) also auch OK. Die 224 ist eine Multicast DNS Adresse - ist eher ungewöhnlich aber lokal OK (solange es nicht ins Internet geht).


    Virusscan etc. sind Premium features genauso wie die Thingsausflistung (network scan).

    Preis für Premium liegt aktuell bei 24€/Jahr - ist OK - aber brauchen die meisten vermutlich nicht.

    Ach ja und hier eine Vorstellung von Semper

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    so sieht es dann bei mir aus. Das google oben auf der Blockliste landet wundert denke ich nicht.

    Da ich eine Windows Domäne mit lokalen DNS betreibe habe ich Adguard so eingerichtet, dass mein DHCP Server Adguard als ersten DNS, dann meine Domänencontroller nennt. Adguard holt sich via Upstream DNS die Namen von meinen Domänencontrollern. Die wiederum von meinem OPBSense Unbound Server wenn sie etwas nicht auflösen können. Wer keine eigene Namensauflösung braucht lässt einfach den Default server eingetragen oder fügt eigene hinzu.

    Für die Reverseauflösung auch wieder meine Domänencontroller eingetragen

    Jetzt kann man noch die Adlisten modifizieren oder eigene Regeln hinzufügen etc pp aber die Defaults scheinen schon ganz gut.