Kubernetes 1.14 apporte une extension de l'écosystème qui passe de Linux-only
à la prise en charge des conteneurs Windows
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
Côté infrastructure réseauEnvoyé par Red Hat
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
Personnaliser les plugins kubectlEnvoyé par Crickenberger
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
Pod Ready Plus Plus pour plus de maturation et de stabilitéEnvoyé par Red Hat
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
Partager