Kubernetes DaemonSets oluşturma

Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS

Bu makalede Azure Arc tarafından etkinleştirilen AKS'de bir kubernetes DaemonSet oluşturup kullanarak kümedeki her çalışan düğümünde bir pod kopyasının her zaman kullanılabilir olmasını sağlama işlemi açıklanır. Bir uygulamanın tüm çalışan düğümlerinde çalıştığından emin olarak küme performansını geliştirmek ve bakım yapan ve düğümler için destek hizmetleri sağlayan podlar dağıtmak için DaemonSet kullanabilirsiniz.

DaemonSets'e Genel Bakış

DaemonSet , yapılandırmada tanımlanan bir podun kopyasının kümedeki her çalışan düğümünde her zaman kullanılabilir olmasını sağlayan bir Kubernetes nesnesidir. Kümeye yeni bir düğüm eklendiğinde, DaemonSet söz konusu düğümdeki podu otomatik olarak ayırır.

Benzer şekilde, bir düğüm silindiğinde düğümde çalışan pod da silinir ve başka bir düğümde yeniden zamanlanmamıştır (örneğin , ReplicaSets'te olduğu gibi). Bu, Kubernetes zamanlama sınırlamalarını aşmanıza ve belirli bir uygulamanın küme içindeki tüm düğümlere dağıtıldığından emin olmanıza olanak tanır.

DaemonSets, genel küme performansını geliştirebilir. Örneğin, bakım görevlerini gerçekleştirmek ve hizmetleri her düğüme desteklemek üzere pod dağıtmak için bunları kullanabilirsiniz:

  • ve Logstashgibi Fluentd bir günlük koleksiyonu daemon'ı çalıştırın.
  • gibi Prometheusbir düğüm izleme daemon'ı çalıştırın.
  • veya cephgibi glusterd bir küme depolama daemon'ı çalıştırın.

DaemonSets varsayılan olarak her düğümde bir pod oluştursa da, YAML dosyasındaki düğüm seçici alanını önceden tanımlayarak kabul edilebilir düğüm sayısını sınırlayabilirsiniz. DaemonSet denetleyicisi yalnızca düğüm seçiciyle eşleşen düğümlerde podlar oluşturur.

Genellikle, bir DaemonSet tüm düğümler arasında bir daemon türü dağıtır, ancak birden çok DaemonSet'in farklı etiketler kullanarak bir daemon türünü denetlemesini sağlamak mümkündür. Kubernetes etiketi, tek tek düğümlerin özelliklerine göre dağıtım kurallarını belirtir.

DaemonSets'i kullanma hakkında daha fazla bilgi için bkz. Kubernetes DaemonSets.

DaemonSet oluşturma

DaemonSet'i YAML dosyası kullanarak açıklar ve ardından veya kubectl apply komutlarını kullanarak kubectl create oluşturursunuz (örneğin, kubectl create –f example-daemon.yaml).

Aşağıdaki örnekte, nginx görüntüsü kullanan bir DaemonSet yapılandırma dosyasının özellikleri açıklanmaktadır:

apiVersion: apps/v1  
kind: DaemonSet  
metadata: 
      labels: 
         app: nginx
      name: example-daemon
spec:  
  template:
    metadata:
    labels:
             app: nginx
          spec:  
    containers:  
        -name: nginx  
         image: nginx

DaemonSet'in geçerli durumunu görüntülemek için komutunu kullanın kubectl describe (örneğin, kubectl describe daemonset example-daemon).

DaemonSet'i belirli düğümlerle sınırlama

Varsayılan olarak, DaemonSets bir kümedeki tüm düğümlerde podlar oluşturur, ancak düğüm seçicilerle bunları yalnızca belirli düğümlerde pod oluşturacak şekilde yapılandırabilirsiniz. DaemonSet'i belirli düğümlerle sınırlamak istiyorsanız komutunu kullanın kubectl label .

DaemonSet'i güncelleştirme

Komutunu kullanarak bir DaemonSet'i kubectl edit ds<NAME> güncelleştirebilirsiniz. Ancak, özgün yapılandırma dosyasını düzenlemeniz ve ardından ilk oluşturulduğunda komutunu kullanmanız kubectl apply önerilir. Bir güncelleştirmeyi uyguladıktan sonra komutunu kullanarak kubectl rollout status ds <daemonset-name> güncelleştirme durumunu görüntüleyebilirsiniz.

DaemonSet silme

DaemonSet'i kaldırmak için komutunu kullanın kubectl delete (örneğin, kubectl delete –f example-daemon.yaml -n monitoring). DaemonSet dosyasının adını belirtirken dikkatli olmanız gerekir. DaemonSet silindiğinde dağıtılan tüm podlar temizlenebilir.

Sonraki adımlar