CodeBlanks Logo Icon CodeBlanks

Secret bağlama

Secret'i environment veya volume olarak bağlamayı öğrenirsin.

Secret bağlama

Secret'lar container'a ConfigMap'le aynı yollarla verilir: secretKeyRef/secretRef ile ortam değişkeni ya da volume olarak dosya. Dosya olarak bağlamak daha güvenlidir: ortam değişkenleri çökme dökümlerinde ve alt süreçlerde görünebilir.

          env:
            - name: DB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: db-gizli
                  key: DB_PASSWORD
          volumeMounts:
            - name: tls
              mountPath: /etc/tls
              readOnly: true
      volumes:
        - name: tls
          secret:
            secretName: web-tls

Dosya izinleri

Secret volume'ündeki dosyaların izinleri defaultMode ile kısıtlanabilir (sekizlik değer). Böylece yalnızca dosya sahibi okuyabilir:

      volumes:
        - name: tls
          secret:
            secretName: web-tls
            defaultMode: 0400

$ kubectl exec web -- ls -l /etc/tls/
-r-------- 1 root root  ... tls.crt
-r-------- 1 root root  ... tls.key

Uygulama Parolayı ver

Bir container bölümü yaz (containers: ile başlayarak): container adı api, image api:1.0; env altında DB_PASSWORD değişkeni secretKeyRef ile db-gizli Secret'ının DB_PASSWORD anahtarından.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
containers:
  - name: api
    image: api:1.0
    env:
      - name: DB_PASSWORD
        valueFrom:
          secretKeyRef:
            name: db-gizli
            key: DB_PASSWORD

Beklenen çıktı

deployment.apps/api configured

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Volume'de Secret'ın adı hangi alanla verilir?

  • name
  • secretRef
  • key
  • secretName Doğru cevap

Açıklama: ConfigMap volume'ünde name, Secret volume'ünde secretName kullanılır.

2 Secret'tan tek bir anahtarı ortam değişkenine al.

Soru
              valueFrom:
                ____:
                  name: db-gizli
                  key: DB_PASSWORD
Cevap
              valueFrom:
                secretKeyRef:
                  name: db-gizli
                  key: DB_PASSWORD

Açıklama: secretKeyRef tek anahtar, secretRef tüm anahtarlardır.

3 Eşleştir.

Kavram Anlamı
secretKeyRef Tek anahtar ortam değişkeni
secretRef Tüm anahtarlar (envFrom)
secretName Volume kaynağı
defaultMode Dosya izni

Orta seviye bölümündeki tüm dersler