Azure Stack HCI ve Windows Server'da Azure Kubernetes Service'da dağıtımlar oluşturma

Dağıtım, performansı yöneten ve podun istenen davranışını belirten bir Kubernetes nesnesine başvurur. Uygulamaya atanan podlar da dahil olmak üzere uygulamanın yaşam döngüsünü belirtir. Uygulamanız için istediğiniz durumu iletmek için bir yol sağlar ve denetleyici mevcut durumu istediğiniz duruma değiştirmek için çalışır.

Dağıtımlar, pod örneklerini başlatma işlemini otomatikleştirir ve bunların küme içindeki tüm düğümlerde tanımlandığı gibi çalıştığından emin olur. Yöneticiler ve BT uzmanları bir uygulamadan istediklerini iletmek için dağıtımları kullanır ve ardından Kubernetes, uygulamanın istenen durumunu oluşturmak için gerekli tüm adımları uygular.

Dağıtımlar uygulamalarınızın nasıl çalıştığını tanımlasa da, uygulamalarınızın kümenizde nerede bulunduğunu garanti etmemektedir. Örneğin, uygulamanız her düğümde bir pod örneği gerektiriyorsa, bir DaemonSet kullanmak istersiniz. Durum bilgisi olan uygulamalar için StatefulSet benzersiz ağ tanımlayıcıları, kalıcı depolama ve sıralı dağıtım/ölçeklendirme sağlar.

Kubernetes dağıtım nesnesi şunları yapmanızı sağlar:

  • Çoğaltma kümesi veya pod dağıtma
  • Bir uygulamanın örnek sayısını artırma veya azaltma
  • Bir uygulamanın çalışan her örneğini güncelleştirme
  • Bir uygulamanın çalışan tüm örneklerini başka bir sürüme geri alma
  • Dağıtımı duraklatma veya sürdürme

Ek bilgi için bkz. Kubernetes Dağıtımları.

Dağıtım oluşturma

Dağıtım oluşturmak için veya kubectl create komutlarını kubectl apply kullanabilirsiniz. Gerekli pod sayısı korunup izlendiğinden, dağıtım oluşturulduktan sonra çalışır ve kullanılabilir. Bir pod başarısız olursa Kubernetes, kümedeki yerini almak için podun bir çoğaltmasını hemen dağıtır.

Aşağıdaki örnekte, YAML biçiminde bir dağıtım bildirim dosyasının özellikleri açıklanmaktadır.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - image: nginx
          name: nginx
          ports:
            - containerPort: 80

Dağıtımı, çoğaltma kümesini ve podları görüntülemek için aşağıdaki komutu çalıştırın:

kubectl get deployment, replicaset, pod

Dağıtımı güncelleştirme

Dağıtımların temel avantajı, Kubernetes programınızı otomatik olarak güncelleştirmektir. Dağıtımlar olmadan, tüm eski podları el ile sonlandırmanız, yeni pod sürümlerini başlatmanız ve pod oluştururken herhangi bir sorun olup olmadığını görmek için bir denetim çalıştırmanız gerekir. Podların hangi sırayla getirildiğini ve kaldırıldığını görmek için komutunu çalıştırabilirsiniz kubectl describe deployment .

Siz pod şablonunu veya istenen durumu güncelleştirdikçe dağıtımlar güncelleştirme işlemini otomatikleştirir. Dağıtım, seçilen güncelleştirme gerçekleşene kadar yeni podlar oluşturma veya daha fazla kaynak ayırma gibi eylemlerle arka planda program durumunu değiştirir.

Dağıtımda sorun varsa Kubernetes otomatik olarak önceki sürüme geri döner. Ayrıca komutunu kullanarak kubectl rollout undo belirli bir sürüme açıkça geri dönebilir veya dağıtımı geçici olarak durdurmak için kullanabilirsiniz kubectl rollout pause .

Dağıtımları güncelleştirme stratejileri

Kubernetes, ortamınızın gereksinimlerine uyacak şekilde çeşitli yollarla güncelleştirebilmeniz için çeşitli dağıtım stratejileri sağlar. En yaygın üç güncelleştirme stratejisi şunlardır:

  • Sıralı güncelleştirme: Bu güncelleştirme, Kubernetes sisteminizi performans üzerinde yalnızca küçük bir etki ve kapalı kalma süresi olmadan güncelleştirmenizi sağlayan aşamalı bir işlemdir. Güncelleştirme hızı karşılığında kapalı kalma süresini en aza indirir.
  • Rekreasyon: Bu strateji, sistemin tüm yönlerini kısa bir kapalı kalma süresiyle bir kerede güncelleştirmenize olanak tanıyan tamamen veya hiç bir işlemdir. Hızlı bir şekilde güncelleştirilir ancak kapalı kalma süresine neden olur.
  • Kanarya: Bu strateji, tam dağıtım taahhüdü olmadan yeni program sürümünüzü gerçek kullanıcılarda test etmenizi sağlayan kısmi bir güncelleştirme işlemidir. Daha sonra tam dağıtımla belirli birkaç kullanıcı için hızlı bir şekilde güncelleştirilir.

Sonraki adımlar