Beiträge von Paul

    docker kommt mir nicht in die Tüte ;)

    Wobei ich mir das in diesem Fall wirklich nochmal überlegen würde ;). Sich das System mit NodeJS Abhängigkeiten und NPM zu verbasteln, ist jetzt auch nicht unbedingt die schönste Lösung. Zumal man ja gerade bei NodeJS oft darauf achten, muss, dass die benötigte Version auch der entspricht, die man für das Projekt gerade benötigt. Unter Umständen ist hier auch wieder eine zusätzliche Quelle nötig. Genau aus diesem Grund läuft bei mir alles NodeJS-basierte grundsätzlich in isolierten Containern. Bei Golang kann ich es noch verstehen, wenn die Installation im Grunde nur daraus besteht, dass man ein Binary herunterlädt und als unprivilegierter User laufen lässt. Da hat man dann im Grunde dieselbe Isolation wie in einem Container. Aber gerade, wenn dann noch zusätzliche Abhängigkeiten mit ins Spiel kommen oder bestimmte Versionen einer Sprache benötigt wird, spielen Container ihre Stärken aus, weil man dann auch das eigentliche OS aktualisieren kann ohne sich Gedanken machen zu müssen welche Applikation man damit evtl. kaputt macht.

    Man darf auch die Updates nicht vergessen. Mit Docker startet man einfach den Container mit einem neuen Tag. Die manuelle Installation von uptime-kuma muss dann wieder mit npm gemacht werden. npm hat eigentlich auf einem produktiven System auch nichts verloren. Das sollte eher der Entwicklung dienen, wo man ein fertiges Paket baut, das dann wiederum auf Prod ausgerollt werden kann. Wobei das natürlich auch etwas an mir liegen könnte, weil ich da noch etwas aus der alten Schule komme. Hier werden neue Applikationen grundsätzlich nur in Dev gebaut, dann getestet und anschließend erst über einen sicheren Weg in Prod ausgerollt.

    Hmmm... Wollte gerade Uptime Kuma installieren, aber die Standardseite für den Download des Installskripts funktioniert nicht mehr:

    https://git.kuma.pet/install.sh

    Muss ich mal nach Alternativen suchen....

    (Oder node/npm/pm2 doch manuell installieren)

    Ich empfehle das offizielle Docker Image: https://hub.docker.com/r/louislam/uptime-kuma

    Bei solchen Installationsskripten wäre ich generell vorsichtig. Ich weiß, dass das momentan ziemlich in Mode ist und viele Projekte das so anbieten. Aber ein unbekanntes Skript aus dem Internet herunterladen und mit Root Rechten ausführen ist so mit das letzte was man eigentlich machen sollte. Ich würde von dieser Art der Installation generell abraten. Ja, est ist komfortabel und meist funktioniert das auch zuverlässig, aber es ist halt so eine Grundsatzregel, dass man das eigentlich nicht machen sollte. Genauso wenig wie man unbekannte Code Schnipsel nicht einfach so C&P sollte.

    Das ist ein Tarif noch aus der Steinzeit und war nur für die vServer mit der Typenbezeichnung RS gedacht

    Oh, da werden Erinnerungen wach. Die Root Server L haben mir damals treue Dienste geleistet. Sogar mit einem speziell für diese kompilierten Kernel und Gentoo als OS. Deswegen auch bewusst die dedizierten Cores. Das war damals gar nicht so üblich und eher was besonderes. Die angegebene Verfügbarkeit war zwar "nur" 99,6%, tatsächlich kam das aber auch schon damals eher an 99,9%+ heran. Die Stabilität/Verfügbarkeit war eigentlich schon immer eine der Stärken von Netcup. Damals gab es halt auch noch keinen Unfug wie DNSSEC ^^.

    Immerhin ist das auch eine Premiere. Das erste Türchen, das länger als 24h bestellt werden kann! ;) Das hatten wir so auch noch nicht und ist daher wirklich mal eine Überraschung. Finde ich persönlich sogar besser als zum x-Mal den gleichen VPS oder RS, die es dieses Jahr sowieso jeden Monat im Angebot gab.

    Hier kommen solche kleinen Server (ich gehe mal davon aus, wir sprechen hier von den 1 vCore Produkten a la VPS 200 G8, VPS Piko) vor allem hierzu zum Einsatz:
    * Jumphost / MGT-host (pro Umgebung einer)

    * Git (Gitea, konnte nun nach vielen Jahren meinen fetten Gitlab Server ablösen)

    * Testserver (für Mail, Web, DB & Co. Im Grunde eine 1:1 Kopie von Prod, aber ohne Last - Test von Updates von Konfigurationsänderungen)
    * Dev (Vorab Tests von neuen Major OS Versionen, Weiter/-entwicklung von Ansible & Co.)

    Für meine Monitoring Server braucht es dann aber schon 2+ vCores, wobei das fast auch noch unter klein fällt. Da kommt in Summe also schon was zusammen. Da ist es immer praktisch, wenn man mal für einen spontanen Test so 1 bis 2 auf Halde hat, die sonst nichts zu tun haben ;) .

    ...

    Auch wenn ich die Seite als Tab öfter mal im HIntergrund offen gelassen habe, hat mich die Anzahl an Queries doch etwas verwundert. Aber nach kurzer Analyse war die Sache dann doch recht simpel. Meinen systemd-resolved hatte ich so konfiguriert, dass nur positive Antworten im Cache landen. http://www.servercontrolpanel.de ist aber nur über IPv4 erreichbar und hat keinen AAAA record.

    Code
    → Q: www.servercontrolpanel.de IN A
    → Q: www.servercontrolpanel.de IN AAAA
    ← S: success
    ← A: servercontrolpanel.de IN SOA root-dns.netcup.net dnsadmin.netcup.net 2023103101 28800 7200 1209600 7200
    ← A: www.servercontrolpanel.de IN A 46.38.225.84

    Der resolvectl monitor Befehl war hier recht nützlich (falls ihn wer noch nicht kennen sollte). Ich habe das jetzt mal umgestellt, so dass auch "negative" Antworten im Cache landen. Der Traffic bzw. die Queries waren zwar nur im lokalen Netzwerk, aber trotzdem. Ist schon heftig wie viele Anfragen da so zusammen kommen.

    Der einfachste Weg für wäre quasi nun für meine www-Seite eine Subdomain ohne www zu erstellen und dann eine Weiterleitung von der www-Seite auf die Subdomain einzurichten?

    Genau. Vermutlich hast du das nur etwas durcheinander gewürfelt in dem letzten Abschnitt. Aber am besten fängst du mal an, den Blog genau unter der Adresse einzurichten, die gewünscht ist. Sobald das steht und fertig ist, kannst du auch die andere(n) Domain(s) einrichten und konfigurieren. Wichtig wäre eben nur, dass dafür ein anderes Stammverzeichnis gewählt wird, damit das nicht auf den gleichen Inhalt zeigt.

    Generell gilt eigentlich die Regel, dass eine Webseite immer nur über eine Domain erreichbar sein sollte. Andere Domains können zwar gerne konfiguriert werden, diese sollten aber immer nur Weiterleitung auf die Hauptdomain sein. Hintergrund ist einfach, dass es in Suchmaschinen sehr oft abgestraft wird, wenn der gleiche Inhalt unter mehreren Domains erreichbar ist. Technisch wäre das an sich kein Problem. Aber gerade ein Blog ist ja meist etwas, das Reichweite generieren möchte. Und gerade da sollte man auf solche Dinge Rücksicht nehmen.

    Meine Empfehlung wäre daher eine Weiterleitung. Am besten konfigurierst du beide Domains (www und ohne www) als eigenständige Hostings mit eigenen Document Roots. In das Document Root der Domain ohne www legst du dann eine htaccess mit der Weiterleitung auf die www Subdomain. Das hat den Vorteil, dass du auch eine Weiterleitung für SSL konfigurieren kannst (Häkchen bei Letsencrypt setzen).

    EDIT: Ich hätte am Freitag doch noch den RS1000 bestellen sollen.
    Am CyberMontag sind einige Server angehoben worden. Zumindest als Aktion. Der RS 1000 9.5 SE um ca. 3% oder ich habe die Standortwahl übersehen?!

    Wenn Interesse an einem RS1000 9.5 (mit 320GB SSD) besteht, Ich hätte hier noch einen übrig (KI23 Edition) mit dem alten Preis von 9,81€/Monat (Standort: Nürnberg). Den habe ich jetzt erfolgreich auf den neuen ARM Server migriert. Daher könnte ich den bei Bedarf gerne abgeben.

    Haben wir dann auch gemacht und läuft nun.

    Kurze Frage noch macht es Sinn per Cron ein fstrim / zu machen?

    Ja, definitiv! Moderne Distributionen mit systemd bieten dafür sogar schon einen Timer an, den man nur noch aktivieren muss.

    Code
    $ systemctl status fstrim.timer
    ● fstrim.timer - Discard unused filesystem blocks once a week
         Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; preset: enabled)
         Active: active (waiting) since Sun 2023-11-26 01:25:34 CET; 9h ago
        Trigger: Mon 2023-11-27 00:22:33 CET; 13h left
       Triggers: ● fstrim.service
           Docs: man:fstrim

    Aktivieren kannst du den einfach mittels systemctl enable fstrim.timer. Da brauchst keinen extra Cronjob einrichten. Kannst du natürlich alternativ auch machen. Die Timer Variante finde ich aber etwas eleganter.

    Danke für den Denkanstoß. Auf der eingehenden Seite habe ich kein Problem da der Loadbalancer die IPv6 terminiert und im Backend an den IPv4 Ingress weitergibt und auch der Rückweg somit ohne Probleme klappt. Allerdings geht halt reiner IPv6 Egress aus dem Pod heraus nicht, bspw. ping6

    Ah ok. Das ist wirklich eine andere Baustelle, für die man so wohl auch keinen Workaround findet, wenn die Nodes selbst kein IPv6 sprechen. Für IPv6 Dinge habe ich noch einige Single Node Kubernetes Nodes Bei Netcup & Co. (k3s bzw. microk8s). Zentral verwaltet über einen Rancher Management Node.

    Ich bin mittlerweile dazu übergegangen, statt einem großen Cluster, mehrere kleine zu betreiben. Fühlt sich etwas besser an und wenn es dann mal Probleme gibt, sind nicht direkt Alle Apps/Umgebungen down, sondern nur ein kleiner Teil. Es hat hat alles so seine Vor- und Nachteile. Durch den zentralen Rancher, bleibt es aber trotzdem übersichtlich und ich habe auch nicht x verschiedene Logins.

    Mit diesem "technischen" Kram verdiene ich tatsächlich mein Brot. Es gibt bei dem Provider aus Falkenstein 2 Dinge weswegen ich bisher noch nicht dort bin:

    - IPv6 im CloudVLAN gibt's nicht und somit auch nicht in Kubernetes

    - Die Mindestgröße beim Storage ist 10GB, was bei einer PVC Anzahl von ~40 Stück dann auch wieder als "Kleinvieh macht auch Mist" zählt. Mit Ceph war mir das egal da ich einfach "X" PVCs zum gleichen Preis habe

    Falls jemand zu Punkt 1 ne Idee / Lösung hat, bin ich offen für Input. Die Interfaces einfach mit IPv6 versorgen ist keine Option, da diese nicht routed werden zwischen den Nodes.

    Ist jetzt vielleicht nicht in jeder Situation die beste Lösung, aber ich habe vor meine Kubernetes Cluster (IPv4 only) einfach einen Cloudflare Proxy davor geschaltet. Der Enduser kann sich daher mit IPv4 + IPv6 verbinden, ins "Backend" geht die Verbindung dann aber mittels IPv4. Mit diesem Kompromiss kann ich ganz gut leben.

    Welcher vernünftige Mensch hält sich einen 6,8"-Prügel mit SAR-Kopf-Werten jenseits von Gut und Böse zum Telefonieren ans Ohr?

    Dafür gibt es ja mittlerweile Bluetooth Kopfhörer und Selfie-Sticks. damit sollte man genügend Abstand haben ;). Wobei man natürlich auch sagen muss, dass man sich ein Smartphone weniger zum Telefonieren kauft. Die primäre Zielgruppe macht das einfach nicht mehr. Die trägt hier Smartphone Rucksackgleich an einer Kette um den Körper. Daher muss das auch so groß sein, damit man es schon von weitem sehen kann.