Visuaalne juhend Kubernetesi tÔrkeotsinguks

MĂ€rkus tĂ”lke kohta.: See artikkel kuulub vabalt kĂ€ttesaadavate projektimaterjalide hulka learnk8s, mis Ă”petavad Kubernetesega töötamist ettevĂ”tte ja individuaalsete administraatorite jaoks. Siin jagab projekti juht Daniele Polencic selget juhendit, milliseid samme tuleks astuda, kui K8s-klastris kĂ€ivitatud rakendustes tekivad ĂŒldised probleemid.

Visuaalne juhend Kubernetesi tÔrkeotsinguks

TL;DR: siin on skeem, mis aitab teil Kuberneteses deploymenti tÔrkeotsingul:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

Vigade leidmise ja parandamise plokkskeem klastris. Originaalis (inglise keeles) on see saadaval PDF ja nagu pilt.

Rakenduse kÀivitamisel Kuberneteses on tavaliselt kolm komponenti, mis tuleb mÀÀratleda:

  • Deployment — see on retsept rakenduse koopiate, nn pod'ide, loomiseks;
  • Teenused — sisemine koormuse tasandaja, mis jagab liiklust pod'ide vahel;
  • Ingress — kirjeldus, kuidas liiklus vĂ€lisest maailmast Service'isse jĂ”uab.

Siin on lĂŒhike graafiline kokkuvĂ”te:

1) Kuberneteses saavad rakendused liiklust vĂ€lisest maailmast lĂ€bi kahe tĂŒĂŒpi koormuse tasandajate: sisemiste ja vĂ€listest.

Visuaalne juhend Kubernetesi tÔrkeotsinguks

2) Sisemise koormuse tasandaja nimetatakse Service'iks, vÀlist nimetatakse Ingress'iks.

Visuaalne juhend Kubernetesi tÔrkeotsinguks

3) Deployment loob pod'id ja jÀlgib neid (need ei tohi olla kÀsitsi loodud).

Visuaalne juhend Kubernetesi tÔrkeotsinguks

Oletame, et soovite juurutada lihtsat rakendust nagu Tere maailm. YAML-konfigureerimine selle jaoks nÀeb vÀlja jÀrgmine:

apiVersion: apps/v1
kind: Deployment # <<<
metadata:
  name: my-deployment
  labels:
    track: canary
spec:
  selector:
    matchLabels:
      any-name: my-app
  template:
    metadata:
      labels:
        any-name: my-app
    spec:
      containers:
      - name: cont1
        image: learnk8s/app:1.0.0
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service # <<<
metadata:
  name: my-service
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    name: app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress # <<<
metadata:
  name: my-ingress
spec:
  rules:
  - http:
    paths:
    - backend:
        serviceName: app
        servicePort: 80
      path: /

MÀÀratlemine on ĂŒsna pikk ja komponente on lihtne omavahel segi ajada.

NĂ€iteks:

  • Millal tuleks kasutada porti 80 ja millal porti 8080?
  • Kas peaks iga teenuse jaoks looma uue pordi, et nad ei konflikti?</
  • Kas sildid on olulised? Kas nad peavad olema igal pool samad?

Enne tĂ”rkeotsingule keskendumist tuletame meelde, kuidas kolm komponenti ĂŒksteisega seotud on. Alustame Deploymentist ja Service'ist.

Deployment'i ja Service'i seos

Teid ĂŒllatab, kuid Deployment’id ja Service’id ei ole omavahel seotud. Selle asemel osutab Service otse Pod'idele, mööda Deployment'i.

Seega meid huvitab, kuidas on seotud Pod'id ja Service'id. Meeles tuleb pidada kolme asja:

  1. Valija (selector) Service'il peab vastama vĂ€hemalt ĂŒhele Pod'i mĂ€rgisele.
  2. targetPort peab vastama containerPort pod'i sees oleva konteineri.
  3. port Service'i port vĂ”ib olla ĂŒkskĂ”ik milline. Erinevad teenused vĂ”ivad kasutada sama porti, kuna neil on erinevad IP-aadressid.

JĂ€rgmine skeem nĂ€itab kĂ”ike ĂŒlaltoodut graafiliselt:

1) Oletame, et teenus suunab liiklust mingisse pod'i:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

2) Pod'i loomisel tuleb mÀÀrata containerPort iga konteineri jaoks pod'ides:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

3) Teenuse loomisel tuleb nĂ€idata port ja targetPort. Kuid millise kaudu toimub ĂŒhendus konteineriga?

Visuaalne juhend Kubernetesi tÔrkeotsinguks

4) A lÀbi targetPort. See peab vastama containerPort.

Visuaalne juhend Kubernetesi tÔrkeotsinguks

5) Oletame, et konteineris on avatud port 3000. Siis peab vÀÀrtus targetPort olema sama.

Visuaalne juhend Kubernetesi tÔrkeotsinguks

YAML-failis peavad mÀrgid ja ports / targetPort vastama:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  labels:
    track: canary
spec:
  selector:
    matchLabels:
      any-name: my-app
  template:
    metadata:
     labels:  # <<<
        any-name: my-app  # <<<
   spec:
      containers:
      - name: cont1
        image: learnk8s/app:1.0.0
        ports:
       - containerPort: 8080  # <<<
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  ports:
  - port: 80
   targetPort: 8080  # <<<
 selector:  # <<<
    any-name: my-app  # <<<

Aga kuidas on lood mĂ€rgisega track: canary Deployment'i jaotuse ĂŒlaosas? Kas see peab vastama?

See mÀrgis kuulub rakendusele ega ole teenuse poolt liikluse suunamiseks kasutusel. TeisisÔnu, selle saab eemaldada vÔi mÀÀrata sellele muu vÀÀrtus.

A kuidas on sellega, et valija matchLabels?

see peab alati vastama Pod'i mÀrkidele, kuna seda kasutab Deployment pod'ide jÀlgimiseks.

Oletame, et olete teinud Ôiged muudatused. Kuidas neid kontrollida?

Pod'i mÀrke saab kontrollida jÀrgmise kÀsklusega:

kubectl get pods --show-labels

VÔi, kui pod'id kuuluvad mitmesse rakendusse:

kubectl get pods --selector any-name=my-app --show-labels

Kus any-name=my-app — see on mĂ€rk any-name: my-app.

Ükski probleem ei ole jÀÀnud?

Sa saad ĂŒhenduda pod'iga! Selle jaoks tuleb kasutada kĂ€sku port-forward kubectl'is. See vĂ”imaldab ĂŒhenduda teenusega ja kontrollida ĂŒhendust.

kubectl port-forward service/<teenuse nimi> 3000:80

Siin:

  • service/<teenuse nimi> — teenuse nimi; meie puhul on see my-service;
  • 3000 — port, mis tuleb arvutis avada;
  • 80 — port, mis on mĂ€rgitud valdkonnas port teenusele.

Kui ĂŒhendus Ă”nnestus, siis on sĂ€tted Ă”iged.

Kui ĂŒhendust ei Ă”nnestu luua, siis on probleem siltide vĂ”i portide vastavuses.

Teenuse ja Ingressi vaheline ĂŒhendus

JÀrgmine samm rakenduse juurdepÀÀsu tagamisel on Ingressi seadistamine. Ingress peab teadma, kuidas leida teenust, siis leida podid ja suunata liiklus nende poole. Ingress leiab vajaliku teenuse nime ja avatud pordi kaudu.

Ingressi ja Teenuse kirjelduse juures peavad olema ĂŒhesugused kaks parameetrit:

  1. servicePort Ingressis peab vastama parameetrile port Teenuses;
  2. serviceName Ingressis peab vastama vÀljale nimi Teenuses.

JĂ€rgmine skeem kogub portide ĂŒhendamise kokku:

1) Nagu juba teate, kuulab Teenus mingit port:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

2) Ingressil on parameeter, mida nimetatakse servicePort:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

3) See parameeter (servicePort) peab alati vastama port Teenuse mÀÀratlemisel:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

4) Kui Teenuses on mÀÀratud port 80, siis on vajalik, et servicePort ka oleks 80:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

Tavaolukorras tuleks tÀhelepanu pöörata jÀrgmistele ridadele:

apiVersion: v1
kind: Service
metadata:
 name: my-service  # <<<
spec:
  ports:
 - port: 80  # <<<
   targetPort: 8080
  selector:
    any-name: my-app
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress
spec:
  rules:
  - http:
    paths:
    - backend:
       serviceName: my-service  # <<<
       servicePort: 80  # <<<
     path: /

Kuidas kontrollida, kas Ingress töötab?

Saate kasutada meetodit kubectl port-forward, kuid teenuse asemel peate ĂŒhenduse looma Ingressi kontrolleriga.

Esialgu peate vÀlja selgitama podi nime, kus on Ingressi kontroller:

kubectl get pods --all-namespaces
NAMESPACE   NAME                              READY STATUS
kube-system coredns-5644d7b6d9-jn7cq          1/1   Running
kube-system etcd-minikube                     1/1   Running
kube-system kube-apiserver-minikube           1/1   Running
kube-system kube-controller-manager-minikube  1/1   Running
kube-system kube-proxy-zvf2h                  1/1   Running
kube-system kube-scheduler-minikube           1/1   Running
kube-system nginx-ingress-controller-6fc5bcc  1/1   Running

Leidke Ingressi pod (see vÔib kuuluda teise nimekasti) ja kÀivitage kÀsk describe, et teada saada portide numbrid:

kubectl describe pod nginx-ingress-controller-6fc5bcc 
--namespace kube-system 
 | grep Ports
Ports:         80/TCP, 443/TCP, 18080/TCP

LĂ”puks, ĂŒhendage podiga:

kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system

Iga kord, kui saadate pĂ€ringu sadamale 3000 arvutis, suunatakse see Ingressi kontrolleri pod’i sadamale 80. Kui navigeerite http://localhost:3000, peaksite nĂ€gema rakenduse loodud lehte.

KokkuvÔte portidest

Vaatame veel kord, millised sadamad ja sildid peaksid sobima:

  1. Teenuse mÀÀratlemine peab vastama podi sildile;
  2. targetPort Teenuse mÀÀratlemine peab vastama containerPort pod’i sees oleva konteineri mÀÀratlemisega;
  3. port Teenuste mÀÀratlemine vÔib olla mis tahes. Erinevad teenused vÔivad kasutada sama porti, kuna neil on erinevad IP-aadressid;
  4. servicePort Ingress peab olema sama port teenuste mÀÀratlemises;
  5. Teenuse nimi peab vastama vÀljal serviceName Ingressis.

Kahjuks ei piisa ainult YAML-konfiguratsiooni korrektse struktuuri tundmisest.

Mis juhtub, kui midagi lÀheb valesti?

VÔib-olla ei kÀivitu pod vÔi see kukub kokku.

3 sammu Kubernetesis rakenduste tÔrkeotsimiseks

Enne, kui alustate juurutamise tÔrkeotsingut, on vajalik omada head arusaamist sellest, kuidas Kubernetes töötab.

Kuna igas K8s rakenduses on kolm komponenti, tuleks nende tÔrkeotsingut teha kindlas jÀrjekorras, alustades kÔige madalamast.

  1. Esmalt peate veenduma, et podid töötavad, seejĂ€rel

  2. Kontrollima, kas teenus suunab liiklust podideni, ja seejÀrel

  3. Kontrollima, kas Ingress on Ôigesti seadistatud.

Visuaalne esitus:

1) Probleemide otsing tuleks alustada kÔige madalamast. KÔigepealt kontrollige, et podid on staatusega Valmis ja KÀimas:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

2) Kui podid on valmis (Valmis), peate vÀlja selgitama, kas teenus jaotab liiklust podide vahel:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

3) LĂ”puks tuleb analĂŒĂŒsida teenuse ja Ingressi vahelist seost:

Visuaalne juhend Kubernetesi tÔrkeotsinguks

1. Podide tÔrkeotsing

Enamasti on probleem seotud podiga. Veenduge, et podid oleksid tÀhistatud kui Valmis ja KÀimas. Seda saab kontrollida jÀrgmise kÀsu abil:

kubectl get pods
NAME                    READY STATUS            RESTARTS  AGE
app1                    0/1   ImagePullBackOff  0         47h
app2                    0/1   Error             0         47h
app3-76f9fcd46b-xbv4k   1/1   Running           1         47h

Ülaltoodud kĂ€su vĂ€ljundis on viimane pod tĂ€histatud kui KĂ€imas ja Valmis, kuid kahe teise puhul ei ole see nii.

Kuidas aru saada, mis valesti lÀks?

Podide tÔrkeotsimiseks on neli kasulikku kÀsu:

  1. kubectl logs vÔimaldab vÀlja vÔtta logid podis olevatest konteineritest;
  2. kubectl describe pod vĂ”imaldab vaadata podiga seotud sĂŒndmuste loetelu;
  3. kubectl get pod vÔimaldab saada Kubernetesesse salvestatud pod'i YAML-konfiguratsiooni;
  4. kubectl exec -ti bash vĂ”imaldab kĂ€ivitada interaktiivse kĂ€surea ĂŒhes pod'i konteineris

Millist neist valida?

Tegelikult ei ole ĂŒhte universaalset kĂ€sku. Tuleb kasutada nende kombinatsiooni.

TĂŒĂŒpilised podide probleemid

On kaks peamist tĂŒĂŒpi podide vigu: kĂ€ivitusvead ja töövead.

KĂ€ivitusvead:

  • ImagePullBackoff
  • ImageInspectError
  • ErrImagePull
  • ErrImageNeverPull
  • RegistryUnavailable
  • Vale Pildi Nimi

KĂ€ivitusvead:

  • CrashLoopBackOff
  • KĂ€ivita Kasti Viga
  • Killi Kasti Viga
  • Kontrolli Juurteta Viga
  • KĂ€ivita Algkasti Viga
  • Loo Pod'i Sandboxi Viga
  • Kegita Pod'i Sandboxi Viga
  • Killi Pod'i Sandboxi Viga
  • Seadista VĂ”rguviga
  • Lahuta VĂ”rguviga

MÔned vead esinevad sagedamini kui teised. Siin on mÔned kÔige levinumad vead ja nende lahendused.

ImagePullBackOff

See viga ilmneb, kui Kubernetes ei suuda saada aluspinda ĂŒhe pod'i konteineri jaoks. Siin on kolm kĂ”ige levinumat pĂ”hjust:

  1. Vale pildi nimi on nĂ€idatud – nĂ€iteks olete teinud selles vea vĂ”i pilti ei eksisteeri;
  2. Kontseptsioonitoodang, mis ei eksisteeri;
  3. Pilt on salajases registris ja Kubernetesel ei ole Ôigusi sellele juurde pÀÀseda.

Kahte esimest pĂ”hjust on hĂ”lbus lahendada – piisab, kui parandada pildi nimi ja kontseptsioon. Viimase puhul tuleb luua salajase registri sisselogimisdokumendid ja lisada viidud need pod'idesse. Kubernetes'i dokumentatsioonis on nĂ€ide sellest, kuidas seda teha.

CrashLoopBackOff

Kubernetes kuvab vea CrashLoopBackOff, kui konteiner ei suuda kÀivituda. Tavaliselt juhtub see, kui:

  1. Rakenduses on viga, mis ei luba sellel kÀivituda;
  2. Konteiner vale seadistus;
  3. Liveness testi ebaÔnnestumine liiga palju kordi.

On vajalik proovida saada logisid konteinerist, et vÀlja selgitada, miks see ebaÔnnestus. Kui logide saamine on keeruline, kuna konteiner kÀivitub liiga kiiresti, saab kasutada jÀrgmist kÀsku:

kubectl logs  --previous

See kuvab veateateid konteineri eelmistest reinkarnatsioonidest.

KĂ€ivita Kasti Viga

See viga esineb, kui konteiner ei suuda kÀivituda. See toimub enne rakenduse kÀivitamist. Tavaliselt on selle pÔhjuseks vale seadistamine, nÀiteks:

  • katse mĂ€lu seadistada, mis ei eksisteeri, nagu ConfigMap vĂ”i Secrets;
  • katse mountida read-only tĂŒĂŒp kui read-write.

Delikaatsete vigade analĂŒĂŒsimiseks sobib hĂ€sti kĂ€sk kubectl describe pod.

Pod'id on olekus Pending

PÀrast pod'i loomist jÀÀb see olekusse Pending.

Miks see juhtub?

Siin on vÔimalikud pÔhjused (lÀhenen oletusele, et planeerija töötab normaalselt):

  1. Klastris puuduvad ressursid, nÀiteks arvutusvÔime ja mÀlu, et pod'i kÀivitada.
  2. Asjakohases nimedruumis on sisse seatud objekt ResourceQuota ja pod'i loomine toob kaasa, et nimepind ĂŒletab kvota.
  3. Pod on seotud ootel PersistentVolumeClaim.

Sel juhul on soovitatav kasutada kĂ€sku kubectl describe ning kontrollida jaotist Üritused:

kubectl describe pod

Vigade korral, mis on seotud ResourceQuotas, on soovitatav vaadata klastrilogisid kÀsku kasutades

kubectl get events --sort-by=.metadata.creationTimestamp

Pod'id ei ole olekus Ready

Kui pod on mÀrgitud kui KÀimas, kuid ei ole olekus Valmis, tÀhendab see, et selle valmisoleku kontrollimine (readiness probe) ei Ônnestu.

Kui see toimub, ei saa pod teenusele ĂŒhendust ja sellele ei suunata liiklust. Ready testi ebaĂ”nnestumine on tingitud rakenduse probleemidest. Sel juhul tuleb vea leidmiseks analĂŒĂŒsida jaotist Üritused kĂ€sku andmete vĂ€ljastamise ajal kubectl describe.

2. Teenuste diagnostika

Kui pod'id on mÀrgitud kui KÀimas ja Valmis, kuid rakenduselt pole endiselt vastust, tuleb kontrollida teenuse seadeid.

Teenused tegelevad liikluse suunamisega pod'ide juurde vastavalt nende etikettidele. SeetĂ”ttu on esimene asi, mida teha — kontrollida, mitu pod'i töötavad teenusega. Selleks vĂ”ib kontrollida teenuse lĂ”pp-punkte:

kubectl describe service  | grep Endpoints

LĂ”pp-punkt on vÀÀrtuste paar <IP-аЎрДс:ĐżĐŸŃ€Ń‚>, ja vĂ€ljundis peab olema vĂ€hemalt ĂŒks selline paar (st teenusega töötab vĂ€hemalt ĂŒks pod).

Kui jaotis Endpoints on tĂŒhi, vĂ”ivad olla kaks varianti:

  1. pole ĂŒhtegi pod'i Ă”igete etikettidega (vihje: kontrollige, kas nimel on Ă”ige seadistuse valikud);
  2. teenuse etikettides on selektoris viga.

Kui nĂ€ete nimekirja lĂ”pp-punkte, kuid ei pÀÀse rakendusele ligi, on tĂ”enĂ€oliselt sĂŒĂŒdlane viga targetPort teenuse kirjelduses.

Kuidas kontrollida teenuse töökorrasolekut?

SĂ”ltumata teenuse tĂŒĂŒbist, saate kasutada kĂ€sku kubectl port-forward sellega ĂŒhenduse loomiseks:

kubectl port-forward service/ 3000:80

Siin:

  • <service-name> — teenuse nimi;
  • 3000 — port, mille avate arvutis;
  • 80 — port teenuse kĂŒljel.

3. Ingressi diagnostika

Kui olete siiani lugenud, siis:

  • pod'id on mĂ€rgitud kui KĂ€imas ja Valmis;
  • teenus suunab liiklust edukalt pod'ide vahel.

Kuid te ei pÀÀse ikka rakendusele ligi.

See tĂ€hendab, et tĂ”enĂ€oliselt on Ingressi kontroller vale seade. Kuna Ingressi kontroller on klastris vĂ€line komponent, on erinevad tĂ”rkeotsingu meetodid olenevalt selle tĂŒĂŒbist.

Kuid enne kui kasutada spetsiaalseid tööriistu Ingressi seadistamiseks, on vĂ”imalik teha midagi ĂŒsna lihtsat. Ingress kasutab serviceName ja servicePort teenusele ĂŒhenduse loomiseks. Tuleb kontrollida, kas need on Ă”igesti seadistatud. Seda saab teha kĂ€suga:

kubectl describe ingress

Kui veerg Backend on tĂŒhi, siis on suur tĂ”enĂ€osus, et konfiguratsioonis on viga. Kui backend'id on kohal, kuid rakendusele ligipÀÀs puudub, siis vĂ”ib probleem olla seotud:

  • Ingressi kĂ€ttesaadavuse seadistustega avalikust internetist;
  • klastri kĂ€ttesaadavuse seadistustega avalikust internetist.

Probleemide tuvastamiseks infrastruktuuris saab otse Ingressi pod'iga ĂŒhendust vĂ”tta. Selleks leidke kĂ”igepealt Ingressi kontrolleri pod (see vĂ”ib olla teises nimedega ruumis):

kubectl get pods --all-namespaces
NAMESPACE   NAME                              READY STATUS
kube-system coredns-5644d7b6d9-jn7cq          1/1   Running
kube-system etcd-minikube                     1/1   Running
kube-system kube-apiserver-minikube           1/1   Running
kube-system kube-controller-manager-minikube  1/1   Running
kube-system kube-proxy-zvf2h                  1/1   Running
kube-system kube-scheduler-minikube           1/1   Running
kube-system nginx-ingress-controller-6fc5bcc  1/1   Running

Kasutage kÀsku describe, et seada sadam:

kubectl describe pod nginx-ingress-controller-6fc5bcc
--namespace kube-system 
 | grep Ports

LĂ”puks, ĂŒhendage podiga:

kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system

NĂŒĂŒd suunatakse kĂ”ik arvutisse suunatud pĂ€ringud sadamasse 3000 pod'i 80 sadamasse.

Kas see nĂŒĂŒd töötab?

  • Kui jah, siis on probleem infrastruktuuris. Tuleb vĂ€lja selgitada, kuidas tĂ€pselt toimub liikluse ruteerimine klastrisse.
  • Kui ei, siis on probleem Ingressi kontrolleriga.

Kui Ingressi kontrollerit ei saa töötama panna, tuleb selle tÔrkeotsingut teha.

Ingressi kontrollerite jaoks on palju erinevaid variante. KĂ”ige populaarsemad on Nginx, HAProxy, Traefik jpt. (olemasolevate lahenduste kohta vt meie ĂŒlevaates — toimetaja mĂ€rkus) Tuleks kasutada vastava kontrolleri dokumentatsioonis tĂ”rkeotsingu juhendit. Kuna Ingress Nginx on kĂ”ige populaarsem Ingressi kontroller, oleme artiklisse lisanud mĂ”ned nĂ”uanded sellega seotud probleemide lahendamiseks.

Ingress Nginx kontrolleri tÔrkeotsing

Ingress-nginx projekt omab ametlikku kubectl pluginit.KÀsku kubectl ingress-nginx vÔib kasutada jÀrgmiste jaoks:

  • logide, backend'ide, sertifikaatide jne analĂŒĂŒsimiseks;
  • Ingressiga ĂŒhenduse loomiseks;
  • praeguse konfiguratsiooni uurimiseks.

Selleks aitavad teid jÀrgmised kolm kÀsku:

  • kubectl ingress-nginx lint — kontrollib nginx.conf;
  • kubectl ingress-nginx backend — uurib backend'it (sarnaselt kubectl describe ingress);
  • kubectl ingress-nginx logs — kontrollib logisid.

Pange tÀhele: mÔnikord vÔib olla vajalik mÀÀrata Ingressi kontrolleri jaoks Ôige nimede ruum lipuga --namespace.

Elulookirjeldus

Kubernetesi tĂ”rkeotsing vĂ”ib osutuda keeruliseks ĂŒlesandeks, kui ei tea, kust alustada. Probleemile tuleks alati lĂ€heneda „alates alt ĂŒles” pĂ”himĂ”ttest: alustage pod'idest ja seejĂ€rel liikuge teenuse ja Ingress-i juurde. Artiklis kirjeldatud tĂ”rkeotsingu meetodeid saab rakendada ka teistele objektidele, nagu:

  • töötavad Job'id ja CronJob'id;
  • StatefulSet'id ja DaemonSet'id.

TÀnan Gergely Risko, Daniel Weibel ja Charles Christyraj kuldsete mÀrkuste ja tÀienduste eest.

P.S. tÔlkijalt

Lugege ka meie blogist:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster