Cette année, Plesk a décidé d'envoyer plusieurs personnes à KubeCon — le principal événement sur Kubernetes dans le monde. Il n'y a pas de conférences spécialisées à ce sujet en Russie. Bien sûr, on parle de K8s chez nous, et tout le monde en veut, mais autant d'entreprises qui le pratiquent ne se rassemblent nulle part ailleurs. J'étais l'un des participants, car je travaille sur une plateforme basée sur Kubernetes.
À propos de l'organisation
L'ampleur de la conférence est étonnante : 7000 participants, un immense centre d'exposition. Passer d'une salle à une autre prenait 5 à 7 minutes. En même temps, 30 présentations se déroulaient sur différents sujets. Il y avait un grand nombre d'entreprises avec leurs stands, certaines proposaient de nombreux prix sympas et quelques prix exceptionnels, et distribuaient aussi des goodies comme des t-shirts, des stylos et d'autres choses adorables. Tous les échanges se faisaient en anglais, mais je n'ai rencontré aucune difficulté. Si c'est le seul facteur qui vous empêche d'aller à des conférences à l'étranger, foncez. L'anglais dans l'IT est plus simple que l'anglais standard grâce à l'abondance de mots familiers que vous écrivez et lisez chaque jour dans le code et la documentation. Je n'ai également eu aucune difficulté à comprendre les présentations. J'avais emmagasiné beaucoup d'informations. En fin de journée, je ressemblais à un serveur sur lequel on avait profité d'un débordement de tampon et où l'on a déversé directement dans le subconscient.
À propos des présentations
Je veux brièvement parler des présentations que j'ai le plus appréciées et que je recommanderais de regarder.
Cette présentation m'a particulièrement marqué car elle a mis en lumière une douleur forte. Nous avons de nombreux services disparates, chacun soutenu et développé par différentes personnes de l'équipe. Nous adoptons des approches d'infrastructure en tant que code, mais certaines problématiques demeurent non résolues. Il existe un dépôt de code sur Ansible, mais l'état actuel et l'inventaire sont stockés sur la machine du développeur exécutant le script, où se trouvent également les mots de passe. Une partie des informations se trouve dans Confluence, mais il n'est pas toujours évident de savoir où. Il n'y a pas d'endroit où l'on peut simplement appuyer sur un bouton et tout ira bien. Il est proposé de rédiger une description et de l'ajouter au dépôt non seulement pour le code, mais aussi pour les outils de déploiement. Décrire où trouver l'état et les mots de passe, faire un make install et profiter du résultat. J'aimerais plus d'ordre dans les services, je vais suivre les versions CNAB, les utiliser dans mes projets, les intégrer et convaincre. Un bon modèle pour rédiger le Readme dans le dépôt.
Il y a beaucoup d'informations sur les pièges à éviter lors de l'écriture d'opérateurs. Je considère que cette présentation est indispensable pour ceux qui envisagent d'écrire leur propre opérateur pour Kubernetes. Elle couvre tous les aspects tels que les statuts, le ramassage de déchets, la concurrence, etc. C'est très informatif. J'ai beaucoup aimé la citation dans le code des volumes persistants de Kubernetes :
K8s prône la complexité de l'intégration au détriment de la simplicité de mise en œuvre.
Cette présentation explore en détail un des éléments architecturaux fondamentaux d'un cluster : le plan de contrôle, et en particulier l'ensemble des contrôleurs. Elle décrit leur rôle et leur architecture, ainsi que les principes de base pour créer son propre contrôleur en s'appuyant sur des exemples existants.
Un des moments les plus originaux est la recommandation de ne pas masquer les anomalies derrière le comportement normal d'un contrôleur, mais d'ajuster son comportement d'une certaine manière pour signaler à la système l'apparition de problèmes.
Une expérience très intéressante avec beaucoup d'informations et de recettes sur ce qu'il faut prendre en compte lorsque vous avez une charge vraiment élevée. Ils ont bien réussi leur intégration dans Kubernetes, gérant 50 clusters. Ils ont aborde tous les aspects pour maximiser les performances. Je recommande de visionner cette présentation avant de prendre des décisions techniques liées aux clusters.
Le rapport, après lequel j'ai compris qu'il fallait absolument essayer Loki pour les logs dans le cluster et, très probablement, y rester. La problématique : Elastic est lourd. Grafana souhaitait développer une solution légère et évolutive, adaptée au débogage des problèmes. La solution s'est avérée élégante : Loki récupère des informations méta à partir de Kubernetes (étiquettes, comme Prometheus), et les utilise pour organiser les logs. Ainsi, il est possible de sélectionner des morceaux de log par service, de trouver un pod spécifique, de choisir un moment précis, et de filtrer par code d'erreur. Ces filtres fonctionnent sans recherche en texte intégral. En réduisant progressivement le champ de recherche, on peut atteindre l'erreur précise souhaitée. À la fin, une recherche est effectivement utilisée, mais comme le champ est restreint, la vitesse est suffisante sans indexation. En cliquant dessus, le contexte se charge - quelques lignes avant et quelques lignes de log après. Ainsi, cela ressemble à une recherche de fichier de logs effectuée avec grep, mais un peu plus pratique et dans la même interface que les métriques. Il est capable de compter le nombre d'occurrences d'une requête de recherche. Les requêtes de recherche ressemblent au langage de Prometheus et sont faciles à comprendre. Le présentateur a attiré notre attention sur le fait que la solution n'est pas très adaptée à l'analyse. Je recommande vivement à tous ceux qui ont besoin de logs de jeter un œil, c'est très facilement présentable.
Les processus de déploiements canary et blue-green sont très bien illustrés. Je recommande de visionner ce rapport à ceux qui ne l'ont pas encore fait. Les présentateurs présentent la solution sous la forme d'une extension pour le système CI-CD prometteur ARGO. Il est plus facile d'écouter l'anglais du présentateur venant de Russie que celui des autres présentateurs.
L'un des aspects les plus difficiles de la gestion d'un cluster reste la configuration de la sécurité, en particulier des droits d'accès aux ressources. Les primitives intégrées de K8s permettent de configurer l'autorisation à volonté. Comment maintenir cela efficacement à jour ? Comment comprendre ce qui se passe avec les droits d'accès et déboguer les rôles créés ? Cette présentation propose non seulement un aperçu de plusieurs outils de débogage de l'autorisation dans K8s, mais aussi des recommandations générales pour établir des politiques simples et efficaces.
Autres rapports
Je ne vais pas recommander. Certains étaient capitaux, d'autres au contraire très compliqués. Je conseille de consulter cette playlist et de regarder tout ce qui est marqué comme keynote. Cela permettra d'avoir une vue d'ensemble sur l'industrie des applications Cloud Native, et ensuite, il vaut mieux appuyer sur ctrl+f et chercher des mots-clés, des entreprises, des produits et des approches qui vous intéressent.
Voici le lien vers la playlist des conférences, faites-y attention
Sur les stands des entreprises
Au stand Haproxy, on m'a offert un t-shirt pour mon fils. Je doute que cela me fasse remplacer Nginx par haproxy en production, mais ils m'ont marqué le plus. Qui sait ce que les nouveaux propriétaires feront avec Nginx.
Au stand d'IBM, il y avait des courtes conférences tout au long des trois jours, et ils attiraient les gens en tirant au sort des Oculus Go, des écouteurs Beats et un drone. Il fallait rester une demi-heure au stand. J'ai tenté ma chance deux fois en trois jours — rien de fructueux. Il y avait aussi des courtes conférences chez VMWare et Microsoft.
Au stand d'Ubuntu, j'ai fait ce que tout le monde semble avoir fait — je me suis fait prendre en photo avec Shuttleworth. Un gars sociable, il était ravi d'apprendre que j'utilise Ubuntu depuis la version 8.04 et que le serveur a fonctionné sans mise à jour pendant 10 ans sans le moindre arrêt (en fait sans accès à Internet).
Ubuntu développe son MicroK8s — Rapide, Léger, Développeur Kubernetes en amont
Je n'ai pas pu passer à côté de Dmitry Stolyarov, il m'a parlé des dures réalités des ingénieurs supportant Kubernetes. Il va déléguer la lecture des conférences à ses collègues, mais il prépare un nouveau format de présentation du matériel. Il a encouragé à s'abonner à la chaîne Flante sur youtube.
IBM, Cisco, Microsoft, VMWare ont investi beaucoup d'argent dans leurs stands. Les stands des open source étaient plus modestes. J'ai discuté au stand avec des représentants de Grafana, ils m'ont convaincu — il faut essayer Loki. En général, il semble que la recherche en texte intégral dans le système de journalisation ne soit nécessaire que pour l'analyse, alors que pour le dépannage, un système comme Loki suffit. J'ai discuté avec les développeurs de Prometheus. Ils ne prévoient pas de faire de stockage prolongé pour les métriques et le downsampling des données. Ils recommandent de regarder cortex et thanos comme solutions. Il y avait beaucoup de stands, il aurait fallu une journée entière pour tous les parcourir. Une dizaine de solutions pour le monitoring comme service. Cinq services de sécurité. Cinq services de performance. Une dizaine d'interfaces utilisateur pour Kubernetes. Beaucoup de ceux qui proposent Kubernetes comme service. Tous veulent une part du marché.
Amazon et Google ont loué des terrasses avec de la pelouse artificielle sur le toit, où ils ont installé des chaises longues. Amazon distribuait des tasses et servait de la limonade, tandis que son stand parlait des nouveautés concernant les instances spot. Google offrait des cookies avec le logo Kubernetes et a créé une superbe zone photo, tout en pêchant une grande 'poisson d'entreprise' à son stand.
À propos de Barcelone
Je suis amoureux de Barcelone. J'y suis allé pour la deuxième fois, la première fois en 2012 pour une visite guidée. C'est incroyable, mais de nombreux faits me sont revenus en mémoire, j'ai pu en raconter beaucoup à mes collègues, je suis devenu un mini-guide. L'air marin pur m'a immédiatement débarrassé de mon allergie. Des fruits de mer délicieux, de la paella, de la sangria. Une architecture très chaleureuse et ensoleillée. Peu d'étages, beaucoup de verdure. Nous avons parcouru à pied environ 50 kilomètres en trois jours, on a envie de se promener encore et encore dans cette ville. Tout cela après les conférences, le soir.
Ce que j'ai compris
Je suis très heureux d'avoir eu l'opportunité de participer à cette conférence. Elle a clarifié des points qui étaient auparavant flous. Elle m'a inspiré et a rendu certaines choses évidentes.
Une pensée a traversé tout cela : Kubernetes n'est pas une destination finale, mais un outil. Une plateforme pour créer des plateformes.
Et le principal objectif de tout cela : rassembler et déployer des applications évolutives
Les principales directions sur lesquelles la communauté travaille se sont cristallisées. À peu près comme les 12 facteurs pour les applications, il y a maintenant une liste de ce qu'il faut faire et comment le faire pour l'infrastructure dans son ensemble. Si vous le souhaitez, on peut appeler cela des tendances :
- Environnements dynamiques
- Clouds publics, hybrides et privés
- Conteneurs
- Maillage de services
- Microservices
- Infrastructure immuable
- API déclarative
Ces techniques permettent de construire des systèmes avec les caractéristiques suivantes :
- Protégés contre la perte de données
- Élastiques (s'adaptant à la charge)
- Faciles à entretenir
- Observables (trois piliers : surveillance, journalisation, traçabilité)
- Ayant la capacité de publier des changements importants de manière fréquente et prévisible en toute sécurité.
La CNCF sélectionne les meilleurs projets (une liste réduite) et promeut des choses comme :
- Une automatisation saine
- Code ouvert
- Liberté dans le choix des fournisseurs de services
Kubernetes est complexe. Il est simple idéologiquement et par parties, mais complexe dans son ensemble. Personne n’a montré de solutions tout-en-un. Sur le marché des services k8s, et sur l’ensemble du marché, c’est le far-west : le support est proposé à des prix allant de 50 $ à 1000 $ par mois. Chacun s’enfonce dans une partie et creuse dedans. Certains se concentrent sur la surveillance et les tableaux de bord, d'autres sur la performance, d'autres sur la sécurité.
K8S, tout ne fait que commencer !
Source : habr.com
