Kubernetes Config'i anlama Haritalar

Tamamlandı

Uygulama deposunda, ortam değişkenlerinin tam görüntü derlemesine gerek kalmadan güncelleştirilebilmesini sağlamak için dosyaya yüklenmiş index.html bir yapılandırma dosyası vardır.

Yapılandırma dosyası hassas bilgiler içermez, yalnızca kapsayıcıyla birlikte yüklenmesi gerekir. Dosyayı şifreleme veya kodlama olmadan kapsayıcıya nasıl bağlayabilirsiniz?

ConfigMap'leri anlama

Yapılandırma Haritalar Gizli Dizilerin karşılığıdır. Gizli Diziler hassas verileri depolamak ve teslim etmek için bir yol sağlarken, Yapılandırma Haritalar gizli diziyle aynı anahtar-değer yapısını kullanarak duyarsız verileri depolamak için bir yol sağlayan nesnelerdir. Config Haritalar nesnesi, görüntülerin durum bilgisi olmayan kalması için yapılandırmaları kapsayıcı görüntülerinden ayırmanıza olanak tanır.

Yapılandırma verilerini uygulama kodundan ayrı olarak depolamak ve Pod'a Gizli dizi nesnelerini yükleme şekline benzer şekilde yüklemek için bir ConfigMap oluşturursunuz. Config Haritalar'e yalnızca bir ortam değişkeni kullanarak veya bunları kapsayıcı içindeki bir birime dosya olarak ekleyerek başvurabilirsiniz.

Yapılandırma Haritalar veri boyutu sınırlaması vardır: ConfigMap'te en fazla 1 MiB veri tutabilirsiniz. Boyut sınırlaması, büyük yapılandırmaları daha küçük parçalara ayırmanızı sağlayarak büyük, karmaşık yapılandırma dosyalarını önlemenize yardımcı olur. Yapılandırma Haritalar ile kapsayıcılarınıza yalnızca gerekli yapılandırma dosyalarını bağlayabilirsiniz ve bu da daha ayrıntılı olmasını sağlar.

ConfigMap'ler de gizli diziler gibi ad alanına özgüdür. ConfigMap'e yalnızca içinde oluşturulduğu ad alanında bulunan kapsayıcıları kullanarak erişebilir ve bağlayabilirsiniz.

Yapılandırma Haritalar helm ve Kubernetes işleçleri gibi diğer araçlar tarafından da durumları depolamak ve okumak için yaygın olarak kullanılır.

ConfigMap güncelleştirmeleri

Pod içinde birim olarak bağlanmış tüm ConfigMap'ler, değerleri değiştirildiğinde otomatik olarak güncelleştirilir. Bu değişiklik Kubelet yapılandırması nedeniyle hemen gerçekleşmeyebilir, ancak podu yeniden başlatmaya gerek kalmaması için otomatik olarak gerçekleşir.

ConfigMap ortam değişkenlerine bağlı olduğunda otomatik olarak güncelleştirilmez. Bu durumlarda değişikliklerin etkili olması için Pod'un yeniden başlatılması gerekir.

Yapılandırma oluşturma ve kullanma Haritalar

Gizli Dizi ile aynı yaklaşımı kullanarak bir ConfigMap oluşturabilirsiniz: YAML dosyası. ConfigMap belirtimi aşağıdaki gibidir:

apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap-name
  namespace: default
data:
  key-name: "value as key"
  key.name: |
    multi line
    property, called "file-like" values

Aşağıdaki örnekte gösterildiği gibi, Pod veya Dağıtım belirtiminde bir veya daha fazla anahtara göre Yapılandırma Haritalar başvurabilirsiniz:

apiVersion: v1
kind: Pod
metadata:
  name: configmap-as-env
  namespace: default
spec:
  containers:
    - name: configmap-env
      image: alpine
      command: ["sleep", "3600"]
      env:
        - name: ENVIRONMENT_VARIABLE_NAME
          valueFrom:
            configMapKeyRef:
              name: configmap-name
              key: key-name

Ayrıca, aşağıdaki örnekte gösterildiği gibi salt okunur birimleri kullanarak bunları pod içinde dosya olarak da bağlayabilirsiniz:

apiVersion: v1
kind: Pod
metadata:
  name: configmap-as-env
  namespace: default
spec:
  containers:
    - name: configmap-env
      image: alpine
      command: ["sleep", "3600"]
      volumeMounts:
      - name: volume-name
        mountPath: "/path/to/mount"
        readOnly: true
  volumes:
    - name: volume-name
      configMap:
        name: configmap-name
        items:
        - key: "key-name"
          path: "path/to/mount/the/key"

Bilgilerinizi kontrol edin

1.

ConfigMap'leri neden kullanmalıyız?

2.

ConfigMap'ler bir uygulamada nasıl kullanılabilir?

3.

ConfigMap'ler için ad alanı sınırlaması var mıdır?