Frankreichurlaub – Tag 4 – Stadtbesichtigung Poitiers

Für heute steht geballte Kultur auf dem Programm – ganz klassisch: Eine Stadtbesichtigung. Ziel des Tages ist Poitiers. Die Nacht ist nur bedingt erholsam gewesen, der Campingplatz ist noch immer der selbe, aber es gibt einen besonderen Gast: Ein Jakobspilger macht über Nacht Station, als Begleitung hat er einen Hund und als Lasttier einen Esel dabei. Der Hund ist kein größeres Thema, das hat man immer mal wieder auf dem Campingplatz. Der Esel ist dann schon eher ein Hingucker. Lustigerweise warnen rund um die Wiese Schilder vor Geschwindigkeits-Hubbeln in der Straße. Im französischen werden diese auch als Dos d’âne (Eselsrücken) bezeichnet. In der Nacht hört man den Esel denn auch mehrfach lautstark. Morgens dient er dann auch als Wecker (die Frage ist eher, welcher Esel im Urlaub den Esel auf so früh gestellt hat). So haben wir immerhin Zeit, um ohne Hektik zu frühstücken und die notwendigen Utensilien zu packen.

Continue reading

Mehr als 20 Jahre Opel Corsa B – ein Nachruf

Was sich schon längere Zeit hingezogen und angekündigt hatte, ist nunmehr besiegelt. Nach sehr langer (eigentlich zu langer) Überlegungsphase habe ich mich nun doch von einem langjährigen, treuen Gefa(e)hrte(n) trennen müssen. „Bis dass der TÜV uns scheidet“ sagt man so oft, soweit ist es hier noch nicht einmal mehr gekommen. Vielmehr hat das Fahrzeug bereits im Oktober letzten Jahres deutliche „Rauchzeichen“ von sich gegeben. Nicht, wie man etwa vermuten könnte, aus dem Motorraum (ist ja ein Verbrenner), sondern ausgerechnet aus dem Sicherungskasten. Wo man doch eigentlich meinen sollte, dass die Sicherungen genau dafür gedacht sind, dass eben diese durchbrennen und nicht das drum herum. Was letztlich genau der Defekt war, habe ich nicht mehr ergründen wollen bzw. zeitlich können. Zeit also noch einmal zurück zu blicken auf eine lange Zeit und eine lange Wegstrecke: 24 Jahre und um die 200.000 km haben wir gemeinsam zurück gelegt.

Continue reading

Kurzulaub Pfingsten 2025 – Bildungstag und Mittelaltermarkt in Obermoschel

In Baden-Württemberg sind Pfingstferien. Da Deutschland hinsichtlich der Bildung aber föderal aufgestellt ist, heißt das noch lange nicht, dass auch andere Bundesländer Ferien haben. So kommt es, dass wir Ritter Sebastian (von der Ebersburg) beim erstmalig durchgeführten Bildungstag auf bzw. um die Burg in Obermoschel mit der gesamten Familie unterstützen. Einen ersten Vorgeschmack hatte ich vor einigen Wochen schon bekommen und bei der Vorbereitung der Steckenpferde mitgewirkt. Continue reading

Firmenlauf 2025 in Berlin

Da mein aktueller Arbeitgeber in Berlin sitzt, ist natürlich auch der Firmenlauf in Berlin. Ich habe das gut mit einer Präsenzwoche verknüpfen können, von daher war klar: Ich verstärke das Team.

Die Strecke fällt für mich definitiv in die Kategorie „Sprint“ – 5,3km laut Ausschreibung und nahezu ohne Höhenmeter. Einmal um den Tiergarten in Berlin, immerhin einige interessante Punkte entlang der Strecke.

Natürlich kein Vergleich mit der Besichtigung in Angkor Wat oder auch Bamberg – dafür liegen die Sehenswürdigkeiten in Berlin zu weit auseinander, als dass man diese mit rund 5km abdecken könnte.

Continue reading

Serienlauf Mainz – 45km in drei Runden

Nachdem es am Donnersberg sehr trailig und höhenmeter lastig war, stand für den Mai ein eher einfacher Ultra-Marathon auf der Wunschliste. Fündig geworden bin ich Mainz beim Serienlauf. Dieser hat den Vorteil, dass ich keine übermäßig lange Anfahrt oder Übernachtungen einplanen muss. Da ich zudem aktuell gerade ein D-Ticket besitze und es gerade mal etwas mehr als ein Kilometer von Bahnhof in Laubenheim bis zum Start ist die Idee nicht von der Hand zu weisen. Der Blick in den Fahrplan ist zwar nicht ganz so verlockend: fast zwei Stunden Fahrzeit und 20 Minuten in Mannheim. Aber das Wetter ist warm genug, dass man auch die Wartezeit gut übersteht. So geht es für mich um kurz vor sieben Uhr aus dem Haus. Immerhin etwas später als beim ebenfalls am gleichen Tag stattfindenden Rennsteig (der Start ist dort um 6:00h). Damit ich flexibel bin, nehme ich auch mein Fahrrad mit, so sollte es trotz knapper Ankunftszeit gut bis zum Start reichen. Leider endet meine Fahrt mit einer Strandung in Mannheim, dort müsste ich eigentlich in die Regionalbahn nach Mainz umsteigen. Leider kommt die erst gar nicht und wenige Minuten nach der geplanten Abfahrt wird dann der vollständige Ausfall bekannt gegeben. Es sind immerhin noch rund anderthalb Stunden Zeit bis zum Start. Kurzerhand rufe ich Marion an, sie bringt mir einen fahrbaren Untersatz nach Mannheim und übernimmt mit der S-Bahn die Rückführung meines Fahrrads. Für mich geht es nunmehr schon vor dem Wettkampf gegen die Uhr, ich schrubbe reichlich Autobahnkilometer und bin dann nur wenig später als geplant in Mainz Laubenheim.

Dort auch schon vor Ort ist Tobias von der Laufgruppe „Strata Montania“, auch er war mit mir beim Donnersberg dabei. Die Anmeldung ist kein großes Hexenwerk, denn es bedarf noch nicht einmal einer Startnummer. Ca. 20 Läufer sind letztlich am Start, es gibt noch eine kurze Einweisung: Die Strecke ist durchgängig mit roten Pfeilen auf dem Boden markiert und ansonsten „einfach der Masse nach“, es gibt genügend Mitläufer die die Strecke schon kennen. Da es ein Rundenlauf ist, sollte es ab der zweiten Runde ja auch keine Überraschungen geben.

Continue reading

Arbeitsaufenthalt in Berlin

Für meinen aktuellen Job bin ich immer einmal wieder in Berlin, auch wenn der meiste Anteil remote stattfindet. Nachdem ich das letzte Mal mit der Familie und dem Auto vor Ort (bzw. außerhalb in Königswusterhausen) war, ging es diesmal für eine Woche alleine und mit der Bahn auf Reisen.

Da ich ja doch experimentierfreudig bin was meine Reisemethodiken betrifft habe ich mich auf das „Abenteuer Flixtrain“ eingelassen, zusätzlich habe ich auch ein Deutschland-Ticket gebucht um in Berlin mobil zu sein. Da es immer einen Monat gilt, habe ich auch noch etwas davon was meine nachhaltige Mobilität im Rhein-Neckar-Dreieck und etwas darüber hinaus betrifft. Vom Preis her ist es ähnlich zu dem was ich in Berlin für eine Wochenkarte rechnen müsste.

Die Abfahrt des Fernzugs ist für mich ab Heidelberg, meine Familie fährt mich dorthin, es wäre aber auch ganz gut mit dem Bus oder dem neuen S-Bahn-Haltepunkt in Schwetzingen gegangen. Der Zug ist pünklich und vom Komfort her ok. Man merkt dem Material an, dass es einige Jahre auf dem Buckel hat, im Wesentlichen handelt es sich um generalüberholte IC/EC-Wagen. Die Bestuhlung ist etwas enger und erinnert ein wenig an den Komfort im Flieger. Da bin ich einiges gewohnt und mit ca. 5h Fahrtzeit ist es erträglich. Die Fahrtzeit ist dabei nur etwas länger als mit dem ICE, der Preis ist aber deutlich geringer, zumindest wenn man die Uhrzeit bedenkt. Sonntags nachmittags losfahren um spät Abends in Berlin zu sein und das für ca. 20 EUR inklusive garantiertem Sitzplatz. Continue reading

Kurzurlaub Nürnberg 2024

Auch in diesem Jahr liegt der Tag der deutschen Einheit günstig, auf einem Donnerstag. Da die Schule auch kooperativ ist und einen beweglichen Ferientag für den Brückentag verwendet hat, besteht die Chance für die Familie, an den Stadtlauf in Nürnberg auch noch etwas Urlaub anzuhängen. Das macht die Sache rund um den Lauf auch deutlich entspannter, als eine Hit-and-Run-Aktion, die ich dieses Jahr ja schon fast ins Extreme getrieben habe, als ich für den UTA nach Kambodscha geflogen bin.

Rund um den 3. Oktober haben sich bei uns mittlerweile aber auch einige „feste Aufgaben“ für den Urlaub angefunden. Schon seit geraumer Zeit nutzen wir die Chance, dass mit dem Oktober auch in Nürnberg die Vorweihnachtszeit beginnt und somit der Verkauf von Lebkuchen startet. Aus meinem Praxis-Semester heraus bin ich immer noch ein treuer Kunde bei Pfann bzw. mittlerweile Witte. Der Werksverkauf liegt etwas außerhalb am Steinacher Kreuz, früher lag er in der Kriegsopfersiedlung in der Nähe von Schniegling – im Praxis-Semster sehr praktisch, für mal eben dort vorbei zu gehen während eines Stadtbesuchs schon damals eher etwas mehr Aufwand. Immerhin ist es dieses Jahr kühl genug, dass wir ohne Sorge die Lebkuchen im Auto verstauen können. Letztes Jahr war es so warm, dass wir Sorge hatten, dass die Schoko-Glasur wieder flüssig wird. Da wir natürlich umweltfreundlich unterwegs sind, machen wir die Tour mit dem ÖPNV, so bekommen wir auch einmal wieder „neue“ Eindrücke. Voll bepackt geht es dann an den Rückweg, diesmal über Fürth, dort ist auch noch die Michaelis Kirchweih, die wir auch noch besuchen wollen. Aber mit einer Kiste Lebkuchen ist das eher schwierig durch die Massen zu kommen.

Continue reading

Monitoring von Containern mit Prometheus und cAdvisor – mit Vorsicht zu geniesen

Monitoring ist ein wichtiges Instrument als DevOp, in der Regel bekommt man so schon mit, dass ein Service nicht ganz rund läuft, bevor es Probleme für den Kunden bedeutet. Genauso kündigen sich ausfallende oder knapper werdende Ressourcen in der Regel an und treten nicht „urplötzlich“ auf.

Eines der Standard-Werkzeuge für diesen Fall ist Prometheus, das ein recht ausgefeiltes Monitoring bietet. Häufig wird es im Einsatz mit Containern durch cAdvisor ergänzt, damit erhält man auch einen Einblick in die einzelnen Docker-Container, welche auf dem System laufen. Für das Host-System gibt es von Prometheus den node-exporter.

Was man aber auch immer auf dem Schirm haben sollte: Im Wesentlichen sind die Agenten (bzw. Exporter) einfache Transformationsmaschinen, welche aus der Vielzahl von Informationen, die ein jedes System bereit stellt, ein standardisiertes Format machen und es ausgeben. Im konkreten Fall erfolgt die Ausgabe per http bzw. hoffentlich per https. Womit wir auch schon beim Knackpunkt der Geschichte wären: Man kommt sich an dieser Stelle wieder ins „gute alte Internet“ zurück versetzt vor, in dem Sicherheit kein große Rolle gespielt hat und alles mehr oder weniger „frei“ zugänglich war. Das zeigt sich leider bereits in den Tutorials: dort wird erst einmal beschrieben, wie man einen Service generell aufsetzt, aber es fehlt der eindeutige Hinweis, wie man die Dinge hinterher auch so vernagelt, dass nur berechtigte Personen das mitlesen können bzw. überhaupt an die Informationen heran kommen können. Man möchte doch nicht gerade exponieren, was auf einem Server alles an Containern läuft, das sollte eigentlich mittlerweile jeder Hobby-Admin auf dem Schirm haben, im professionellen Bereich ist es auch eine Selbstverständlichkeit.

Schaut man sich die Dokumentation insbesondere der Exporter an, so bekomme zumindest ich schon wieder ein schlechtes Gefühl: Vielfach wird darauf verwiesen, das Abschirmen der Container per Reverse-Proxy zu lösen. Das ist sicherlich ein technisch gangbarer Weg, aber es zeigt auch wieder ein wenig die Einstellung der Macher dieser Software: „Not my business“ bzw. „not implemented here“. Es gibt in beiden Fällen zwar Möglichkeiten, TLS und auch zumindest Basic-Auth zu implementieren, aber das ist eher ein Tropfen auf den heißen Stein. Den Vogel (passenderweise ist das Maskottchen eine Eule) schießt cAdvisor ab: Man kann zwar Basic-Auth setzen, aber es bezieht sich nur auf die Endpunkte der GUI, die API und die maschinenlesbaren Metriken sind weiterhin ohne jeglichen Passwort-Schutz abrufbar, so lange man die URL kennt (oder durchprobiert). Hierzu gibt es einen interessanten Artikel von TrendMicro.

Die Lösung, die wieder häufig propagiert wird, ist: Lass uns eine Sicherheitssoftware davor schalten, in diesem Fall einen Reverse-Proxy, der kann dann auch die Authentifizierung und das TLS übernehmen. Das klingt im ersten Moment ja noch recht brauchbar, aber es bringt eine weitere Komponente ins Spiel, die man warten muss. Bei vielen Installationen, die sich einen Docker-Host teilen, ist ein Loadbalancer / Reverse-Proxy aber ohnehin installiert. Häufig wird in diesem Zusammenhang Traefik eingesetzt, das hat den Vorteil, dass es sich eigentständig über kommende und gehende Webservices / Container informiert und die Konfiguration dazu aus den Labels des Docker-Containers ableitet. So hat man immerhin den Teil der Reverse-Proxy-Konfiguration für den eigenen Service noch ein Stück weit im Griff.

Ein Compose file sieht dann beispielsweise wie folgt aus:

name: cadvisor
services:
  cadvisor:
    image: gcr.io/google-containers/cadvisor:latest
    container_name: cadvisor
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.http.routers.cadvisor.entrypoints=web
      - traefik.http.routers.cadvisor.rule=Host(`cadvisor.example.org`)
      - traefik.http.services.cadvisor.loadbalancer.server.port=8080
      - "traefik.http.middlewares.cadvisor.basicauth.users=USER:PASSWORD"
      - traefik.http.routers.cadvisor.middlewares=cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    restart: always
    environment:
      - no_proxy="localhost,127.0.0.1"
      - HTTP_PROXY=
      - http_proxy=
    networks:
      - cadvisor
      - traefik
networks:
  cadvisor:
    name: cadvisor
  traefik:
    external: true

Dabei gibt es einige kleine Fallstricke, die man beachten muss:

Das Passwort muss als Hash eingetragen werden, damit es im YAML nicht zerbröselt wird beim Interpretieren, muss man die „$“ verdoppeln (Escaping). Sonst fühlt sich der YAML-Interpreter angesprochen und versucht die Variablen zu substituieren, was nicht funktioniert und im Zweifel auch erst einmal nicht ganz „eindeutige“ Fehlermeldungen nach sich zieht.

Sofern man einen Proxy einsetzt und diesen für den Dockerhost entsprechend konfiguriert hat, so muss man mit dem cAdvisor aufpassen, dieser hat einen Health-Check per „wget“ implementiert. Allerdings ist es kein Standard-Wget sondern das aus Busybox. Das ignoriert leider die Umgebungsvariable „no_proxy“ ziemlich gekonnt, vorsichtshalber kann man sie setzen, aber man muss auch den Proxy deaktivieren, indem man die Variablen explizit auf einen leeren String setzt.

 Hat man diese beiden Fallstricke gemeistert, erkennt Traefik auch einen cAdvisor-Container richtig und man exponiert nicht mehr einfach mal so die ganzen Metriken nach draußen.

Ich erspare mir hier jetzt weitere Erläuterungen, wie es um Ende-zu-Ende Kommunikation und insbesondere bei gerouteten IPv6-Containern aussieht: Leider nicht wirklich gut, auch da muss man sich einen Reverse-Proxy davor bauen, den man eigentlich mit IPv6 nicht mehr nötig hätte.

Insgesamt täte es vielen Container-Entwicklungen mittlerweile echt gut, wenn Authentifizierung und TLS nicht immer als ein „Problem anderer Leute“ (Erklärung: https://hitchhikers.fandom.com/wiki/Somebody_Else%27s_Problem_Field) betrachten würden, sondern es endlich zum guten Standard wird, den man bei jeder Entwicklung zeitnah mitdenken sollte. Nahezu jedes brauchbare Framework bringt heute die passenden Tools dazu mit, man muss sich nur ein wenig damit beschäftigen.

 

 

Radurlaub 2024 – Tag 8 – von Sinnigen bis Ulm

Tageskilometer: 40km

Heute geht es weiter an der Iller entang, und stellenweise ist die Strecke schon fast langweilig. Es ist gut zu fahren auf dem Radweg, es geht immer ganz leicht bergab. Aber es mangelt an Abwechslung, da sind wir schon froh, dass es eine Fischtreppe zum Beobachten gibt, auch wenn mich die häufigen Stopps, die wir einlegen, ein wenig nerven. Ich würde gerne einmal auch wieder fünf Kilometer am Stück fahren. Aber es ist auch sehr warm und „die Sonne brennt uns sowas von auf die Mütze…“ Das Illertal ist fast in Nord-Süd-Richtung ausgebildet, somit haben wir den Mittag über auch keinen Schatten entlang des Wegs, egal auf welcher Flußseite wir uns gerade bewegen. Continue reading

Radurlaub 2024 – Tag 7 – von Aitrach bis Sinningen

Tageskilometer: 32km

Die Nacht hat angesichts des Konzerts etwas später begonnen, entsprechend kommen wir etwas verzögert in die Gänge. Noch dazu hatte ich die Nacht einen Angriff auf meinen Server, weshalb mein e-mail-Postfach am frühen Morgen explodiert. Nach einer ersten Analyse ist aber außer der Welle Mails kein Schaden entstanden – es ist defintiv eine Herausforderung so etwas am Handy zu entschärfen bzw. zu beurteilen. Gut, wenn man Freunde zur Hand hat, die aushelfen können. Continue reading