ConfigMaps ve Gizli Bilgiler
ConfigMaps ve Gizli Bilgileri kullanarak Kubernetes dağıtımlarınızdaki yapılandırma verilerini ve hassas bilgileri güvenli bir şekilde yönetin.
ConfigMaps ve Gizli Bilgiler, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
ConfigMaps ve Secrets Konusuna Giriş
Hoş geldiniz! Bu derste Kubernetes'te yapılandırma verilerini ve hassas bilgileri nasıl yöneteceğinizi öğreneceğiz. Esnek ve güvenli uygulama dağıtımları için iki temel araç olan ConfigMaps ve Secrets konularını inceleyeceğiz.

Yapılandırmayı Neden Dışsallaştırmalısınız?
Veritabanı kimlik bilgilerini veya API anahtarlarını doğrudan uygulamanızın Docker imajına sabit kodladığınızı düşünün. Bu, güncellemeleri zorlaştırır ve hassas verileri açığa çıkarır.
- Esnek olmama: Değişiklikler imajın yeniden oluşturulmasını gerektirir.
- Güvenlik riski: Hassas veriler imajın içine gömülür.
- Ortama özgülük: Farklı ortamlar (geliştirme, üretim) farklı ayarlara ihtiyaç duyar.
ConfigMaps: Hassas Olmayan Veriler
ConfigMap, hassas olmayan yapılandırma verilerini anahtar-değer çiftleri olarak depolamak için kullanılan bir Kubernetes nesnesidir. Bunu, günlük düzeyleri veya API uç noktaları gibi uygulama ayarlarınızın merkezi olarak tutulduğu bir yer gibi düşünebilirsiniz.
Yapılandırmayı uygulama kodundan ayırarak dağıtımlarınızı daha taşınabilir ve yönetilmesi daha kolay hale getirir.
ConfigMap Tanımlama
Bir ConfigMap'i sabit değerlerden, dosyalardan veya dizinlerden oluşturabilirsiniz. Aşağıda bir YAML dosyasında tanımlanmış basit bir örnek yer alıyor:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-app-config
data:
log_level: "INFO"
api_endpoint: "http://myapi.example.com"Ortam Değişkenleri Olarak ConfigMap
Oluşturulduktan sonra bir Pod, ConfigMap verilerini ortam değişkenleri olarak kullanabilir. Bu, ayarları uygulamanıza aktarmanın yaygın bir yoludur.
Bir Pod'un my-app-config değerimizi nasıl kullandığı aşağıda gösterilmiştir:
apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "echo Log Level: $LOG_LEVEL; echo API: $API_ENDPOINT"]
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: my-app-config
key: log_level
- name: API_ENDPOINT
valueFrom:
configMapKeyRef:
name: my-app-config
key: api_endpoint
restartPolicy: NeverBağlanmış Dosyalar Olarak ConfigMap
Alternatif olarak ConfigMap verileri, kapsayıcınızın içine dosyalar olarak bağlanabilir. Her anahtar-değer çifti bir dosyaya dönüşür; anahtar dosya adı, değer ise içerik olur.
Bu yöntem, uygulamanızın belirli bir yoldan okumasını beklediği yapılandırma dosyaları için kullanışlıdır.
apiVersion: v1
kind: Pod
metadata:
name: configmap-file-pod
spec:
containers:
- name: my-container
image: busybox
command: ["sh", "-c", "cat /etc/config/log_level; cat /etc/config/api_endpoint"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: my-app-config
restartPolicy: NeverSecrets: Hassas Veriler
Secrets, ConfigMaps'e benzer; ancak parolalar, API anahtarları veya TLS sertifikaları gibi hassas veriler için tasarlanmıştır. Kubernetes bunları güvenli biçimde yönetmenize ve dağıtmanıza yardımcı olur.
ConfigMaps verileri düz metin olarak depolarken Secrets verileri base64 ile kodlanır. Bu bir şifreleme değildir; ancak kazara açığa çıkmayı önler.
Secret Tanımlama
Bir Secret oluştururken değerlerin base64 ile kodlanması gerekir. Bunları kodlamak için echo -n 'my-password' | base64 komutunu kullanabilirsiniz.
Aşağıda bir veritabanı parolası için örnek yer alıyor:
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 of 'admin'
password: c3VwZXJzZWNyZXRwYXNz # base64 of 'supersecretpass'Pod'larda Secrets Kullanma
Secrets, ConfigMaps ile hemen hemen aynı şekilde Pod'lar tarafından kullanılır: ortam değişkenleri veya bağlanmış dosyalar olarak. Kubernetes, bunları kapsayıcıya sunmadan önce otomatik olarak koddan çıkarır.
Ortam değişkenleri daha kolay günlüğe kaydedilebildiği veya incelenebildiği için güvenlik açısından genellikle bağlanmış dosyalar olarak kullanmak tercih edilir.
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo DB User: $DB_USERNAME; echo DB Pass: $DB_PASSWORD"]
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
restartPolicy: NeverGüvenlik İçin En İyi Uygulamalar
base64 kodlamasının şifreleme olmadığını unutmayın. Bekleyen verilerin gerçek anlamda şifrelenmesi için bir Kubernetes Secrets arka ucu (Vault gibi) kullanmanız veya bulut sağlayıcısının KMS hizmetlerinden yararlanmanız gerekebilir.
- RBAC: Secrets'e kimlerin erişebileceğini denetleyin.
- En Az Ayrıcalık: Pod'lara yalnızca ihtiyaç duydukları Secrets erişimini verin.
- Bağlanmış Dosyalar: Secrets'i ortam değişkenleri yerine dosya olarak bağlamayı tercih edin.
Yapılandırmayı Hızlıca Kontrol Etme
Kubernetes'te uygulamanız için bir API anahtarını (hassas) ve günlük düzeyi ayarını (hassas olmayan) depolamanız gerekiyor.
Sırasıyla her biri için hangi Kubernetes nesnelerini kullanmalısınız?
Özet: ConfigMaps ve Secrets
Harika iş çıkardınız! Kubernetes'te uygulama yapılandırmasını ve hassas verileri nasıl yöneteceğinizi öğrendiniz.
- ConfigMaps: Hassas olmayan anahtar-değer çiftlerini depolar.
- Secrets: Hassas verileri depolar (base64 ile kodlanmış).
- Her ikisi de Pod'lar tarafından ortam değişkenleri veya bağlanmış dosyalar olarak kullanılabilir.
- Hassas bilgileri işlerken her zaman güvenlik için en iyi uygulamaları izleyin.
Sırada RBAC ve harici Secret yönetimi çözümleri gibi gelişmiş güvenlik konularını inceleyin.
Sıkça Sorulan Sorular
“ConfigMaps ve Gizli Bilgiler” dersi ücretsiz mi?
Evet — “ConfigMaps ve Gizli Bilgiler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.
“ConfigMaps ve Gizli Bilgiler” dersinde ne öğreneceğim?
ConfigMaps ve Gizli Bilgileri kullanarak Kubernetes dağıtımlarınızdaki yapılandırma verilerini ve hassas bilgileri güvenli bir şekilde yönetin. Docker & DevOps Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“ConfigMaps ve Gizli Bilgiler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Docker & DevOps Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Durumsuz Uygulamalar için Dağıtımlar
- Ağ Erişimi için Hizmetler
- ConfigMaps ve Gizli Bilgiler
- Ingress ve Harici Yönlendirme