配置管理
ConfigMap配置
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
database.properties: |
db.host=mysql
db.port=3306
db.name=myapp
app.properties: |
app.name=MyApplication
app.version=1.0.0
---
# 在Pod中使用ConfigMap
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
containers:
- name: app
image: myapp:latest
env:
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: app-config
key: db.host
volumeMounts:
- name: config-volume
mountPath: /app/config
volumes:
- name: config-volume
configMap:
name: app-config
Secret配置(敏感数据)
# 创建Secret(命令行方式)
kubectl create secret generic db-secret \
--from-literal=username=admin \
--from-literal=password=secret123
# 或使用YAML(需base64编码)
apiVersion: v1
kind: Secret
metadata:
name: db-secret
type: Opaque
data:
username: YWRtaW4= # base64编码的admin
password: c2VjcmV0MTIz # base64编码的secret123
---
# 在Pod中使用Secret
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
containers:
- name: app
image: myapp:latest
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-secret
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password