配置与存储

Kubernetes 教程 · 第 5 章 · 5 次浏览

配置和密码不该写死在镜像里: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