Arreglando un problema de LVM en Kubernetes en AWS
Hemos estado migrando nuestra infraestructura heredada a Kubernetes. La capacidad de desplegar en segundos hace una gran diferencia en términos del número de Magra experimentos que podemos asumir. Kubernetes nos da una manera de administrar la simplicidad del contenedor Docker a una escala que puede manejar eventos de widget de 1 mil millones con el procesamiento de datos correspondiente que debe suceder.
Mientras que Kubernetes es impresionante, todavía es relativamente nuevo y hay un montón de lugares para contribuir. Todo empezó cuando nuestro nodo maestro bajó en AWS – no volvió a subir. Debería haberlo. Los nodos de AWS están configurados para volver sin problema. Esto llevó a mi primer Cometer. Después de excavar en los registros del sistema vi este error 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
Al excavar en la fuente, encontré que en AWS, los scripts Kubernetes crean un volumen LVM para almacenar los datos.
lvcreate -l 100%FREE --thinpool pool-ephemeral vg-ephemeral
Ejecutar el código parecía funcionar. Más que eso, el maestro trabajaba en el arranque. ¿Qué estaba pasando? Me registré en un maestro existente y busqué el volumen lógico. ¡ No estaba allí! El directorio era el allí, pero el volumen no era.
Volviendo a los logs del sistema (desde el primer arranque), vemos este error en ' lvcreate ':
Insufficient free space: 3905 extents needed, but only 3897 available
Al parecer, este es un problema en lvcreate en general: no se puede utilizar 100% gratis con una piscina delgada! Va a fallar. Puede ver más detalles en el Billete.
Bueno, no había necesidad de usar un thinpool para esto. No estamos sobreaprovisionando el disco en Kubernetes — > mi primera solicitud de extracción! Firmé el contrato de licencia del contribuyente y el resto es historia.
Ahora tenemos 4 clusters de Kubernetes de producción con docenas de pods (y nodos maestros reiniciables) y esperamos con ansias la estabilidad y el trabajo de alta disponibilidad que viene en "Ubernetes". Si usted está interesado en resolver problemas como este nos encantaría tenerte ¡ Únase a nuestro equipo!