Correction d'un problème de LVM dans Kubernetes sur AWS
Nous avons migré notre infrastructure héritée en Kubernetes. La capacité de déployer en quelques secondes fait une énorme différence en termes de nombre de Maigre expériences que nous pouvons prendre. Kubernetes nous donne un moyen de gérer la simplicité du conteneur docker à une échelle qui peut gérer les événements widget 1 milliard avec le traitement des données correspondantes qui doit se produire.
Bien que Kubernetes est impressionnant, il est encore relativement nouveau et il ya beaucoup d'endroits à contribuer. Tout a commencé quand notre noeud principal est descendu sur AWS-il n'est pas revenu vers le haut. Il aurait dû. Les noeuds sur AWS sont configurés pour revenir sans problème. Cela a conduit à ma première Commettre. Après avoir creusé dans les journaux du système, j'ai vu cette erreur flagrante:
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
Creuser dans la source, j'ai trouvé que sur AWS, scripts Kubernetes créer un volume LVM pour stocker les données.
lvcreate -l 100%FREE --thinpool pool-ephemeral vg-ephemeral
L'exécution du code semblait fonctionner. Plus que cela, le maître a travaillé au démarrage. Qu'est-ce qui se passait? Je me suis connecté à un maître existant et j'ai cherché le volume logique. Il n'était pas là! Le répertoire était le là, mais le volume n'était pas.
Pour en revenir aux journaux système (à partir du premier démarrage), nous voyons cette erreur sur'lvcreate':
Insufficient free space: 3905 extents needed, but only 3897 available
Apparemment, c'est un problème sur lvcreate en général: vous ne pouvez pas utiliser 100% gratuit avec une piscine mince! Il va échouer. Vous pouvez voir plus de détails dans le Billet.
Eh bien, il n'y avait pas besoin d'utiliser un thinpool pour cela. Nous ne sommes pas surapprovisionner le disque dans Kubernetes-> ma première demande pull! J'ai signé le contrat de licence du conTribuant et le reste est l'histoire.
Nous avons maintenant 4 grappes Kubernetes de production avec des douzaines de Pods (et des noeuds maîtres redémarrables) et attendons avec impatience la stabilité et le travail de haute disponibilité venant dans "Ubernetes". Si vous êtes intéressé à résoudre des problèmes comme celui-ci nous serions ravis de vous avoir Rejoignez notre équipe!