Gouvernance des micro-services : Kubernetes dispose aussi des bons services
L'orchestrateur de containeurs Kubernetes peut aussi être utile pour une architecture de micro-services et apporter des fonctions de gouvernance du registre de services.
Le registre de services se situe entre un client et un serveur et contrôle l'accès entre ces deux éléments sur le réseau. C'est une partie essentielle de la pile applicative et cela a un impact important sur l'expérience utilisateur final. Avec la montée en puissance des micro-services dans les architectures d’entreprise, le rôle du registre de services est devenu central, car le nombre de services qui doivent communiquer a augmenté de façon exponentielle.
Il est nécessaire d’adapter et de réorganiser ces registres pour qu’ils puissent fonctionner en toute transparence dans un environnement de micro-services. Plus important encore, leur gouvernance doit aussi être ajustée. Et dans ce cas, une solution aussi moderne que Kubernetes peut représenter une option de choix.
Kubernetes : une découverte dynamique des services
Dans une architecture de micro-services, les containers sont éphémères. Lorsqu’ils ne sont plus à jour ou sont corrompus, ils sont supprimés et de nouveaux prennent automatiquement leur place. C'est ce qui permet de maintenir la disponibilité des services.
Kubernetes attribue automatiquement une adresse IP à chaque groupe de containers, ou pods - comme Kubernetes les appelle. Au fur et à mesure que les containers et les pods sont remplacés par de nouveaux containers, de nouvelles adresses IP sont attribuées automatiquement et ces containers s’auto-enregistrent avec ces nouvelles adresses. Parce que le système suit en permanence ces changements d'adresses IP, la découverte de services Kubernetes est dynamique et fonctionne bien à l'échelle des micro-services. Kubernetes utilise SkyDNS pour mapper les requêtes sur les services en fonction de l'adresse IP.
Les services sont inspectés par le kubelet
Les services sont interconnectés et ont donc un impact les uns sur les autres - en diffusant les vulnérabilités ou en contournant les ressources les uns des autres. Il est important de s'assurer que seuls des services sains fonctionnent dans votre système. Les services malsains doivent être supprimés ou remplacés.
Avec Kubernetes, ceci est effectué grâce au kubelet. Kubelet est un composant essentiel du système Kubernetes. Il inspecte chaque pod pour s'assurer que les contenants sont sains.
Les requêtes sont réparties par kube-proxy
Lorsque les applications sont bombardées de trafic Web, elles doivent router les requêtes de façon égale entre les services. Dans ce cas, le load-balancing est effectué via la découverte de service ; il garantit que le trafic envoyé à une instance est équilibré comparé à toute autre instance qui fournit le même service. Dans un environnement Kubernetes, cela est assuré par kube-proxy.
Avec ses capacités de découverte de services, d'inspection et de load-balancing, Kubernetes fournit les composants d'un excellent modèle de gouvernance pour une application moderne basée sur les micro-services. Combinés, ces trois éléments ont le potentiel de faire fonctionner des millions de containers.