Qu'est ce que Kubernetes

Kubernetes logo

Qu'est ce que Kubernetes ?

Les avantages de Kubernetes ?

Sa robustesse, sa flexibilité, son écosystème riche, et sa capacité à gérer des déploiements à grande échelle.

Les inconvénients de Kubernetes ?

Peut être complexe à configurer et à gérer, nécessite une bonne compréhension des concepts d'orchestration et de conteneurisation.

Les caractéristiques de Kubernetes

Commun

  • Utilité (fonction) : Kubernetes est utilisé pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Il orchestre les conteneurs dans un environnement de cluster.

  • Langue de programmation : Principalement écrit en Go.

  • Système d‘exploitation : Multiplateforme (fonctionne sur Windows, macOS, Linux).

  • Existe depuis : Kubernetes a été initialement publié en juillet 2015.

  • Licence : Apache License 2.0.

  • Développeur : Google (initialement), maintenant maintenu par la Cloud Native Computing Foundation (CNCF) et la communauté open source.

  • Communauté : Grande communauté active avec de nombreux contributeurs, forums, conférences (KubeCon), groupes d'utilisateurs, et ressources en ligne.

  • Performance générale : Très bonne, avec des optimisations pour la gestion des conteneurs à grande échelle dans des environnements de production.

  • Maintenabilité : Élevée, grâce à une gestion centralisée des déploiements, des services et des configurations via des fichiers YAML ou JSON.

  • Facilité d'apprentissage : Peut être complexe pour les débutants, mais de nombreuses ressources sont disponibles pour l'apprentissage.

  • Configuration : Utilise des fichiers de configuration YAML ou JSON pour définir les déploiements, les services, les volumes, etc.

  • Documentation : Documentation exhaustive et officielle disponible sur le site kubernetes.io, ainsi que de nombreux livres et tutoriels en ligne.

  • Alternative : Alternatives incluent Docker Swarm, Apache Mesos, Nomad, et OpenShift (qui est basé sur Kubernetes).

  • On l'aime pour : Sa robustesse, sa flexibilité, son écosystème riche, et sa capacité à gérer des déploiements à grande échelle.

  • On le déteste pour : Peut être complexe à configurer et à gérer, nécessite une bonne compréhension des concepts d'orchestration et de conteneurisation.

  • Fréquence de mise à jour : Mises à jour régulières avec des versions mineures tous les quelques mois et des versions majeures environ tous les ans.

  • LTS : Non, Kubernetes ne propose pas de versions LTS officielles, mais les distributions basées sur Kubernetes comme OpenShift peuvent offrir des supports LTS.

  • Maturité : Mature, avec plusieurs années de développement et d'utilisation dans de nombreux projets en production.

Langage

  • Sécurité : Modérée, nécessite des pratiques de codage sécurisées et des vérifications manuelles pour éviter les vulnérabilités courantes comme les injections de script.

  • Installation : Installation via npm ou yarn, souvent automatisée avec Create React App.

DevOps

  • Compatible Azure : Oui

  • Compatible AWS : Oui

  • Compatible On Premise : Oui

  • Difficulté de mise en oeuvre : Facile à modérée

  • Difficulté de maintenance : Modérée

  • Pour quel type d'entreprise  : PME, Grandes entreprises

  • Automatisation : Oui

  • FAAS, CAAS, PAAS, IAAS : FAAS, CAAS, PAAS, IAAS (Permet de déployer des ressources sur chacunes des couches)

  • CI/CD : Utilisé pour hébergé une application lors du déploiement. Peut également être utilisé lors du CI pour héberger les Runners.