Kubernetes sur AWS : une intégration qui progresse
Kubernetes et AWS sont certes des piliers de leur marché respectifs. Mais difficile pour l’heure de les connecter et de les intégrer.
Gérer Kubernetes sur AWS a souvent été difficile. Mais cela pourrait bien changer. Kubernetes Operations (Kops) en est justement un exemple. Kops est un outil qui est censé faciliter la mise en place de clusters Kubernetes sur le Cloud AWS. Pour l’heure, le support de Kubernetes 1.7 est encore en Beta. On peut certes utiliser Kubernetes sans avoir recours à Kops, mais l’outil semble aujourd’hui intéresser les utilisateurs qui n’ont pas à disposition d’autres outils pour supporter nativement cet orchestrateur de containers sur AWS.
La différence entre Kubernetes et AWS – ces deux technologies représentent d’un côté la plateforme de containers la plus populaire et de l’autre le cloud public n°1 - est en fait une question de politique, expliquent certains analystes.
Amazon s’est certes essayé au support de Kubernetes, mais doit encore intégrer le moteur de scheduling à Amazon Elastic Compute Cloud Container Service. D’un autre côté, la communauté Kubernetes pourrait bien se méfier de ce poids lourd du Cloud public, résume Fintan Ryan, analyste au sein du cabinet de conseil RedMonk. « Les clients souhaitent assurément une intégration. Dans la communauté Kubernetes, on pense qu’ils peuvent gérer toutes les couches et ils ne veulent pas être verrouillés sur Amazon. »
Pourtant, il faut se rendre à l’évidence. AWS participe intensivement à la communauté, notamment via un groupe de travail, le Kubernetes Special Interest Group (SIG-AWS). Un ingénieur, très actif dans cette communauté, a publié un billet de blog où il livre quelques bonnes pratiques pour utiliser Kubernetes sur AWS avec Kops. AWS a aussi commencé à participer au développement du socle en upsteam, notamment via son partenariat avec Red Hat autour d’OpenShift, scellé en mai 2017.
« Le marché décidera – AWS est la plateforme où nombre d’entreprises veulent utiliser Kubernetes », assure encore Fintan Ryan.
Les développements de Kops décalés
Kairos AR, un fournisseur de solutions de reconnaissance faciale et d’algorithmes analytiques, basé à Miami, est justement un utilisateur de Kubernetes sur AWS. La société a mis en place un environnement de gestion de Kubernetes avec Terraform (HashiCorp) comme outil pour le code, Ansible (Red Hat) pour la gestion de la configuration, Calico pour le SDN, tout cela accompagné de scripts maison. L’équipe cherche toutefois à passer à Kops. « Notre configuration est un peu fragile », explique Cole Calistra, le CTO de Kairos. « A chaque mise à jour de Kubernetes, l’opération est difficile car nous devons être sûrs que toutes les dépendances et toutes les versions de Docker, Kubernetes et Calico correspondent. Avec Kops, tout cela est pris en compte, et vous en êtes débarrassé. »
Moins d’un mois après la version 1.7 de Kubernetes, son intégration à Kops est passée en Beta. Néanmoins, « mon expérience avec Kubernetes me pousse à attendre la version 1.7.1 ou 1.7 .2 et d’éviter les Alpha et les Beta », poursuit Cole Calistra.
« Une fois passé à Kops, la mise à jour du cluster ne sera plus aussi compliquée. Ce ne sera plus un souci de démarrer un nouveau cluster juste pour le tester. Aujourd’hui, nous avons un unique cluster qui n’était pas vraiment prévu pour supporter plusieurs environnements », ajoute-t-il.
Même avec Kops, la gestion de Kubernetes sur AWS pourrait être plus aboutie et doit encore combler son retard par rapport au Google Container Engine, constate le CTO. Par exemple, si on peut utiliser AWS Box pour intégrer AWS au scheduler de Kubernetes, il n’existe encore aucune console de gestion multi-clusters - répartis sur plusieurs régions AWS - dans Kops.
« Kubernetes peut également limiter la quantité de mémoire et de CPU d’un Pod dans un cluster», explique-t-il. AWS nécessite le recours à un contrôleur réseau, comme Calico. L’outil intégré à Kubernetes, Flannel, vient parfois se heurter aux limites d’AWS en matière de taille de tables de routage.
Les progrès de Kops – tout comme ceux de Kubeadm, un outil censé porter les avantages de Kops mais hors d’AWS – sont toutefois jugés trop lents par certains membres de la communauté. Kubeadm a également quelques problèmes d’intégration avec AWS, même s’il supporte déjà certains fonctions de Kubernetes 1.7, comme les fonctions de sécurité multi-tenant. Kops ne les supportera qu’avec la version 1.7.1.
« Nous faisons des progrès avec le cycle de versions de Kubernetes, mais cela reste encore un peu difficile », commente Joe Beda, l’un des créateurs de Kubernetes chez Google, aujourd’hui CTO de Heptio, un spécialiste du développement sur l’orchestrateur de containers. Kubernetes 1.7 est mieux préparé que les versions précédentes, mais il reste encore quelques ajustements à réaliser et des éléments à finaliser pour combler le retard. »