Kubernetes хранит самые разные данные, в том числе состояние кластера, конфигурации приложений и секреты. Kubernetes поддерживает возможность зашифровать такие данные.
В этой лабораторной вы сгенерируете конфиг подходящий для шифрования Kubernetes Secrets.
Сгенерируйте ключ шифрования.
ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)
Создайте encryption-config.yaml
.
cat > encryption-config.yaml <<EOF
kind: EncryptionConfig
apiVersion: v1
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: ${ENCRYPTION_KEY}
- identity: {}
EOF
Скопируйте encryption-config.yaml
на каждый контроллер:
for instance in controller-0 controller-1 controller-2; do
EXTERNAL_IP=$(yc compute instance get ${instance} --format json | jq '.network_interfaces[0].primary_v4_address.one_to_one_nat.address' -r)
for filename in encryption-config.yaml; do
scp $filename yc-user@$EXTERNAL_IP:~/
done
done
Дальше: Развертывание кластера etcd