Kubernetes 1.14 apporte une extension de l'écosystème qui passe de Linux-only
à la prise en charge des conteneurs Windows

Le , par Stéphane le calme

213PARTAGES

8  0 
Kubernetes est un système open source pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Conçu à l'origine par Google, son développement a été confié à la fondation open source Cloud Native Computing Foundation (CNCF), ce qui a permis aujourd'hui à la technologie d'orchestration de conteneurs de gagner rapidement en maturité, grâce aux contributions des géants de la technologie (comme AWS, Oracle, IBM, Microsoft, Alibaba et VMware) et bien d'autres entreprises importantes.

Hier, l’équipe responsable de son développement a indiqué la disponibilité de Kubernetes 1.14 qui comprend 31 améliorations. Les principaux thèmes de cette version sont l'extensibilité et la prise en charge de davantage de charges de travail sur Kubernetes, avec trois fonctionnalités principales passant à la disponibilité générale et une fonctionnalité de sécurité importante passant à la version bêta.

« Ce dont je suis le plus fier, c'est que cette version apporte les améliorations les plus stables de toutes les versions de Kubernetes », a déclaré Aaron Crickenberger, ingénieur principal des tests chez Google. « Vous avez entendu dire que Kubernetes était axé sur la stabilité et la maturité et je pense que vous commencez à voir les résultats de ce travail avec cette version ».

« Cet effort a vraiment été centré sur la modification des proxy Kubelet et Kube afin que Windows soit pris en charge en tant que système d'exploitation et que la capacité de Docker sur Windows soit correctement prise en compte », a déclaré Michael Michael de Microsoft.

Extension de l'écosystème de Linux uniquement à la prise en charge des conteneurs Windows

Kubernetes a deux composants clés: un ensemble de noeuds maîtres agissant en tant que plan de contrôle et un ensemble de noeuds jouant le rôle de chevaux de trait exécutant des charges de travail conteneurisées. Lorsqu'une charge de travail composée de plusieurs conteneurs est déployé sur Kubernetes, le plan de contrôle choisit un ou plusieurs noeuds de travail pour héberger les conteneurs. Jusqu'à présent, les nœuds maître et travailleur ne pouvaient s'exécuter que sur les distributions de systèmes d'exploitation Linux classiques telles qu'Ubuntu, Red Hat Enterprise Linux et CentOS. Cela signifie que les applications ayant un besoin spécifique pour Microsoft Windows ne peuvent pas être déployées sur Kubernetes.


Il y a quelques années, Microsoft s'est embarqué dans un voyage pour faire des conteneurs des citoyens de première classe dans le monde Windows. Il s'est associé à Docker pour apporter à Windows un moteur de conteneur compatible afin de fournir aux développeurs et aux opérateurs un flux de travail familier et cohérent. La société a retenu les services de Brendan Burns, l'un des cofondateurs de Kubernetes, chez Google, pour se concentrer exclusivement sur les conteneurs Windows et le service Azure Kubernetes (AKS). Depuis lors, Microsoft contribue activement à Kubernetes et à l'écosystème natif du cloud.

La prise en charge de Microsoft Windows dans la dernière version de Kubernetes permet aux clients de mélanger et d’apparier des machines Linux et Windows dans le même cluster. Ils peuvent désormais créer des applications cloud computing basées sur des microservices qui utilisent le runtime .NET traditionnel avec des plateformes modernes telles que Go. Microsoft est censé annoncer la prise en charge des nœuds Windows Server sur son service Kubernetes géré, AKS.

Red Hat s’est réjoui de cette avancé en ces termes

Citation Envoyé par Red Hat
Le projet Kubernetes a toujours consisté à gérer des charges de travail à grande échelle à l'aide de conteneurs Linux. Au fil du temps, de nombreux sous-projets ont été créés pour gérer tout, du stockage de données au réseau en passant par la surveillance, mais une chose est toujours restée la même: Kubernetes utilisait des conteneurs Linux.

Dans un changement majeur pour Kubernetes dans son ensemble, la version 1.14 prend en charge la gestion des conteneurs Windows de la version bêta à la version stable. C’est l’aboutissement d’un travail considérable au cours de l’année écoulée au sein d’un certain nombre de groupes d’intérêts spéciaux (SIG) Kubernetes, notamment Windows, Node et Architecture. Le résultat est que Kubernetes, la plateforme d'orchestration de conteneurs open source la plus populaire pour Linux, vient maintenant à Windows. Red Hat félicite Microsoft et la communauté élargie d'avoir atteint ce jalon important en matière de publication.

La communauté a travaillé dur pour permettre cette expansion majeure de l'écosystème Kubernetes. Pour Red Hat, cela signifie un engagement ouvert à prendre en charge des charges de travail sur des clouds. Ces modifications sont planifiées pour les futures versions de Red Hat OpenShift Container Platform.
Côté infrastructure réseau

La deuxième grande partie concernait l'infrastructure de réseau. Avec l’ajout de la CNI (Container Networking Interface), l’infrastructure réseau devait également bien fonctionner sous Windows. Cela impliquait une intégration avec de nombreux fournisseurs de réseaux et plug-ins de réseau pour garantir la publication d'une version de leurs interfaces réseau qui fonctionne également sous Windows. Cet effort est en cours.

Kubernetes 1.14 comprend:
  • la prise en charge de Windows Server 2019 pour les nœuds de travail et les conteneurs
  • la prise en charge de la mise en réseau en dehors de l'arbre avec Azure-CNI, OVN-Kubernetes et Flannel, les travaux se poursuivant pour inclure Calico ainsi que d'autres fournisseurs de réseaux populaires
  • la prise en charge améliorée des pods, types de service, contrôleurs de charge de travail et métriques / quotas afin de mieux correspondre aux fonctionnalités offertes par les conteneurs Linux

Selon Michael, la plupart des entreprises combinent des charges de travail Windows et Linux, ce qui stimule la demande de support Windows.

« Si vous êtes une entreprise et que vous avez à la fois des applications Linux et Windows, vous ne voulez pas utiliser deux orchestrateurs différents. Vous souhaitez adopter des méthodologies natives pour le cloud dans vos deux écosystèmes », a-t-il déclaré.


Les autres améliorations

Parmi les améliorations:
  • La documentation de kubectl a été réécrite en mettant l’accent sur la gestion des ressources à l’aide de la configuration déclarative des ressources. Elle est disponible sous forme de livre avec un lien depuis la documentation principale de Kubernetes. Il existe également un logo et une mascotte kubectl appelés kubee-cuddle.
  • Les capacités de création déclaratives de la configuration des ressources de l'outil de configuration kustomize YAML sont disponibles dans kubectl à l'aide de l'indicateur -k pour des commandes telles que apply. Kustomize aide les utilisateurs à écrire et à réutiliser Resource Config à l'aide des concepts natifs de Kubernetes. La documentation de ces nouvelles fonctionnalités est disponible.
  • Le mécanisme kubectl est désormais disponible en version stable. Il permet aux développeurs de publier leurs propres sous-commandes kubectl personnalisées en tant que fichiers binaires autonomes.
  • Les volumes locaux persistants sont maintenant en version stable. Ils rendent disponible le stockage attaché localement en tant que source de volume persistant.
  • Les ID de processus (PID) passent à la version bêta. Cette solution permet aux administrateurs de fournir une isolation PID de pod à pod en définissant par défaut le nombre de PID par pod. Une fonctionnalité alpha supplémentaire est la possibilité de réserver un certain nombre de PID alloués aux pods utilisateurs.
  • La priorité et la préemption des pods permettent au planificateur Kubernetes de planifier le travail par priorité et de supprimer les pods moins importants si nécessaire.
  • Pod Readiness Gates Introduit un point d’extension pour les commentaires externes sur l’état de préparation des pods.
  • Cette version apporte le renforcement par défaut des liaisons de rôle de cluster de découverte RBAC. Cela était largement motivé par la vulnérabilité de Kubernetes identifiée en novembre. Elle supprime la découverte de l'ensemble des API permettant un accès non authentifié par défaut.


Au total, la version inclut 31 améliorations: 10 qui sont désormais en versions stables, 12 en version bêta et sept nouvelles.


Crickenberger a commenté en ce sens

Citation Envoyé par Crickenberger
L'inclusion de Windows en tant que charge de travail potentielle signifie que nous avons vraiment dû définir plus précisément ce que Kubernetes prend en charge et ne prend pas en charge dans certains environnements. Je pense que des fonctionnalités telles que Pod Readiness Gates et la priorité et la préemption des pods seront très utiles pour permettre aux gens d'orchestrer des charges de travail avancées. Certaines applications peuvent avoir besoin de moyens très spécifiques pour indiquer si elles sont prêtes à gérer le trafic et ces fonctionnalités leur apportent ces moyens.
Personnaliser les plugins kubectl

Les améliorations apportées à Kubectl fournissent un moyen natif kube de le faire grâce à une sous-commande personnalisée qui leur permettra de gérer plus efficacement les ressources ainsi que les plug-ins spécifiant leurs propres charges de travail. En fait, Kubectl est le couteau suisse dont se servent les utilisateurs de Kubernetes. C’est l’outil en ligne de commande pour gérer le cluster et les applications. Kubectl inclut désormais la prise en charge des plug-ins et des options d'extensibilité via une nouvelle extension appelée Kustomize.

À ce propos, Red Hat déclare

Citation Envoyé par Red Hat
La promotion de la version bêta vers la version stable des plugins de Kubectl continue d’être élargie. Ce mécanisme de plug-in permet aux développeurs d'écrire du code Go pour étendre kubectl avec de nouvelles commandes. En pratique, cela fonctionne de la même manière que la manière dont git peut être étendu.

Au cours du développement, l’équipe Red Hat OpenShift a utilisé divers plugins kubectl pour aider au débogage de la prochaine version d’OpenShift 4. Les plugins peuvent être conçus pour effectuer diverses tâches sur le cluster afin de créer des commandes plus avancées permettant d’améliorer le dépannage et la gestion. collecter des instruments. Nous sommes impatients de voir ce que la communauté construit.
Pod Ready Plus Plus pour plus de maturation et de stabilité

Pod Ready ++ est un nouvel état de préparation allant au-delà de la préparation normale du conteneur. Cet état est communiqué par les pods pour indiquer qu'ils sont en fait prêts à servir le trafic. Auparavant, certains utilisateurs rencontraient des scénarios dans lesquels les pods se déclaraient prêts, alors qu'ils n'étaient pas tout à fait prêts à recevoir le trafic réseau en raison de divers facteurs environnementaux pouvant entraîner une interruption du service. Pod Ready ++ indique que le pod est actuellement prêt à recevoir du trafic, atténuant ce risque.

Sources : blog Kubernetes, Red Hat, Ubuntu

Voir aussi :

DigitalOcean kubernetes, un nouveau service de conteneur ouvert au public et développé par DigitalOcean
Kubernetes touché par une faille critique pouvant provoquer une escalade de privilège, des correctifs sont disponibles pour le système d'orchestration
Google cède le contrôle opérationnel de Kubernetes à la communauté, qui devra désormais supporter les coûts d'infrastructure cloud du projet

Une erreur dans cette actualité ? Signalez-le nous !

Programmation : les travailleurs doivent-ils disposer d'un plan B avant leurs 40 ans ?
Flutter, le framework UI de Google, serait-il meilleur que React Native de Facebook
Les développeurs logiciels actifs sont actuellement estimés à un peu moins de 19 millions dans le monde, 13 millions d'entre eux seraient des pros
Typo et design pour écran de collectif, un livre de Laurence Seguin, critique de David Bleuse
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web