Kubernetesin perusteet · Oppitunti

DaemonSetit solmukohtaisiin tehtäviin

Käyttäkää DaemonSetseja Podin kopion ajamiseen kaikilla klusterinne solmuilla tai valituilla solmuilla klusteritason toimintoja varten.

Oppitunti 2/411 vaihetta

DaemonSetit solmukohtaisiin tehtäviin on ilmainen Kubernetesin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kubernetesin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä DaemonSetit ovat?

Kuvitelkaa, että tarvitsette tietyn työkalun tai palvelun jokaiseen klusterinne palvelimeen. Esimerkiksi lokien kerääjän, joka kerää lokit jokaiselta koneelta.

Tässä DaemonSetit tulevat apuun! Toisin kuin Deploymentit, joiden tavoitteena on pitää tietty määrä Podeja käynnissä jossakin klusterin osassa, DaemonSet varmistaa, että Podin kopio suoritetaan kaikissa solmuissa (tai valituissa solmuissa).

DaemonSetien yleiset käyttötarkoitukset

DaemonSetit sopivat erinomaisesti tehtäviin, jotka on suoritettava solmutasolla. Tässä yleisiä esimerkkejä:

  • Lokien kerääjät: Fluentd- tai Logstash-työkalut keräävät lokit jokaisesta solmusta.
  • Valvonta-agentit: Prometheus Node Exporter kerää mittareita jokaiselta palvelimelta.
  • Tallennusdaemonit: GlusterFS:n ja Cephin kaltaiset palvelut tarjoavat hajautettua tallennustilaa jokaisessa solmussa.
  • Verkon välityspalvelimet: Kubernetesin oma Kube-proxy toimii DaemonSetinä verkkosääntöjen hallintaa varten.

DaemonSetin perusmanifesti

DaemonSetin määrittely näyttää hyvin samankaltaiselta kuin Deploymentin. Keskeinen ero on kind: DaemonSet. Tutustutaan perusrakenteeseen:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: my-daemonset
spec:
  selector:
    matchLabels:
      app: my-daemonset-app
  template:
    metadata:
      labels:
        app: my-daemonset-app
    spec:
      containers:
      - name: my-container
        image: busybox
        command: ["sh", "-c", "echo 'Hello from DaemonSet on node $(NODE_NAME)'; sleep 3600"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

YAML-tiedoston keskeiset osat

Käydään läpi DaemonSet-manifestin tärkeät osiot:

  • kind: DaemonSet: Tämä kertoo Kubernetesille, että haluamme hallita solmukohtaisia Podeja.
  • spec.selector: Välttämätön osa! Se määrittää tunnisteiden avulla, miten DaemonSet löytää Podinsa ja hallitsee niitä.
  • spec.template: Tämä on itse Pod-määrittely. Se on lähes identtinen Deploymentista löytyvän Pod-mallin kanssa. Se kuvaa kussakin solmussa suoritettavan Podin säilöt, taltiot ja muut asetukset.

Käyttöönotto kaikissa solmuissa

Tässä on yksinkertainen DaemonSet, joka suorittaa busybox-säilön jokaisessa kelvollisessa solmussa. Se tulostaa viestin, joka ilmaisee, missä solmussa se suoritetaan.

Tämä on yleinen toimintamalli klusterin laajuisille agenteille.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-hello-daemon
spec:
  selector:
    matchLabels:
      app: node-hello
  template:
    metadata:
      labels:
        app: node-hello
    spec:
      containers:
      - name: hello-container
        image: busybox
        command: ["sh", "-c", "while true; do echo 'Hello from node: $(NODE_NAME)'; sleep 5; done"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

DaemonSetin käynnistäminen

Voit luoda DaemonSetin Kubernetes-klusteriin käyttämällä tuttua kubectl apply -komentoa aiemmin näkemäsi YAML-tiedoston kanssa:

kubectl apply -f node-hello-daemonset.yaml

Kubernetes varmistaa tämän jälkeen, että Pod ajoitetaan jokaiseen DaemonSetin ehtojen mukaiseen solmuun.

DaemonSetin tilan tarkistaminen

Kun olet ottanut resurssin käyttöön, voit tarkistaa DaemonSetin ja sen luomien Podien tilan:

  • DaemonSetin tarkasteleminen: kubectl get ds
  • Kussakin solmussa suoritettavien yksittäisten Podien tarkasteleminen: kubectl get pods -l app=node-hello -o wide

-o wide -valinnan avulla näet, missä solmussa kukin Pod suoritetaan.

DaemonSetit valituissa solmuissa

Entä jos haluat DaemonSetin suoritettavan vain osassa solmuistasi? Esimerkiksi vain GPU:n sisältävissä solmuissa tai tallennustilalle omistetuissa solmuissa.

Voit tehdä tämän käyttämällä nodeSelector-valitsinta. Tämä Podin spec-osiossa (DaemonSetin mallin sisällä) oleva kenttä mahdollistaa niiden solmun tunnisteiden määrittämisen, jotka solmulla on oltava, jotta Pod voidaan ajoittaa siihen.

Node-valitsimien käyttäminen YAML-tiedostossa

Muutetaan aiempaa DaemonSetiä niin, että se suoritetaan vain solmuissa, joissa on tunniste disktype: ssd. Ensin solmuihin on lisättävä tunniste, esimerkiksi komennolla kubectl label node <node-name> disktype=ssd.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ssd-monitor-daemon
spec:
  selector:
    matchLabels:
      app: ssd-monitor
  template:
    metadata:
      labels:
        app: ssd-monitor
    spec:
      nodeSelector:
        disktype: ssd # Only runs on nodes with this label
      containers:
      - name: monitor-container
        image: busybox
        command: ["sh", "-c", "while true; do echo 'Monitoring SSD on node: $(NODE_NAME)'; sleep 10; done"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

DaemonSetien ominaisuudet

Olet oppinut, miten DaemonSetit toimivat. Testataan ymmärrystäsi!

DaemonSetit: tärkeimmät opit

Hienoa työtä! Olet oppinut onnistuneesti Kubernetesin DaemonSetit.

  • DaemonSetit varmistavat, että Pod suoritetaan jokaisessa kelvollisessa solmussa.
  • Ne ovat olennaisia solmutason toiminnoissa, kuten lokien keräämisessä, valvonnassa ja tallennusagenteissa.
  • Voit käyttää nodeSelector-valitsinta tiettyjen solmujen kohdistamiseen.
  • DaemonSetit määritellään arvolla kind: DaemonSet, ja ne käyttävät Deploymentien kaltaista Pod-mallia.

Seuraavaksi tutustut StatefulSetien käyttöön tilallisten sovellusten hallinnassa!

Aloita maksutta

Opi Kubernetesin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”DaemonSetit solmukohtaisiin tehtäviin” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kubernetesin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “DaemonSetit solmukohtaisiin tehtäviin”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kubernetesin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”DaemonSetit solmukohtaisiin tehtäviin”?

Käyttäkää DaemonSetseja Podin kopion ajamiseen kaikilla klusterinne solmuilla tai valituilla solmuilla klusteritason toimintoja varten. Harjoittelet Kubernetesin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kubernetesin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kubernetesin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”DaemonSetit solmukohtaisiin tehtäviin”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kubernetesin perusteet-oppitunnilla?

Kyllä. Jokainen Kubernetesin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. StatefulSetit tilallisille sovelluksille
  2. DaemonSetit solmukohtaisiin tehtäviin
  3. Kubernetes Operatorien ymmärtäminen
  4. Custom Resource Definitionit (CRD:t)
← Takaisin: Kubernetesin perusteet