Kubernetes 存储了集群状态、应用配置和密钥等很多不同的数据。而 Kubernetes 也支持集群数据的加密存储。

本部分将会创建加密密钥以及一个用于加密 Kubernetes Secrets 的 加密配置文件

加密密钥

建立加密密钥:

  1. ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)

加密配置文件

生成名为 encryption-config.yaml 的加密配置文件:

  1. cat > encryption-config.yaml <<EOF
  2. kind: EncryptionConfig
  3. apiVersion: v1
  4. resources:
  5. - resources:
  6. - secrets
  7. providers:
  8. - aescbc:
  9. keys:
  10. - name: key1
  11. secret: ${ENCRYPTION_KEY}
  12. - identity: {}
  13. EOF

encryption-config.yaml 复制到每个控制节点上:

  1. for instance in controller-0 controller-1 controller-2; do
  2. gcloud compute scp encryption-config.yaml ${instance}:~/
  3. done

下一步:部署 etcd 群集