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

时间:2020-03-29 09:59:49

标签: kubernetes configmap

我在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文件未引发任何错误。它工作成功。这次我尝试使用文件测试kubernetes configmap。

== configmap.properties

mysql_root_password=password
mysql_password=password
mysql_database=test

但是我坚持这部分。大多数configmap示例都将kubectl命令与--from-file选项一起使用,如下所示,

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

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

1 个答案:

答案 0 :(得分:2)

在未先从属性文件创建ConfigMap的情况下,不能直接在Pod中挂载属性文件。可以从如下的env文件创建ConfigMap

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