Zum Hauptinhalt springen

Blogs

Erfahrungsbericht über den CNCF-Konformitätstest

Einführung

Die Cloud Native Computing Foundation ist ein Projekt zur Verbesserung von Cloud Computing, Microservices und Container-Visualisierung. Über 450 Unternehmen sind daran beteiligt, was den Konformitätstest so wertvoll macht.

Deshalb führten einzelne Mitarbeiter den Konformitätstest durch und kamen zu einem Ergebnis von elf Fehlern. Ich wurde damit beauftragt, mich um die Informationsbeschaffung der Fehler zu kümmern. Nach einer gewissen Zeit der Fehlersuche beschloss ich, einen weiteren Testlauf auf eigene Faust durchzuführen. Bei diesem Test trat am Ende nur ein Fehler auf, was mir bewusst machte, dass der Testlauf gewissen Abhängigkeiten unterliegt.
Der neue Fehler war: „CustomResourcePublishOpenAPI“, während ich mich nach diesem Fehler erkundigte, beschloss ich, einen weiteren Testlauf durchzuführen, der nebenbei lief und etwa zwei Stunden dauerte.
Für mich war es wichtig, den Testlauf in einer isolierten Umgebung mit einem leeren Centos 7-Rechner mit nur meinen Einstellungen durchzuführen, und zu unserer Freude gab es keine Komplikationen, so dass dem Übergang zur nächsten Phase nichts im Wege stand.
Im Folgenden werde ich erklären, wie und warum ich so vorgegangen bin, es ist ein fortlaufender Text, in dem ich zunächst auf die Anforderungen eingehe, dann auf die notwendige Erstellung von Dateien/Ordnern und Strukturen. Dann auf die Erstellung des Clusters selbst, gefolgt von dem Test der Sonoboje und schließlich mit meinem Fazit.

Verfahren

Wie ich bereits erwähnt habe, benötigen wir neue oder saubere Maschinen, einen Cluster-Master (Knoten), einen Admin (Knoten) und zwei Worker (Knoten). Auf allen läuft das Betriebssystem Centos7. Aus dem Download-Bereich unserer Website erhalten wir unsere .rpm-Datei, die für den Testlauf unerlässlich ist.

Nun benötigen wir zwei Ordner, die wir erstellen und „yamlFiles“ und „clusterStorage“ nennen. Im Ordner „clusterStorage“ müssen wir eine Umgebungsvariable erstellen, die permanent ist. Im Ordner „yamlFiles“ werden zwei neue Dateien benötigt, die „createCluster.yaml“ und „addNode.yaml“ heißen. Die Datei „createCluster.yaml“ enthält Parameter für die Erstellung eines Clusters, z. B. IP-Adressen, Parameterwerte, Anmeldedaten, Registry, auf die wir verweisen, usw. Alle Knoten werden in der „addNode.yaml“ aufgelistet, die den Cluster selbst darstellt. Der Knoten selbst wird hier mit IP-Adresse und Anmeldedaten definiert.

Nachdem dies alles erledigt ist, starten wir Docker und aktivieren Docker, starten Docker neu und aktivieren es dauerhaft, dies ist eine weitere Vorsichtsmaßnahme.

Schließlich kamen wir zum Hauptteil dieses Feldberichts, in dem wir einen Cluster erstellen, beachten Sie, dass der Pfad muss der gleiche sein, so dass, wenn Sie im Stammverzeichnis sind, können Sie den Cluster ausführbare und korrekt zu erstellen. Jetzt richten wir den Cluster auf dem Cluster-Master ein, der in „createCluster.yaml“ definiert ist und der unseren Datenverkehr leiten wird. Nun lassen wir die anderen Nodes dem Cluster beitreten.
Wenn der Cluster erfolgreich erstellt wurde, können wir nun das entsprechende Programm für den Konformitätstest auf der sonobuoy-Seite herunterladen und per Drag & Drop auf unser MobaXterm ziehen.
Nachdem wir es heruntergeladen haben, entpacken wir die Datei und verschieben sie in das angegebene Verzeichnis.
Jetzt beginnen wir mit dem Test, der bis zu 2,5 Stunden dauern kann.

Sobald der Test abgeschlossen ist, extrahieren wir die relevanten Dateien. Dann können wir die relevanten Dateien sehen, aber e2e.log ist die wichtigste für uns.

Schlussfolgerung

Am Ende meines zweiten Testlaufs hatte ich 0 Fehler, was uns zeigt, dass ein solcher Konformitätstest sehr umgebungsabhängig ist. Um ins Detail zu gehen, es gibt einen Unterschied zwischen der Installation des Clusters in einer bereits laufenden und verwendeten Umgebung und der Installation des Clusters in einer neuen und sauberen Umgebung. Diese Abhängigkeit hängt auch mit dem Betriebssystem zusammen, zu meinem Vorteil verursachte unser .rpm (kubeops-1.0.0-3-rc2el7.x86_64.rpm) auf Centos 7 keine Probleme, da es jeden Tag angepasst und verbessert wird. Zum Schluss habe ich noch einen Testlauf gemacht, der gut gelaufen ist und das Ergebnis war das gleiche wie erwartet.