Sobes.tech
Junior

Kubernetes-ში secrets და configmaps შორის რა განსხვავებაა?

sobes.tech AI

პასუხი AI-სგან

სკრიტები გამოიყენება მგრძნობიარე ინფორმაციის შენახვისთვის, როგორიცაა პაროლები, API გასაღებები, სერთიფიკატები. ისინი კოდირებულია base64-ით (მიუხედავად იმისა, რომ ეს მონაცემების დაშიფვრა არაა დასვენების დროს, არამედ უბრალოდ კოდირება) და მუშავდება Kubernetes-ით უფრო მაღალი უსაფრთხოების დონეზე (მაგალითად, პირდაპირ არ ჩანს ლოგებში).

ConfigMaps-ები გამოიყენება არასენსიტიურ კონფიგურაციის ინფორმაციის შენახვისთვის, როგორიცაა სერვისების URL-ები, ლოგირების პარამეტრები, კონფიგურაციის ფაილები. ისინი ინახება კილტ-ფართო ან როგორც სრული ფაილები. ConfigMaps-ებისთვის დამატებითი დაცვის ზომები არ არის გათვალისწინებული:

პარამეტრი სკრიტები (Secrets) ConfigMaps
მიზანი მგრძნობიარე ინფორმაციის შენახვა არასენსიტიური კონფიგურაციის შენახვა
კოდირება base64 (ნაგულისხმევი) არა
უსაფრთხოება გაზრდილი (არ ჩანს ლოგებში და ა.შ.) სპეციფიკური უსაფრთხოების ზომები არაა
მაგალითები პაროლები, ტოკენები, გასაღებები, სერთიფიკატები გარემოს ცვლადები, კონფიგურაციის ფაილები

ორივე ობიექტი შეიძლება იყოს მონტაჟირებული პოდში როგორც ფაილები ან გარემოს ცვლადები:

# სკრიტის მონტაჟის მაგალითი გარემოს ცვლადად
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    env:
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password
# ConfigMap-ის ფაილად მონტაჟის მაგალითი
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: my-image
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: my-app-config