Behebung eines LVM-Problems bei Kubernetes auf AWS
Wir haben unsere bestehende Infrastruktur in die folgenden Bereiche migriert Kubernetes. Die Fähigkeit, in Sekundenschnelle bereitzustellen, macht einen großen Unterschied in Bezug auf die Anzahl der schlank Experimente, die wir übernehmen können. Kubernetes gibt uns eine Möglichkeit, die Einfachheit des Docker-Containers in einer Größenordnung zu verwalten, die 1 Milliarde Widget-Ereignisse mit der entsprechenden Datenverarbeitung verarbeiten kann, die stattfinden muss.
Kubernetes ist zwar fantastisch, aber es ist noch relativ neu und es gibt viele Möglichkeiten, etwas beizutragen. Es begann alles, als unser Masterknoten bei AWS ausfiel - er kam nicht wieder hoch. Das hätte es sein sollen. Die Knoten auf AWS sind so eingerichtet, dass sie problemlos wiederhergestellt werden können. Dies führte zu meiner ersten sich[Akk] binden. Nachdem ich mich in die Systemprotokolle gegraben hatte, sah ich diesen eklatanten Fehler:
The disk drive for /mnt/ephemeral is not ready yet or not present.
keys:Continue to wait, or Press S to skip mounting or M for manual recovery
Als ich mich in die Quelle vertiefte, stellte ich fest, dass Kubernetes-Skripte auf AWS ein LVM-Volume erstellen, um die Daten zu speichern.
lvcreate -l 100%FREE --thinpool pool-ephemeral vg-ephemeral
Die Ausführung des Codes schien zu funktionieren. Mehr als das, der Master arbeitete an der Inbetriebnahme. Was war hier los? Ich habe mich in einen bestehenden Master eingeloggt und nach dem logischen Volume gesucht. Es war nicht da! Das Verzeichnis war das dort, aber das Volume nicht.
Wenn wir zu den Systemprotokollen zurückkehren (vom ersten Start an), sehen wir diesen Fehler auf'lvcreate':
Insufficient free space: 3905 extents needed, but only 3897 available
Anscheinend ist dies ein Problem auf lvcreate im Allgemeinen: Sie können 100%FREE nicht mit einem dünnen Pool verwenden! Es wird scheitern. Weitere Details finden Sie in der Datei Ticket.
Nun, es war nicht nötig, dafür einen Thinpool zu verwenden. Wir stellen die Festplatte in Kubernetes nicht übermäßig zur Verfügung -> meine erste Pull-Anfrage! Ich habe den Contributer's License Agreement unterzeichnet und der Rest ist Geschichte.
Wir haben jetzt 4 produktive Kubernetes-Cluster mit Dutzenden von Pods (und wiederaufsetzbaren Masterknoten) und freuen uns auf die Stabilität und Hochverfügbarkeit in "Ubernetes". Wenn du daran interessiert bist, Probleme wie diese zu lösen, würden wir uns freuen, wenn du dich für uns entscheidest. werden Sie Teil unseres Teams!