Spring on Kubernetes 最佳实践(五)外部化配置

  • 通常一个应用程序的一些配置,如数据库配置在不同的环境下使用不同的配置,那么这些配置不应该写在应用程序源代码内。
  • Kubernetes提供了config mapssecrets来配置额外的配置
  • 可以使用Kubectl命令创建config mapssecrets
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

你可能感兴趣的:(Spring on Kubernetes 最佳实践(五)外部化配置)