По умолчанию все данные, хранящиеся в etcd, не зашифрованы, для производственных развертываний некоторые данные, хранящиеся в etcd, должны быть зашифрованы, например, секреты. Есть ли способ хранить секреты в зашифрованном виде, вetcd по умолчанию.
Для шифрования вам нужно указать apiserver сервис с этим параметром:
apiserver
--experimental-encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml
, где файл yaml содержит это:
kind: EncryptionConfig apiVersion: v1 resources: - resources: - secrets providers: - aescbc: keys: - name: key1 secret: ${ENCRYPTION_KEY} - identity: {}
здесьпровайдер - aescbc (самое надежное шифрование), а переменная генерируется раньше:
ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)
Просмотрите следующие документы:
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/06-data-encryption-keys.md (и следующие md-файлы)