- 通常一个应用程序的一些配置,如数据库配置在不同的环境下使用不同的配置,那么这些配置不应该写在应用程序源代码内。
- Kubernetes提供了config maps和secrets来配置额外的配置
- 可以使用Kubectl命令创建config maps和secrets
kubectl create configmap log-level --from-literal=LOGGING_LEVEL_ORG_SPRINGFRAMEWORK=DEBUG
kubectl get configmap log-level -o yaml
apiVersion: v1
data:
LOGGING_LEVEL_ORG_SPRINGFRAMEWORK: DEBUG
kind: ConfigMap
metadata:
creationTimestamp: "2020-04-19T09:05:17Z"
name: log-level
namespace: default
resourceVersion: "320968"
selfLink: /api/v1/namespaces/default/configmaps/log-level
uid: 1749c329-41ea-49f6-93d0-13cba124599c
在我们的应用程序中使用Config Maps
修改我们的deployment.yaml文件
apiVersion: apps/v1
kind: Deployment
...
spec:
...
template:
...
spec:
containers:
name: k8s-demo-app
envFrom:
- configMapRef:
name: log-level
...
使用skaffold dev命令测试,输出流里面会看到DEBUG level 的log
删除Config Map
kubectl delete configmap log-level