Aller au contenu

Kubernetes

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

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 :