配置与存储
配置和密码不该写死在镜像里:ConfigMap 存非敏感配置(连接池、开关),Secret 存敏感信息(密码、密钥,base64 编码)。
ConfigMap
kubectl create configmap 名称 --from-literal=键=值 或 --from-file=配置文件。Pod 里用 envFrom 注入或挂载成文件。
Secret
创建时值要 base64 编码,K8s 存储和传输加密。Pod 里挂载成环境变量或文件。
代码示例
# ConfigMap
kubectl create configmap app-config
--from-literal=APP_NAME=codecourse
--from-literal=DEBUG=false
# Secret
echo -n "mypassword" | base64 # 得到编码值
kubectl create secret generic db-secret
--from-literal=DB_PASSWORD=bXlwYXNzd29yZA==
# 在 Deployment 中使用
# spec:
# containers:
# - name: app
# envFrom:
# - configMapRef:
# name: app-config
# - secretRef:
# name: db-secret