DaemonSetit solmukohtaisiin tehtäviin
Käyttäkää DaemonSetseja Podin kopion ajamiseen kaikilla klusterinne solmuilla tai valituilla solmuilla klusteritason toimintoja varten.
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.nodeNameYAML-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.nodeNameDaemonSetin 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.nodeNameDaemonSetien 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!
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
- StatefulSetit tilallisille sovelluksille
- DaemonSetit solmukohtaisiin tehtäviin
- Kubernetes Operatorien ymmärtäminen
- Custom Resource Definitionit (CRD:t)