Sobes.tech
Junior

Ինչ է ConfigMap-ը Kubernetes-ում?

sobes.tech AI

Պատասխան AI-ից

ConfigMap-ը API օբյեկտ է, որը օգտագործվում է ոչ-գաղտնի տվյալների պահեստավորման համար key-value զույգերով Kubernetes-ում: Այն թույլ է տալիս առանձնացնել հավելվածի կոնֆիգուրացիան կոնտեյների պատկերից, ինչը դարձնում է հավելվածները ավելի փոխանցելի և հեշտացնում կոնֆիգուրացիայի կառավարումը.

Data-ները ConfigMap-ում կարող են օգտագործվել հետևյալ կերպ.

  • Կոնտեյների շրջակա միջավայրի փոփոխականներում.
  • Կոնտեյերի հրամանների տողում:
  • Ոտքի վրա մոնտաժվող ֆայլերի տեսքով:

ConfigMap-ի ստեղծման օրինակ՝ ֆայլից:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
data:
  my-config-file.properties: |
    database.url=jdbc:mysql://localhost:3306/mydatabase
    database.username=mydbuser
    database.password=secret

ConfigMap-ի օգտագործում Pod-ում շրջակա միջավայրի փոփոխականների միջոցով:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app
    image: my-app-image
    env:
    - name: DATABASE_URL
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: database.url
    - name: DATABASE_USERNAME
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: database.username

ConfigMap-ի օգտագործում Pod-ում ֆայլի մոնտաժման միջոցով:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app
    image: my-app-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: my-config

Հիմնական առանձնահատկությունները՝

  • Օգտագործվում է ոչ-գաղտնի տվյալների համար: Գաղտնի տվյալների համար օգտագործեք Secrets:
  • Դինամիկ կերպով թարմացնում է կոնֆիգուրացիան՝ առանց պատկերի վերանախագծման:
  • Data-ների չափը սահմանափակ է (հիմնականում 1 ՄԲ):
  • Կան որոշ փոփոխություններ ConfigMap-ում, որոնք կարող են պահանջել Pod-ի վերագործարկում՝ դրանց կիրառման համար (շրջակա միջավայրի փոփոխականները պահանջում են վերագործարկում, ֆայլի մոնտաժումը՝ կարող է լինել դինամիկ):