Membuat DaemonSet Kubernetes

Berlaku untuk: AKS di Azure Stack HCI 22H2, AKS di Windows Server

Artikel ini menjelaskan cara membuat dan menggunakan Kubernetes DaemonSet di AKS yang diaktifkan oleh Azure Arc untuk memastikan bahwa salinan pod selalu tersedia pada setiap simpul pekerja dalam kluster. Anda dapat menggunakan DaemonSet untuk meningkatkan performa kluster dengan memastikan bahwa aplikasi berjalan pada semua simpul pekerja, dan untuk menyebarkan pod yang melakukan pemeliharaan dan menyediakan layanan dukungan untuk simpul.

Gambaran Umum DaemonSets

DaemonSet adalah objek Kubernetes yang memastikan salinan pod yang didefinisikan dalam konfigurasi selalu tersedia di setiap node pekerja dalam kluster. Ketika node baru ditambahkan ke kluster, DaemonSet secara otomatis mengalokasikan pod pada node tersebut.

Demikian pula, ketika node dihapus, pod yang berjalan pada node juga dihapus dan tidak dijadwalkan ulang pada node lain (misalnya, seperti yang terjadi pada ReplicaSets). Ini memungkinkan Anda untuk mengatasi batasan penjadwalan Kube dan memastikan aplikasi tertentu disebarkan pada semua simpul dalam kluster.

DaemonSets dapat meningkatkan performa kluster secara keseluruhan. Misalnya, Anda dapat menggunakannya untuk menyebarkan pod untuk melakukan tugas pemeliharaan dan layanan dukungan ke setiap node:

  • Jalankan daemon pengumpulan log, seperti Fluentd dan Logstash.
  • Jalankan daemon pemantauan simpul, seperti Prometheus.
  • Jalankan daemon penyimpanan kluster, seperti glusterd atau ceph.

Meskipun DaemonSets membuat pod pada setiap node secara default, Anda dapat membatasi jumlah node yang dapat diterima dengan menentukan bidang pemilih node dalam file YAML. Pengontrol DaemonSet hanya membuat pod pada simpul yang cocok dengan pemilih simpul.

Biasanya, satu DaemonSet menyebarkan satu jenis daemon di semua node, tetapi dimungkinkan untuk memiliki beberapa DaemonSets myang engontrol satu jenis daemon dengan menggunakan label yang berbeda. Label Kubernetes menentukan aturan penyebaran berdasarkan karakteristik masing-masing node.

Untuk informasi selengkapnya tentang cara menggunakan DaemonSets, lihat Kubernetes DaemonSets.

Membuat DaemonSet

Anda menjelaskan DaemonSet dengan menggunakan file YAML, lalu membuatnya menggunakan perintah kubectl create atau kubectl apply (misalnya, kubectl create –f example-daemon.yaml).

Contoh berikut menjelaskan fitur file konfigurasi DaemonSet menggunakan gambar nginx:

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

Untuk melihat status DaemonSet saat ini, gunakan perintah kubectl describe (misalnya, kubectl describe daemonset example-daemon).

Membatasi DaemonSet ke node tertentu

Secara default, DaemonSets membuat pod pada semua node dalam kluster, tetapi dengan pemilih node, Anda dapat mengonfigurasinya untuk membuat pod hanya di node tertentu. Jika Anda ingin membatasi DaemonSet ke node tertentu, gunakan perintah kubectl label.

Memperbarui DaemonSet

Anda dapat memperbarui DaemonSet menggunakan perintah kubectl edit ds<NAME>. Namun, disarankan agar Anda mengedit file konfigurasi asli, lalu menggunakan kubectl apply perintah saat awalnya dibuat. Setelah menerapkan pembaruan, Anda dapat melihat status pembaruan menggunakan kubectl rollout status ds <daemonset-name> perintah .

Menghapus DaemonSet

Untuk menghapus DaemonSet, gunakan perintah kubectl delete (misalnya, kubectl delete –f example-daemon.yaml -n monitoring). Anda harus berhati-hati saat menentukan nama file DaemonSet saat menghapus DaemonSet membersihkan semua pod yang disebarkannya.

Langkah berikutnya