Conclusion

Points forts de Kubernetes

  • Open source et très actif.
  • Une communauté très visible et présente dans l’évolution de l’informatique.
  • Un standard collectif qui permet une certaine interopérabilité dans le cloud.
  • Les pods tendent à se rapprocher plus d’une VM du point de vue de l’application.
  • Hébergeable de façon quasi-identique dans le cloud, on-premise ou en mixte.
  • Kubernetes a un flat network ce qui permet de faire des choses puissante facilement comme le multi-datacenter.
  • K8s est pensé pour la scalabilité et le calcul distribué.

Faiblesses de Kubernetes

  • Une difficulté à manier tout ce qui est stateful, comme des bases de données

    • …même si les Operators et les CRD (Custom Resources Definitions) permettent de combler cette lacune dans la logique stateless de k8s
  • Beaucoup de points sont laissés à la décision du fournisseur de cloud ou des admins système :

    • Pas de solution de stockage par défaut, et parfois difficile de stocker “simplement” sans passer par les fournisseurs de cloud, ou par une solution de stockage décentralisé à part entière (Ceph, Gluster, Longhorn…)

      • …même si ces solutions sont souvent bien intégrées à k8s
    • Beaucoup de solutions de réseau qui se concurrencent, demandant un comparatif fastidieux

      • …même si plusieurs leaders émergent comme Calico, Flannel, Weave ou Cilium
    • Pas de solution de loadbalancing par défaut : soit on se base sur le fournisseur de cloud, soit on configure MetalLB –>

Pour approfondir

Monitoring et logging

Avec Prometheus et la suite Elastic.

Déploiement continu

  • Exemple de workflow de déploiement continu (CD)
    • par exemple avec Gitlab (possiblement auto-hébergé dans K8s)
    • se connecter à un bastion
    • git pull
    • puis kubectl apply

Exemple de stack avancée

La Bitnami Kubernetes Production Runtime (BKPR).

  • Monitoring avec Prometheus et Grafana
  • Logging avec Elasticsearch, Kibana et Fluentd
  • HTTPS ingress avec Nginx, ExternalDNS, Cert-Manager et oauth2_proxy