Neuigkeiten von trion.
Immer gut informiert.

Blog-Archiv 2018

Kubernetes auf ODROID Arch Linux ARM Mainline Kernel 1 Aug

Geschrieben von Thomas Kruse am 1. August 2018
Arch Linux

Das Setup von Kubernetes mit Arch Linux ARM 64bit auf einem ODROID C2 wurde im vorherigen Beitrag zu Kubernetes gezeigt. Als Overlay-Network wurde Weave verwendet, was leider im Zusammenspiel mit dem ODROID C2 Linux Kernel zu Abstürzen durch eine Kernel Panic führen kann. Die zugehörige Issue findet sich hier: https://github.com/weaveworks/weave/issues/3314

Eine Lösung ist, auf den "Fast Data Path" zu verzichten, was zur Folge hat, dass die Performance sich verringert und die CPU Belastung steigt. Alternativ kann der ODROID C2 mit einem aktuellen Linux Kernel, dem Mainline (oder Upstream) Linux Kernel verwendet werden.

CRI-O Kubernetes Worker Setup auf Arch Linux ARM 29 Jul

Geschrieben von Thomas Kruse am 29. Juli 2018
CRI-O

Nachdem im vorherigen Beitrag zu Kubernetes gezeigt wurde, wie mittels CRI-O ein Kubernetes Master Node eingerichtet wird, folgt nun eine Worker Node. Das besondere auch hier: Es wird Arch Linux auf ARM 64bit Architektur verwendet.

Für das Setup wird kubeadm verwendet, daher wird auch die Ausgabe von einem Kubernetes-Master Setup benötigt, da dort das erforderliche Token ausgeben wird.

Beispiel für kubeadm Setup Ausgabe auf Kubernetes Master Node
You can now join any number of machines by running the following on each node
as root:

  kubeadm join 10.23.15.110:6443 --token nnnxv2.2p7n2zwuddqedg25 --discovery-token-ca-cert-hash sha256:7563bc0dcf826a37e96f820725147a61d9970a094e1428832283f803aad91cd3

Kubernetes mit CRI-O auf Arch Linux ARM 28 Jul

Geschrieben von Thomas Kruse am 28. Juli 2018
CRI-O

Auch wenn Docker stand heute die vermutlich am weitesten verbreitete Container-Lösung darstellt, gibt es doch einen regen Wettbewerb. Besonders seit Kubernetes in Version 1.5 das Container-Runtime-Interface (CRI) eingeführt hat, mit dem sich die tatsächliche Container-Implementierung austauschen lässt. Das CRI-O Projekt stellt einen Adapter zwischen der durch die OCI (Open Container Initiative) spezifizierten Schnittstellen für Container-Runtimes und dem durch Kubernetes mit CRI definierten Integrationspunkten dar. Standardmäßig verwendet CRI-O die OCI konforme Containerimplementierung runc.

Andere OCI kompatible Laufzeitumgebungen wie rkt oder Intel Clear Container lassen sich damit ebenfalls einsetzen. In einem typischen Docker basierten Setup sähe die Interaktion so aus:

  • Der kubelet Prozess verwaltet die Container der Node, nutzt dabei die CRI Schnittstelle zur Kommunikation

  • mit dem dockershim, einer CRI-zu-Docker API Bridge, die ihrerseits

  • mit dem eigentlichen docker-Daemon kommuniziert, der dann

  • mit dem containerd-Daemon kommuniziert und darüber

  • runc aufruft, um konkrete Container zu managen

Mit CRI-O sieht die Interaktion so aus:

  • Der kubelet Prozess verwaltet die Container der Node, nutzt dabei die CRI Schnittstelle zur Kommunikation

  • mit dem CRI-O-Daemon, der dann eine OCI kompatible Container-Laufzeitumgebung aufruft, im Default ist das

  • die runc, die auch Docker verwendet

Der Stack bei CRI-O ist also deutlich geringer, ist jedoch als auf Kubernetes fokussierter Stack auch kein vollständiger Ersatz für die vielen verschiedenen Anwendungsfälle von Docker.

Im folgenden geht es um das konkrete Setup von CRI-O mit Kubernetes unter Arch Linux ARM.

Kubernetes auf Arch Linux ARM 24 Jul

Geschrieben von Thomas Kruse am 24. Juli 2018
Kubernetes

Auch wenn Arch Linux meist topaktuelle Pakete hat, so ist dies bei Projekten wie Kubernetes auf der ARM Architektur nicht der Fall. Auch im AUR, also dem von der Community gepflegten Bereich, finden sich für ARM 64 bit keine Kubernetes Pakete. Es ist jedoch relativ einfach, sich auf Basis des Quellcodes von Kubernetes einen eigenen Build zu erzeugen. Damit sind sowohl für ARM 32bit als auch ARM 64bit eigene Arch Linux Kubernetes Pakete in überschaubarer Zeit und mit nur wenigen Handgriffen gebaut.

Wie das geht, wird im folgenden Beitrag erklärt.

Kubernetes auf ODROID mit zram 23 Jul

Geschrieben von Thomas Kruse am 23. Juli 2018
Kubernetes

Im Artikel Kubernetes Cluster mit Raspberry Pi wurde ein Cluster-Setup mit Raspberry Pi Computern gezeigt. Als Alternative dazu bieten ODROID-C2 Maschinen doppelt so viel RAM und auch etwas mehr CPU Leistung. Viel wichtiger ist dabei jedoch die deutlich bessere Netzwerkanbindung mit 1Gbit, die auch tatsächlich erreicht werden. Der ODROID unterstützt schnellen eMMC Speicher und UHS-1 SDR50 MicroSD, der preislich deutlich günstiger als die eMMC Module sind. Der ODROID besitzt als Hauptspeicher DDR3 SDRAM Module, die rund doppelt so hoch getaktet sind, wie die LPDDR2 des Raspberry Pi 3. Preislich liegt ein Raspberry Pi 3 bei ca. 36 Euro und ein ODROID C2 bei 58 Euro - je nach Einsatzzweck ist das Preis-Leistungsverhältnis bei dem ODROID deutlich besser. Die ARMv8 Architektur des ODROID C2 wird von Arch Linux und Ubuntu Cloud als 32 und 64 bit Variante unterstützt, Raspian gibt es bisher lediglich als 32 bit Variante.

Ein Nachteil beim 64bit Betrieb ist der etwas höhere Speicherbedarf. Zwar hat der ODROID mit 2GB RAM doppelt so viel Speicher wie der Raspberry Pi, doch für den Betrieb vieler Container kann man nie genug Speicher haben. Hier kann man nun von einem Trick profitieren, der in ähnlicher Form bereits auch von Apple standardmässig eingesetzt wird, um Nutzern auch mit relativ wenig Speicher ein gutes Gesamterlebnis zu bieten.

Angular Architektur mit Angular Elements 20 Jul

Geschrieben von Thomas Kruse am 20. Juli 2018
Angular Elements Logo

Angular Architektur stand bei dem Vortrag, der auf dem Meetup "Frontend Freunde" in Münster von Karsten Sitterberg und Thomas Kruse gehalten wurde, im Fokus. Das Angular Framework positioniert sich als opinionated Full-Stack-Framework, mit dem sich große und komplexe Frontend-Anwendungen langfristig wartbar umsetzen lassen. In dem Vortrag wurden Architekturmuster - welche sich mit Angular umsetzen lassen - für das Design einer Anwendung im Unternehmenskontext vorgestellt.

WebComponents Basics 19 Jul

Geschrieben von Thomas Kruse am 19. Juli 2018
WebComponents

Bei dem Meetup "Frontend Freunde" hielten Karsten Sitterberg und Thomas Kruse einen technischen Vortrag zum Thema WebComponents. WebComponents waren vor einiger Zeit das Thema aller Konferenzen und Blogs. Seitdem hat sich viel getan: Version 1 des Standards ist festgeschrieben, alle großen Browser-Hersteller versprechen noch in diesem Jahr stabilen Support von Custom Elements und Shadow DOM. Damit ist ein guter Grund gegeben, um sich mit dem Thema Web Components eingehender zu befassen.

Kubernetes NFS Volume mit Raspberry PI 13 Jul

Geschrieben von Thomas Kruse am 13. Juli 2018
Kubernetes

Ein Mini-Cluster für Kubernetes eignet sich hervorragend für Experimente und zum Training. Wie beispielsweise in Kubernetes Cluster mit Raspberry Pi erklärt, eignen sich für einen kostengünstigen Start Raspberry Pi Minicomputer ausgezeichnet. Leider ist ARM aktuell nicht im Fokus der diversen Cloud-Native Storage Lösungen, so dass sich als Alternative ein externes Volume anbietet. Das häufig anzutreffende Synology NAS bietet NFS Support. Wie sich dies mit Kubernetes einsetzen lässt, wird im folgenden illustriert.

Kubernetes auf Raspberry PI 6 Jul

Geschrieben von Thomas Kruse am 6. Juli 2018
Kubernetes

Sowohl für Trainings als auch eigene Experimente ist ein physischer Cluster oft anschaulicher, als virtuelle Maschinen. Als preiswerter Einstieg bieten sich bereits seit geraumer Zeit die Raspberry Pi Minicomputer an. Für rund 40 Euro pro Gerät erhält man einen Rechner mit 1 Gb RAM und vier ARM Kernen. Dazu wird noch eine USB Stromversorgung und MicroSD Speicherkarten benötigt, und schon kann es los gehen.

fn Project - Serverless Java mit Docker und Kubernetes 29 Jun

Geschrieben von Thomas Kruse am 29. Juni 2018
fn project

Im Markt der Serverless-Ansätze positioniert sich Oracle mit Project Fn. Dieser Beitrag demonstriert den Einsatz des Fn Project um mittels Docker oder Kubernetes Function-As-A-Service (FaaS) bzw. Serverless Architekturen umzusetzen. Als Demo wird eine Java Anwendung mit Project Fn als Docker-Container erstellt und im Fn Server betrieben.

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.