Aller au contenu

Kubernetes

Ces notes sont complémentaires aux slides du cours DevOps avec Kubernetes.

Distributions

Pour découvrir en local :

Clients

Pods

Le concept de Pods est introduit dans les slides du cours DevOps avec Kubernetes et à l'aide d'exemples (mborne/k8s-exemples - Pod).

Il est intéressant dans un second temps de s'intéresser aux concepts suivants :

  • Les init containers pouvant être exploité pour :

    • Préparer des données en disposant d'outils supplémentaires (ex : télécharger un fichier avec curl)
    • Retarder le démarrage d'un conteneur (ex : attente du démarrage d'un service, de la fin de l'exécution d'un traitement,...)
    • Traiter des aspects de sécurité (ex : consommation de secret, isolation du main conteneurs,...)
  • Les liveness, readiness et startup probes utilisées pour surveiller le bon fonctionnement des conteneurs.

Charges de travail

Les concepts suivants relatif à la gestion des Pods sont présentés dans les slides :

Remarque :

Exposition de services

Les concepts suivants sont présentés dans les slides :

Gestion de la configuration

Pour la gestion de la configuration, nous trouvons principalement les concepts suivants permettant d'injecter des variables d'environnements et des fichiers de configuration dans les conteneurs :

Remarques :

  • La présence d'un type distinct entre ConfigMap et Secret permet principalement de limiter les accès à ces derniers (RBAC).
  • Les secrets ne sont pas chiffrés (simple encodage en base64)

Les volumes et le stockage

c.f. Kubernetes - les volumes et le stockage qui présente les concepts correspondants (PersistentVolume, PersistentVolumeClaim, StorageClass,...)

Authenfication

c.f. kubernetes.io - Authenticating qui présente le modèle utilisateur (username: string, groups: string[],...) et le concept de ServiceAccount.

Gestion des droits

c.f. kubernetes.io - Using RBAC Authorization qui présente les concepts :

  • Role et ClusterRole permettant de définir les actions autorisées ("get", "watch", "list",...) sur les différentes resources ("pods", "services",...)
  • RoleBinding et ClusterRoleBinding permettant d'associer les Role et ClusterRole aux utilisateurs.

Ressources

Documentation officielle :

Formations :

Articles et vidéos :

Outils :