Kubernetes configMap(配置文件存儲)


Kubernetes configMap(配置文件存儲)

官方文檔:https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/

與Secret類似,區別在於ConfigMap保存的是不需要加密配置信息。
應用場景:應用配置

創建測試配置文件

1、創建測試配置文件
vim redis.properties

redis.host=127.0.0.1
redis.port=6379
redis.password=123456

2、通過命令創建引用配置文件

kubectl create configmap redis-config --from-file=./redis.properties

3、查看創建的配置文件
kubectl get cm

NAME DATA AGE
redis-config 1 8s

4、查看詳細信息
kubectl describe cm redis-config

Name: redis-config
Namespace: default
Labels: <none>
Annotations: <none>

Data
====
redis.properties:
----
redis.host=127.0.0.1
redis.port=6379
redis.password=123456

Events: <none>

通過volume導入方式

1、創建yaml文件
vim cm.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      # 指定保存的配置文件
      configMap:
        # 配置文件名稱
        name: redis-config
  restartPolicy: Never

2、創建容器

kubectl create -f cm.yaml 

3、查看結果
kubectl logs mypod

redis.host=127.0.0.1
redis.port=6379
redis.password=123456

通過變量名方式

1、創建yaml文件
vim myconfig.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  # 指定命名空間
  name: myconfig
  namespace: default
# 指定level type
data:
  # 指定變量 value則是配置文件的配置
  special.level: info
  special.type: hello

2、創建容器

kubectl create -f myconfig.yaml

3、查看創建
kubectl get cm

NAME DATA AGE
myconfig 2 23s
redis-config 1 11m

4、創建pod yaml
vim config-var.yaml

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: busybox
      image: busybox
      command: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]
      env:
        - name: LEVEL
          valueFrom:
            # 通過key加載配置文件
            configMapKeyRef:
              # 使用的key
              name: myconfig
              key: special.level
        - name: TYPE
          valueFrom:
            configMapKeyRef:
              # 使用的type
              name: myconfig
              key: special.type
  restartPolicy: Never

5、查看驗證
kubectl logs mypod

info hello

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM