Dağıtımları Anlama
Dağıtımların durumsuz uygulamalar için Pod'ların ve ReplicaSets'in yönetimini nasıl otomatikleştirdiğini öğrenin.
Dağıtımları Anlama, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 1. 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, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
Deployment'lar Nedir?
Hoş geldiniz! Kubernetes'te uygulamaları yönetmek, Pod'larını yönetmek anlamına gelir. Ancak tek tek Pod'ları veya hatta ReplicaSet'leri doğrudan yönetmek karmaşık hale gelebilir.
Deployment, durumsuz uygulamaları yönetmeyi kolaylaştıran daha üst düzey bir nesnedir. Bunu uygulamanızın yöneticisi gibi düşünebilirsiniz.
- Uygulamanız için istenen durumu tanımlar.
- Pod'lar başarısız olsa bile bu durumun korunmasını sağlar.
- Güncellemeleri ve geri almaları otomatikleştirir.
Deployment'lar Neden Kullanılır?
Deployment'lar, uygulamaları Kubernetes'te güvenilir biçimde çalıştırmak için önemli avantajlar sağlar:
- Otomatik Yönetim: Pod'ların oluşturulmasını, ölçeklendirilmesini ve silinmesini yönetirler.
- Kendi Kendini Onarma: Bir Pod çökerse Deployment, istenen kopya sayısını korumak için onu otomatik olarak yenisiyle değiştirir.
- Bildirimsel Güncellemeler: İstenen yeni durumu tanımlarsınız; Deployment oraya nasıl ulaşacağını (örneğin yeni sürümleri aşamalı olarak kullanıma alarak) belirler.
Durumsuz uygulamaları yönetmek için önerilen yöntemdir.
Deployment'ın Temel Rolü
Temel olarak bir Deployment, ReplicaSet'leri yönetir. Bir ReplicaSet'in görevi, belirtilen sayıda Pod kopyasının her zaman çalışır durumda olmasını sağlamaktır.
Dolayısıyla Deployment, amacına ulaşmak için ReplicaSet'leri kullanır: uygulamanızın tanımınıza uygun doğru sayıda sağlıklı Pod ile çalışmasını sağlamak.
Bu soyutlama, uygulamanızın yaşam döngüsünü tanımlamayı ve sürdürmeyi çok daha kolay hale getirir.
Bir Deployment YAML'inin Anatomisi
Çoğu Kubernetes nesnesi gibi Deployment'lar da YAML kullanılarak tanımlanır. Genellikle bulacağınız temel bölümler şunlardır:
apiVersionvekind: Nesne türünü (Deployment) belirtir.metadata: Deployment'ın kendisi için ad, etiketler ve benzeri bilgileri içerir.spec: Şunları içeren temel tanımdır:replicas: İstenen Pod sayısı.selector: Deployment'ın yönettiği Pod'ları nasıl bulduğu.template: Oluşturulacak Pod'lar için şablon.
Pod Şablonu
Bir Deployment'ın spec içindeki template alanı son derece önemlidir. Bu alan, esasen eksiksiz bir Pod tanımıdır.
Bu Deployment tarafından oluşturulan tüm Pod'lar bu şablonu kullanır. Bu, aşağıdakileri tanımladığınız anlamına gelir:
- Kullanılacak kapsayıcı görüntüleri.
- Açığa çıkarılacak bağlantı noktaları.
- Ortam değişkenleri.
- Kaynak istekleri ve sınırları.
- Ve daha fazlası!
Bu şablonda yapılan değişiklikler uygulamanızda güncellemeleri tetikler.
Basit Bir Deployment Oluşturma
Basit bir Nginx web sunucusu için bir Deployment tanımlayalım. 3 kopya istiyoruz.
selector.matchLabels değerinin template.metadata.labels ile eşleşmesi gerektiğine dikkat edin. Bu, Deployment'a hangi Pod'ların sahibi olduğunu bildirir.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Deployment'ı Uygulama
Bu Deployment'ı Kubernetes kümenizde (örneğin Minikube'da) oluşturmak için kubectl apply komutunu kullanırsınız. Yukarıdaki YAML'i nginx-deployment.yaml olarak kaydedin.
kubectl, Deployment nesnesini oluşturur. Ardından Deployment denetleyicisi bu nesneyi görür ve işlem yaparak bir ReplicaSet oluşturur; ReplicaSet de 3 Nginx Pod'u oluşturur.
kubectl apply -f nginx-deployment.yamlDeployment'ınızı İnceleme
Uygulama tamamlandıktan sonra Deployment'ınızın ve yönettiği Pod'ların durumunu denetleyebilirsiniz:
kubectl get deployments: Deployment'ınızı gösterir.kubectl get replicasets: Deployment tarafından oluşturulan ReplicaSet'i gösterir.kubectl get pods -l app=nginx: Deployment tarafından yönetilen Pod'ları (etiket seçicisi aracılığıyla) gösterir.kubectl describe deployment my-nginx-deployment: Olaylar da dahil olmak üzere Deployment hakkında ayrıntılı bilgi sağlar.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentİstenen Durumu Sürdürme
Deployment'ların en güçlü özelliklerinden biri istenen durumu sürdürme becerisidir. replicas: 3 tanımladıysanız Deployment, her zaman 3 Pod'un çalışır durumda olmasını sağlar.
Nginx Pod'larından birini el ile silmeyi deneyin (kubectl delete pod <pod-name>). Deployment'ın onu değiştirmek için hızla yeni bir Pod oluşturduğunu göreceksiniz! Kendi kendini onarma işte budur.
Kısa Denetim
Bir Deployment öncelikle hangi tür uygulamayı yönetmek için kullanılır?
Özet: Deployment'ları Anlama
Harika iş! Kubernetes Deployment'larıyla ilk adımlarınızı attınız.
- Deployment'lar, durumsuz uygulamaları yönetmek için kullanılan üst düzey nesnelerdir.
- ReplicaSet'leri yöneterek Pod'ların oluşturulmasını, ölçeklendirilmesini ve kendi kendini onarmasını otomatikleştirirler.
- Bir Deployment'ı YAML bildirimi kullanarak tanımlar; istenen
replicassayısını ve Pod'lar için birtemplatebelirtirsiniz. kubectl applyDeployment'ı oluşturur;kubectl get/describeise onu izlemenize yardımcı olur.
Sırada ReplicaSet'leri ve istenen Pod sayınızı nasıl garanti ettiklerini daha ayrıntılı inceleyeceğiz!
Sıkça Sorulan Sorular
“Dağıtımları Anlama” dersi ücretsiz mi?
Evet — “Dağıtımları Anlama” 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 DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Dağıtımları Anlama” dersinde ne öğreneceğim?
Dağıtımların durumsuz uygulamalar için Pod'ların ve ReplicaSets'in yönetimini nasıl otomatikleştirdiğini öğrenin. DevOps Bootcamp 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.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, 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 1. dersidir.
“Dağıtımları Anlama” 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 DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp 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
- Dağıtımları Anlama
- ReplicaSets ile Uygulamaları Ölçeklendirme
- Aşamalı Güncellemeler ve Geri Almalar
- Dağıtım Stratejileri: Blue-Green ve Canary