Monikonttiset podit (sidecarit)
Tutustukaa malleihin, joissa yhden Podin sisällä ajetaan useita rinnakkain sijoitettuja kontteja, kuten sidecar-kontteja.
Monikonttiset podit (sidecarit) on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/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 DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Yhden kontin tuolle puolen
Tähän asti olemme ajatelleet Podien suorittavan yhtä konttia. Entä jos sovelluksenne tarvitsee apuprosessin?
Kubernetes sallii Podin suorittaa useita kontteja. Nämä kontit sijaitsevat aina samassa paikassa ja jakavat resursseja.
Miksi käyttää usean kontin Podeja?
Useiden konttien suorittaminen yhdessä Podissa sopii erityisesti sovelluksille, jotka ovat tiiviisti sidoksissa toisiinsa ja tarvitsevat yhteiset:
- verkkoavaruuden (sama IP-osoite, viestintä
localhost-osoitteen kautta) - tallennustilan taltiot
- elinkaaren (ne käynnistyvät, pysähtyvät ja käynnistyvät uudelleen yhdessä)
Näin toisiinsa liittyviä prosesseja voidaan hallita yhtenä kokonaisuutena.
Sidecar-malli selitettynä
Yleinen suunnittelumalli on sidecar-malli. Siinä ”sidecar”-kontti suoritetaan pääsovelluksen kontin rinnalla.
Se laajentaa tai parantaa pääsovelluksen toiminnallisuutta muuttamatta itse pääsovellusta. Ajatelkaa sitä hyödyllisenä apurina.
Sidecar-konttien käyttötapauksia
Sidecar-kontit ovat erittäin monipuolisia. Yleisiä käyttötapoja ovat:
- Lokien kerääminen: Sidecar kerää lokit pääsovelluksesta ja lähettää ne keskitettyyn lokipalveluun.
- Välityspalvelin: Sidecar tarjoaa verkkoliikenteen välityksen esimerkiksi tietoturvaa (mTLS) tai liikenteen hallintaa varten.
- Tiedostojen synkronointi: Sidecar pitää jaetun taltion asetusten tai tietojen osalta ajan tasalla.
Kahden kontin Pod (YAML)
Katsotaan, miten useita kontteja määritellään Podin YAML-manifestissa. Kukin kontti on alkio containers-taulukossa.
Huomaatte, että nginx-proxy- ja main-app-kontit on määritelty kohdassa spec.containers.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: nginx-proxy
image: nginx:latest
ports:
- containerPort: 80
- name: main-app
image: busybox:latest
command: ["sh", "-c", "echo 'Hello from main app!' && sleep 3600"]Jaettu tallennustila: emptyDir
Saman Podin sisällä olevat kontit voivat jakaa tietoja Kubernetesin taltioiden avulla. Yksinkertainen tapa tähän on käyttää emptyDir-taltiota.
emptyDir-taltio luodaan, kun Pod määritetään solmuun, ja se on olemassa niin kauan kuin Pod suoritetaan kyseisessä solmussa. Se on väliaikaista tallennustilaa.
Esimerkki: lokien kerääjä sidecar-konttina
Kuvitellaan pääsovellus, joka kirjoittaa lokit tiedostoon. Sidecar voi lukea tämän lokitiedoston ja lähettää sen lokipalveluun.
Näin lokien käsittely irrotetaan pääsovelluksesta, joka pysyy selkeänä ja keskittyy omaan tehtäväänsä.
Lokien kerääjän YAML (osa 1)
Tässä on lokien kerääjäesimerkkimme YAML. Määrittelemme log-volume-nimisen emptyDir-taltion. Molemmat kontit liittävät tämän taltion.
main-app-kontti kirjoittaa lokiviestin jaetun taltion sisällä olevaan tiedostoon /var/log/app.log.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/logLokien kerääjän YAML (osa 2)
Nyt log-sidecar-kontti liittää saman log-volume-taltion. Se käyttää sitten komentoa tail -f lukeakseen jatkuvasti pääsovelluksen kirjoittamaa lokitiedostoa.
Todellisessa tilanteessa tämä sidecar käsittelisi lokit ja lähettäisi ne lokijärjestelmään, kuten Elasticsearchiin tai Splunkiin.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod # Same Pod as before
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/log
- name: log-sidecar
image: busybox:latest
command: ["sh", "-c", "tail -f /var/log/app.log"]
volumeMounts:
- name: log-volume
mountPath: /var/logPikatarkistus: sidecar-konttien hyödyt
Usean kontin Podit, erityisesti sidecar-mallia käytettäessä, tarjoavat useita etuja monimutkaisten sovellusten hallintaan.
Mitkä seuraavista ovat sidecar-kontin käytön keskeisiä hyötyjä?
Kertaus: usean kontin Podit
Hienoa työtä! Olette oppineet tuntemaan usean kontin Podit ja tehokkaan sidecar-mallin.
- Podit voivat sisältää useita kontteja, jotka jakavat verkon ja tallennustilan.
- Sidecar-malli auttaa laajentamaan tai parantamaan pääsovelluksen toiminnallisuutta.
- Yleisiä käyttötapoja ovat lokien kerääminen, välityspalvelimet ja tietojen synkronointi.
emptyDir-taltiot tarjoavat väliaikaista jaettua tallennustilaa Podin sisällä.
Tämä malli on tärkeä rakennettaessa vankkoja ja modulaarisia sovelluksia Kubernetesissa.
Opi DevOps-bootcamp 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
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Monikonttiset podit (sidecarit)” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Monikonttiset podit (sidecarit)”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Monikonttiset podit (sidecarit)”?
Tutustukaa malleihin, joissa yhden Podin sisällä ajetaan useita rinnakkain sijoitettuja kontteja, kuten sidecar-kontteja. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Monikonttiset podit (sidecarit)”-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ä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-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
- Podit: pienin yksikkö
- Podin elinkaari ja tilat
- Monikonttiset podit (sidecarit)
- Init-säilöt ja käynnistysjärjestys