如何使用 manifest yaml 在 Kubernetes configmap 中挂载属性文件

How to mount the properties file in Kubernetes configmap using manifest yaml

我在 windows 10 上使用 minikube 并尝试使用文字类型和外部文件类型测试 Kubernetes ConfigMap。首先我制作下面的清单 yaml 文件来制作 ConfigMap。

apiVersion: v1
kind: ConfigMap  
metadata:
  name: simple-config
data:  
  mysql_root_password: password
  mysql_password: password
  mysql_database: test

---
apiVersion: v1
kind: Pod
metadata:
  name: blog-db  
  labels:
    app: blog-mysql  
spec:
  containers:
  - name: blog-mysql
    image: mysql:latest
    env:  
      - name: MYSQL_ROOT_PASSWORD
        valueFrom: 
          configMapKeyRef:
            name: simple-config
              key: mysql_root_password
      - name: MYSQL_PASSWORD
        valueFrom: 
          configMapKeyRef:
            name: simple-config 
            key: mysql_password
      - name: MYSQL_DATABASE
        valueFrom: 
          configMapKeyRef:
            name: simple-config
            key: mysql_database
    ports:
      - containerPort: 3306

上面的 configmap yaml 文件没有抛出任何错误。它成功地工作。这次尝试用file.

测试kubernetes configmap

== configmap.properties

mysql_root_password=password
mysql_password=password
mysql_database=test

但是我坚持这部分。大多数 configmap 示例使用带有 --from-file 选项的 kubectl 命令,如下所示,

kubectl create configmap simple-config --from-file=configmap.properties

但我不知道如何使用清单 yaml 文件语法挂载属性文件。有什么建议吗?

如果不先从属性创建 ConfigMap,就不能直接在 pod 中挂载属性文件 file.You 可以从 env 文件创建 configMap,如下所示

kubectl create configmap simple-config \
       --from-env-file=configmap.properties