Select Page

openSUSE-Kubic getestet…

by | Dec 2, 2021 | Container, Kubernetes

Schon mal von openSUSE-Kubic gehört? Nein? Okay, als Fan des Chamäleons habe ich davon schon öfter gelesen, aber ausprobiert habe ich es  noch nie.
Also dann beschreibe ich kurz was sich hinter Kubic versteckt.

Kubic ist eine zertifizierte Kubernetes Distribution, die auf openSUSE-MicroOS basiert und dem openSUSE-Tumbleweed (Rolling-Release) zu Grunde liegt.
Es ist sozusagen ein fertiges Betriebssystem für den Einsatz von Kubernetes, alle nötigen Tools sind schon vorinstalliert, damit man sofort beginnen kann
seinen K8s Cluster aufzusetzen oder z.B. Docker Container zu bauen.
Hier wurde ein transactional Server eingerichtet, das heißt, es ist ein read-only BTRFS Filesystem gemountet und man kann nicht wie unter openSUSE/SLES bekannt zypper
per Kommandozeile benutzen um Software-Paket nach zu installieren, aber ich werde noch CodeSnippets mit einbauen wo das ersichtlich wird. Sondern jedes neu installiertes Software-Paket wird vorerst als Snapshot zur Verfügung gestellt, der dann nach dem Reboot des Servers mit einbezogen wird.
Diese Distribution Kubic kann man sich in verschiedenen Formaten herunterladen, z.B. als RaspberryPI, openStack oder ISO-Image uvm siehe Link. Ich habe mir das in unserer openStack Umgebung als Image geladen und getestet.

So dann schauen wir uns das mal auf der Kommandozeile an:
kubic:~ # rpm -qa |grep kube*
patterns-containers-kubic_worker-5.0-25.1.x86_64
hello-kubic-k8s-yaml-1.4-1.3.noarch
kube-prometheus-k8s-yaml-0.5.0+git20200729.f0955e0-1.5.noarch
kuberlr-0.3.1-1.6.x86_64
kubernetes1.22-client-1.22.2-1.1.x86_64
patterns-containers-kubeadm-5.0-25.1.x86_64
patterns-containers-kubic_admin-5.0-25.1.x86_64
kubic-haproxycfg-0.12.2-1.1.x86_64
kubernetes1.22-client-common-1.22.2-1.1.x86_64
kubicctl-0.12.2-1.1.x86_64
kubernetes-client-1.22.2-21.2.x86_64
health-checker-plugins-kubic-1.6-1.1.noarch
kubicd-0.12.2-1.1.x86_64
kubernetes1.22-kubelet-1.22.2-1.1.x86_64
kubernetes1.22-kubelet-common-1.22.2-1.1.x86_64
patterns-containers-kubic_loadbalancer-5.0-25.1.x86_64
kubernetes1.21-kubelet-1.21.5-2.1.x86_64
kubernetes-kubelet-1.22.2-21.2.x86_64
kubernetes1.22-kubeadm-1.22.2-1.1.x86_64
cri-o-kubeadm-criconfig-1.22.0-1.2.x86_64
patterns-containers-container_runtime_kubernetes-5.0-25.1.x86_64
kubernetes-kubeadm-1.22.2-21.2.x86_64
kubic:~ # rpm -qa |grep helm
helm-3.6.3-2.1.x86_64

Das Paket Docker musste ich noch nachinstallieren und mich noch in die Gruppe docker hinzufügen, damit ich mit dem Tool Minikube meine ersten Kubernetes Cluster testen konnte.

Da ich das schon im Vorfeld getan habe zeige ich nochmal kurz den Befehl mit dem ich das Paket Docker, Tmux installiert habe:
ransactional-update pkg install tmux docker
Checking for newer version.
transactional-update 3.6.2 started
Options: pkg install tmux docker
Separate /var detected.
2021-11-29 13:42:32 tukit 3.6.2 started
2021-11-29 13:42:32 Options: -c10 open
2021-11-29 13:42:32 Using snapshot 10 as base for new snapshot 11.
2021-11-29 13:42:32 Syncing /etc of previous snapshot 9 as base into new snapshot "/.snapshots/11/snapshot"
ID: 11
2021-11-29 13:42:33 Transaction completed.
Calling zypper install
zypper: nothing to update
Removing snapshot #11...
2021-11-29 13:42:34 tukit 3.6.2 started
2021-11-29 13:42:34 Options: abort 11
2021-11-29 13:42:34 Discarding snapshot 11.
2021-11-29 13:42:34 Transaction completed.
transactional-update finished

Diese Meldung kommt jetzt, da diese Pakete schon vorhanden sind, sonst würde zypper im Hintergrund die Pakete installieren.
Anschließend muss man einen Reboot durchführen, sonst wird das nicht live geschaltet.
Dann noch folgendes:
usermod -a username -G docker
Damit man mit einem bestimmten $user docker run … ausführen kann.

Hier nochmal zur Vollständigkeit eine Installation vom Paket LXC
transactional-update pkg install lxc
Checking for newer version.
transactional-update 3.6.2 started
Options: pkg install lxc
Separate /var detected.
2021-11-30 08:37:36 tukit 3.6.2 started
2021-11-30 08:37:36 Options: -c11 open
2021-11-30 08:37:36 Using snapshot 11 as base for new snapshot 12.
2021-11-30 08:37:36 Syncing /etc of previous snapshot 10 as base into new snapshot "/.snapshots/12/snapshot"
ID: 12
2021-11-30 08:37:36 Transaction completed.
Calling zypper install
2021-11-30 08:37:37 tukit 3.6.2 started
2021-11-30 08:37:37 Options: callext 12 zypper -R {} install lxc
2021-11-30 08:37:37 Executing `zypper -R /.snapshots/12/snapshot install lxc`:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following 5 NEW packages are going to be installed:
libcap-progs liblxc1 lxc lxcfs lxcfs-hooks-lxc

5 new packages to install.
Overall download size: 860.6 KiB. Already cached: 0 B. After the operation, additional 2.6 MiB will be used.
Continue? [y/n/v/...? shows all options] (y):

Checking for file conflicts: [......done]
Warning: 5 packages had to be excluded from file conflicts check because they are not yet downloaded.

Note: Checking for file conflicts requires not installed packages to be downloaded in advance in
order to access their file lists. See option '--download-in-advance / --dry-run --download-only'
in the zypper manual page for details.
2021-11-30 08:37:54 Application returned with exit status 0.
2021-11-30 08:37:55 Transaction completed.
Trying to rebuild kdump initrd
2021-11-30 08:37:55 tukit 3.6.2 started
2021-11-30 08:37:55 Options: close 12
2021-11-30 08:37:55 New default snapshot is #12 (/.snapshots/12/snapshot).
2021-11-30 08:37:55 Transaction completed.

Wichtig hier:
Please reboot your machine to activate the changes and avoid data loss.
New default snapshot is #12 (/.snapshots/12/snapshot).
transactional-update finished

Wie man jetzt zum Testen von Kubernetes mit z.B. Minikube kommt, werde ich hier nicht beschreiben, denn dazu gibt es
genügend Informationen im Internet. Vor allem kann ich das Kubernetes , das wir hosten, sehr empfehlen, einfach Anfrage bei uns starten.

Nur wie gesagt, wer den Einstieg in ein selbst gehostetes K8s lernen möchte, ist der Einstieg mit openSUSE-Kubic sehr vorteilhaft, da vieles schon vorkonfiguriert ist.

So ich denke für den ersten Überblick von Kubic reicht das vorerst, ich wünsche schon mal viel Spaß beim ausprobieren und besucht unser K8s Training!

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Container | Kubernetes

NWS-ID for your Managed Kubernetes!

First Cloud, now Kubernetes - the integration of NWS-ID with our portfolio continues! As a next step, we will merge your Managed Kubernetes clusters with NWS-ID. Credit goes to Justin for extending our cluster stack with OpenID-Connect (OIDC), the base for NWS-ID! How...