Secret et ConfigMap

Nous avons vu que nous écrivons les variables d’environnement directement dans la définition des pods (template de pod). Il est toujours préférable d’externaliser les fichiers de configuration, c’est à cela que servent ConfigMap et Secret. ConfigMap Kubernetes:ConfigMap Secret Kubernetes:secret

images/chap06_009.png

Figure 9 : ConfigMaps et Secret

Il est possible de stocker des couples variable/valeur dans des objets de type ConfigMap et Secret. Mais là où un ConfigMap stocke les informations directement au format texte et en clair, un secret demande une valeur encodée au format base64, par exemple :

mysql_root_password: cjAwdC1hZWtpZThhaHdhaV8= 

Le stockage dans la base etcd est également différent, car les secrets sont chiffrés dans la base si l’option est activée dans kube-apiserver (--encryption-provider-config). 

L’encodage en base64 n’est pas un chiffrement sécurisé. Il s’agit d’un changement de référentiel de codage de l’information. Les informations binaires historiquement sur 8 bits passent sur 7 bits, c’est un chiffrement qui a pour but d’éviter les soucis de caractères spéciaux pouvant être mal interprétés lors des transferts réseau.

Il est également possible de stocker des fichiers dans les deux types d’objets.

Dans un ConfigMap :

apiVersion: v1 
kind: ConfigMap 
metadata: ...
Pour consulter la suite, découvrez le livre suivant :
couv_EPHADIS.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Services et Endpoints
Suivant
StatefulSet