Este año, Plesk decidió enviar a varias personas a KubeCon, el evento principal sobre Kubernetes en el mundo. No hay conferencias especializadas sobre este tema en Rusia. Por supuesto, se habla de K8s aquí y todos lo quieren, pero no hay ninguna otra reunión de tantas empresas que lo practiquen en un solo lugar. Yo fui uno de los participantes, ya que trabajo en una plataforma basada en Kubernetes.
Sobre la organización
Las dimensiones de la conferencia son impresionantes: 7000 participantes, un enorme centro de exposiciones. El traslado de una sala a otra tomaba de 5 a 7 minutos. Al mismo tiempo, había 30 presentaciones sobre diferentes temas. Había una gran cantidad de empresas con sus propios stands; en algunos, se sorteaban buenos y algunos excelentes premios, así como se repartían camisetas, bolígrafos y otras cosas agradables. Toda la comunicación se realizó en inglés, pero no tuve ninguna dificultad. Si este es el único factor que te impide asistir a conferencias en el extranjero, no dudes en ir. El inglés en TI es más fácil que el inglés habitual gracias a la abundancia de palabras familiares que escribes y lees a diario en el código y la documentación. También hubo problemas en la comprensión de las presentaciones. Se procesaron una gran cantidad de información en mi cabeza. Para la noche, me sentía como un servidor que había sufrido un desbordamiento de búfer y la información se vertía directamente en mi subconsciente.
Sobre las presentaciones
Quiero contar brevemente sobre las presentaciones que más me gustaron y que recomendaría ver.
Este informe me impresionó porque resaltó un dolor significativo. Tenemos muchos servicios dispares que son mantenidos y desarrollados por diferentes personas en el equipo. Seguimos enfoques de infraestructura como código, pero hay algunos problemas sin resolver. Existe un repositorio de código en Ansible, pero el estado actual y el inventario están guardados en la máquina del desarrollador que ejecuta el script, junto con las credenciales. Parte de la información se puede encontrar en Confluence, pero no siempre es obvio dónde. No hay un lugar donde simplemente puedas presionar un botón y que todo funcione bien. Se sugiere crear una descripción y colocar no solo el código en el repositorio, sino también las herramientas de despliegue. Describir dónde obtener el estado y las credenciales, ejecutar make Install y disfrutar del resultado. Me gustaría más orden en los servicios, estaré pendiente de los lanzamientos de CNAB, implementarlo y convencer a otros. Un buen modelo para el formato del Readme en el repositorio.
Hay mucha información sobre los errores comunes al escribir operadores. Considero que esta presentación es obligatoria para aquellos que planean escribir su propio operador para Kubernetes. Se han considerado todos los aspectos como estados, recolección de basura, concurrencia, entre otros. Muy informativa. Me gustó mucho una cita del código de volúmenes persistentes de Kubernetes:
K8s abraza la complejidad de la integración en favor de la simplicidad de la implementación.
Esta presentación detalla uno de los elementos arquitectónicos clave del clúster: el plano de control, específicamente un conjunto de controladores. Se describe su función y arquitectura, así como los principios básicos para crear su propio controlador a partir de ejemplos existentes.
Uno de los momentos más originales es la recomendación de no ocultar situaciones anómalas tras el comportamiento correcto del controlador, sino modificar el comportamiento de alguna manera para dar una señal al sistema sobre la aparición de problemas.
Una experiencia muy interesante, con mucha información y recetas sobre lo que necesitas tener en cuenta cuando realmente hay una alta carga. Han ingresado bien en Kubernetes, soportando 50 clústeres. Hablaron sobre todos los aspectos para maximizar el rendimiento. Recomiendo ver esta presentación antes de tomar decisiones técnicas sobre clústeres.
El informe que me hizo entender que definitivamente debo probar Loki para los registros en el clúster y, probablemente, quedarme con él. La esencia: Elasticsearch es pesado. Grafana quería desarrollar una solución ligera y escalable adecuada para depurar problemas. La solución resultó ser elegante: Loki elige metainformación de Kubernetes (etiquetas, como Prometheus) y organiza los registros en función de ellas. De este modo, se pueden seleccionar partes de los registros por servicio, encontrar un pod específico, elegir un momento concreto, filtrar por código de error. Estos filtros funcionan sin búsqueda de texto completo. Así, al ir restringiendo el área de búsqueda poco a poco, se puede llegar a un error específico. Al final, la búsqueda se utiliza, pero como el rango se ha restringido, la velocidad es suficiente sin indexación. Al hacer clic en él, se carga el contexto: un par de líneas antes y un par de líneas del registro después. De este modo, se presenta como una búsqueda en un archivo de registros y un grep sobre él, pero un poco más conveniente y en la misma interfaz donde están las métricas. Puede contar la cantidad de coincidencias de la consulta de búsqueda. Las propias consultas de búsqueda son similares al lenguaje de Prometheus y se ven simples. El presentador nos hizo notar que la solución no es muy adecuada para análisis. Recomiendo encarecidamente que todos los que necesiten registros lo vean; es una presentación muy ligera.
Se muestran muy claramente los procesos de implementación canaria y azul-verde. Recomiendo ver la presentación a aquellos que aún no se han familiarizado con ello. Los presentadores presentan la solución como una extensión para el prometedor sistema CI-CD ARGO. La presentación en inglés del presentador desde Rusia es más fácil de escuchar que la de los otros presentadores.
Uno de los aspectos más difíciles de la gestión del clúster sigue siendo la configuración de la seguridad, en particular los derechos de acceso a los recursos. Los primitivas integradas de K8s permiten configurar la autorización de diversas maneras. ¿Cómo mantenerlas actualizadas sin complicaciones? ¿Cómo entender lo que sucede con los derechos de acceso y depurar los roles creados? En esta presentación no solo se ofrece una visión general de varias herramientas para depurar la autorización en K8s, sino que se dan recomendaciones generales sobre cómo construir políticas simples y efectivas.
Otras presentaciones
No lo recomendaré. Algunos eran demasiado simplistas, otros, en cambio, eran bastante complicados. Te sugiero que eches un vistazo a esta lista de reproducción y veas todo lo que está marcado como keynote. Esto te permitirá obtener una visión amplia de la industria alrededor de las Cloud Native Apps; luego puedes presionar ctrl+f y buscar por palabras clave, empresas, productos y enfoques que te interesen.
Aquí tienes el enlace a la lista de reproducción con las presentaciones, presta atención.
Sobre los stands de las empresas
En el stand de Haproxy me regalaron una camiseta para mi hijo. Dudo que por esto sustituya Nginx por Haproxy en producción, pero ellos me dejaron una impresión más fuerte. Quién sabe qué harán los nuevos propietarios con Nginx.
En el stand de IBM, durante los tres días, había presentaciones cortas, y atraían a la gente sorteando unas Oculus Go, auriculares Beats y un dron. Tenías que estar en el stand durante media hora. Intenté mi suerte dos veces en tres días, pero no gané. También había presentaciones cortas de VMWare y Microsoft.
En el stand de Ubuntu hice lo que, al parecer, hicieron todos: me fotografié con Shuttleworth. Un tipo muy comunicativo, se alegró al saber que la uso desde la versión 8.04 y que el servidor con ella ha funcionado durante 10 años sin actualizaciones de distribución y sin ningún corte (aunque sin acceso a Internet).
Ubuntu está desarrollando su MicroK8s: rápido, ligero, Kubernetes para desarrolladores en upstream.
No pude pasar de largo al agotado Dmitry Stolyarov, hablé con él sobre los difíciles días de los ingenieros que mantienen Kubernetes. Delegará la lectura de presentaciones a sus colegas, pero está preparando un nuevo formato para presentar el material. Nos animó a suscribirse al canal de Flant en YouTube.
IBM, Cisco, Microsoft y VMWare han invertido mucho dinero en sus stands. Los stands de los amigos de código abierto eran más modestos. Hablé con representantes de Grafana y me convencieron: hay que probar Loki. En general, parece que la búsqueda de texto completo en un sistema de registro solo es necesaria para la analítica, mientras que para la resolución de problemas sería suficiente con sistemas como Loki. Hablé con los desarrolladores de Prometheus. No planean hacer almacenamiento a largo plazo de métricas ni downsampling de datos. Recomiendan mirar Cortex y Thanos como herramientas para resolverlo. Hay muchos stands, se necesitaba un día entero para visitar a todos. Una docena de soluciones para monitoreo como servicio. Unos cinco servicios de seguridad. Unos cinco servicios de rendimiento. Una docena de interfaces de usuario para Kubernetes. Muchos que ofrecen K8s como servicio. Todos quieren su pedazo del mercado.
Amazon y Google alquilaron patios con césped artificial en el techo, instalaron tumbonas. Amazon repartía tazas y servía limonada, mientras explicaba las novedades en el trabajo con instancias spot. Google regalaba galletas con el logo de Kubernetes y creó una genial zona de fotos, mientras pescaba grandes peces empresariales en su stand.
Sobre Barcelona
Enamorado de Barcelona. Estuve allí por segunda vez, la primera fue en 2012 durante un tour. Es increíble, pero muchos hechos volvieron a mi memoria, pude contarles mucho a mis colegas, fui un mini-guía. El aire marino puro me libró instantáneamente de la alergia. Mariscos deliciosos, paella, sangría. Una arquitectura muy cálida y soleada. Edificios bajos, mucha vegetación. Caminamos alrededor de 50 kilómetros durante estos tres días, este es un lugar donde quieres pasear una y otra vez. Todo esto después de las charlas, por las noches.
Lo que entendí claramente
Estoy muy feliz de haber tenido la oportunidad de asistir a esta conferencia. Organizó lo que antes no estaba organizado. Me inspiró, hizo evidentes algunas cosas.
Una idea clave surgió: Kubernetes no es un punto final, sino una herramienta. Una plataforma para crear plataformas.
Y la principal tarea de todo este movimiento es: reunir y ejecutar aplicaciones escalables
Las principales direcciones en las que trabaja la comunidad se han cristalizado. Aproximadamente, como en su momento surgieron los 12 factores para aplicaciones, apareció una lista de lo que y cómo hacer para la infraestructura en general. Si quieres, puedes llamarlo tendencias:
- Entornos dinámicos
- Nubes públicas, híbridas y privadas
- Contenedores
- Service mesh
- Microservicios
- Infraestructura inmutable
- API declarativa
Estas técnicas permiten construir sistemas con las siguientes características:
- Protegidos contra la pérdida de datos
- Elásticos (que se adaptan a la carga)
- Gestionables
- Observables (tres pilares: monitoreo, registro, trazado)
- Capaces de implementar cambios significativos de forma frecuente y predeciblemente segura.
CNCF selecciona los mejores proyectos (una lista pequeña) y aboga por tales cosas:
- Automatización saludable
- Código abierto
- Libertad en la elección del proveedor de servicios
Kubernetes es complejo. Es simple en ideología y en partes, pero complicado en conjunto. Nadie ha mostrado una solución todo-en-uno. En el mercado de k8s como servicio, y en todo el resto del mercado, hay un salvaje oeste: el soporte se vende por 50$ y también por 1000$ al mes. Cada uno se especializa en alguna parte y profundiza en ella. Algunos en monitorización y paneles de control, otros en rendimiento, y otros en seguridad.
¡K8S, esto apenas comienza!
Fuente: habr.com
