Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

MĂ€rk. tĂ”lge.: See artikkel kuulub vabalt kergesti kĂ€ttesaadavate materjalide kogusse, learnk8s, mis Ă”petab Kubernetesega töötamist ettevĂ”tte ja isiklike administraatorite jaoks. Selles jagab Daniele Polencic, projekti juht, visuaalset juhendit selle kohta, milliseid samme tuleks astuda, kui tekib ĂŒldise iseloomuga probleeme K8s klastris kĂ€ivitatud rakendustega.

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

TL;DR: siin on Skeem, mis aitab teil Kuberneteses rakenduste juurutamist siluda:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

Vigade leidmise ja parandamise vooskeem klastris. Originaalis (inglise keeles) on see saadaval PDF ja pildina.

Rakenduse juurutamise ajal Kuberneteses tuleb tavaliselt mÀÀratleda kolm komponenti:

  • Deployment — see on retsept rakenduse koopiate, mida nimetatakse pod'ideks, loomiseks;
  • Teenused — sisemine koormuse tasandaja, mis jagab liiklust pod'ide vahel;
  • Ingress — kirjeldus selle kohta, kuidas liiklus jĂ”uab vĂ€lismaailmast teenuseni.

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

1) Kuberneteses saavad rakendused liiklust vÀlismaailmast kahe koormuse tasandaja kihi kaudu: sisemine ja vÀline.

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

2) Sisemine koormuse tasandaja nimetatakse Teenuseks, vĂ€line – Ingress.

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

3) Juhtimine loob pod'id ja jÀlgib neid (need ei vÀljastata kÀsitsi).

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

Oletame, et soovite kÀivitada lihtsa rakenduse nagu Hello World. Selle YAML-konfigureerimine 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 lihtne on segadusse minna selles, kuidas komponendid omavahel seondub.

NĂ€iteks:

  • Millal tuleks kasutada porti 80 ja millal 8080?
  • Kas iga teenuse jaoks tuleks luua uus port, et vĂ€ltida konflikte?
  • Kas siltide nimed on olulised? Kas need peaksid olema kĂ”ikjal samad?

Enne silumise keskendumist meenutame, kuidas kolm komponenti omavahel seondub. Alustame Deployment’ist ja Service’ist.

Deployment’i ja Service’i seos

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

Seega huvitab meid, kuidas Pods ja Service'id omavahel seotud on. Tuleb meeles pidada kolme asja:

  1. Valija (selector) peavad Service'il vastama vĂ€hemalt ĂŒhele Pod'i sildile.
  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 diagramm esindab kÔike eespoolt graafiliselt:

1) Kujutame ette, et teenus suunab liikluse mingisse pod'i:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

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

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

3) Teenuse loomisel tuleb mÀÀrata port ja targetPort. Aga mille kaudu toimub ĂŒhendus konteineriga?

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

4) A kaudu. targetPortSee peab olema sama, containerPort.

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

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

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

YAML-failis peavad sildid ja ports / targetPort olema ĂŒhilduvad:

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  # <<<#

Kuidas on lood sildiga track: canary Deployment sektsiooni ĂŒlaosas? Kas see peaks olema sama?

See silt kuulub juurutamisele ja seda ei kasutata teenuse jaoks liikluse suunamiseks. TeisisÔnu, selle vÔib eemaldada vÔi anda sellele teise vÀÀrtuse.

Aga kuidas on selektoriga matchLabels?

See peab alati olema sama nagu Pod'i sildid, kuna seda kasutatakse juurutamise poolt pod'ide jÀlgimiseks.

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

Pod'i silte saab kontrollida jÀrgmise kÀsuga:

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 silt any-name: my-app.

Kas on veel probleeme?

Saate pod'iga ĂŒhendust vĂ”tta! Selleks peate kasutama kĂ€sku port-forward kubectl. See vĂ”imaldab ĂŒhendust vĂ”tta teenusega ja kontrollida ĂŒhendust.

kubectl port-forward service/ 3000:80

Siin:

  • service/ — teenus nime; meie puhul on see my-service;
  • 3000 — port, mida tuleb arvutis avada;
  • 80 — port, mis on mÀÀratud port teenuses.

Kui ĂŒhendus on loodud, on seaded Ă”iged.

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

Teenuse ja Ingressi vaheline seos

JĂ€rgmine samm rakenduse juurdepÀÀsu tagamisel hĂ”lmab Ingressi seadistamist. Ingress peab teadma, kuidas teenust leida, seejĂ€rel leidma pod’id ja suunama nende suunas liiklust. Ingress leiab Ă”ige teenuse nime ja avatud porta jĂ€rgi.

Ingressi ja Teenuse kirjelduses peavad olema kaks vastavust:

  1. servicePort Ingressis peab vastama sellele parameetrile port Teenuses;
  2. serviceName Ingressis peab olema kooskÔlas name Teenuses.

JĂ€rgmine skeem toob kokku portsede ĂŒhendamise:

1) Nagu juba teate, Teenus kuulab mingit port:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

2) Ingressil on parameeter, mida nimetatakse servicePort:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

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

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

4) Kui Teenuses on mÀÀratud port 80, siis peab servicePort olema samuti 80:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

Praktikas tuleb 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?

Saab kasutada meetodit kubectl port-forward, kuid teenuse asemel tuleb ĂŒhenduda Ingressi kontrolleriga.

Esiteks tuleb leida Ingressi kontrolleri pod'i nimi:

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

Leia Ingressi pod (see vÔib kuuluda teise nimede ruumi) ja kÀivita 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 ĂŒhendu pod'iga:

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

NĂŒĂŒd, iga kord, kui saadad pĂ€ringu pordile 3000 arvutis, suunatakse see Ingressi kontrolleri pod'i pordile 80. Minge aadressile http://localhost:3000, peate nĂ€gema rakenduse poolt loodud lehte.

Sadamate ĂŒlevaade

Kordame veel kord, millised sadamad ja sildid peaksid olema ĂŒhtivad:

  1. Teenuse mÀÀratluses olev selektor peab olema ĂŒhtiv podi sildiga;
  2. targetPort teenuse mÀÀratluses peab olema ĂŒhtiv containerPort podis oleva konteineri;
  3. port teenuse mÀÀratluses vÔib olla mistahes. Erinevad teenused vÔivad kasutada sama sadamat, kuna neil on erinevad IP-aadressid;
  4. servicePort Ingressi peab olema ĂŒhtiv port teenuse mÀÀratlusega;
  5. Teenuse nimi peab olema ĂŒhtiv serviceName Ingressis.

Kahjuks ei piisa sellest, et teate, kuidas Ôigesti YAML-konfiguratsiooni struktureerida.

Mis juhtub, kui midagi lÀheb valesti?

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

3 sammu rakenduste tÔrkeotsingu jaoks Kuberneteses

K before debugging the deployment, it is essential to have a good understanding of how Kubernetes works.

Kuna igas K8s rakenduses on kolm komponenti, tuleb neid tÔrkeotsingul kÀsitleda kindlas jÀrjekorras, alustades altpoolt.

  1. Esmalt tuleb veenduda, et podid töötavad, seejÀrel...
  2. Kontrollige, kas teenus toimetab liikluse podidele, ja siis...
  3. Kontrolli, kas Ingress on Ôigesti seadistatud.

Visuaalne ĂŒlevaade:

1) Probleemide leidmist tuleks alustada alt. Esiteks kontrolli, et pod’id oleksid staatustes Valmis ja Running:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

2) Kui pod’id on valmis (Valmis), tuleb vĂ€lja selgitada, kas teenus suunab liiklust pod’ide vahel:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

3) LĂ”puks tuleb analĂŒĂŒsida teenuse ja Ingress’i vahelist seost:

Visuaalne juhend Kubernetes'e tÔrgete diagnoosimiseks

1. Pod’ide diagnostika

Enamikul juhtudel on probleem seotud pod’iga. Veendu, et pod’id on nimekirjas kui Valmis ja Running. Seda saab kontrollida 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 mĂ€rgitud kui Running ja Valmis, kuid kahe teiste puhul see nii ei ole.

Kuidas mÔista, et midagi on valesti?

Pod’ide diagnoosimiseks on neli kasulikku kĂ€sku:

  1. kubectl logs loputab logid pod’i konteineritest;
  2. kubectl describe pod nĂ€itab pod’iga seotud sĂŒndmuste loetelu;
  3. kubectl get pod tagastab pod’i YAML-konfiguratsiooni, mis on salvestatud Kubernetesesse;
  4. kubectl exec -ti bash vĂ”imaldab kĂ€ivitada interaktiivset kĂ€surealiidese ĂŒhes pod'i konteineris

Millist neist valida?

Asi on selles, et ei ole ĂŒhte universaalset kĂ€sku. Tuleb kasutada nende kombinatsiooni.

TĂŒĂŒpilised pod’ide probleemid

On kaks peamist pod’i tĂ”rgete tĂŒĂŒpi: kĂ€ivitustĂ”rked (startup) ja tööaegsed tĂ”rked (runtime).

KÀivitustÔrked:

  • ImagePullBackoff
  • ImageInspectError
  • ErrImagePull
  • ErrImageNeverPull
  • RegistryUnavailable
  • InvalidImageName

Tööaegsed tÔrked:

  • CrashLoopBackOff
  • RunContainerError
  • KillContainerError
  • VerifyNonRootError
  • RunInitContainerError
  • CreatePodSandboxError
  • ConfigPodSandboxError
  • KillPodSandboxError
  • SetupNetworkError
  • TeardownNetworkError

MÔned tÔrked esinevad sagedamini kui teised. Siin on mÔned kÔige levinumad tÔrked ja nende lahendamise viisid.

ImagePullBackOff

See tĂ”rge ilmneb, kui Kubernetes ei saa pod’i ĂŒhe konteineri jaoks pilti hankida. Siin on kolm kĂ”ige levinumat pĂ”hjust:

  1. Pildi nimi on valesti mÀÀratud — nĂ€iteks olete teinud selles vea vĂ”i pilti ei eksisteeri;
  2. MÀÀratud on mittesihitud pildi silt;
  3. Pilt on salajases repositooriumis ja Kubernetesel puuduvad Ôigused sellele juurdepÀÀsuks.

Esimese kahe probleemi lahendamine on lihtne — piisab, kui muuta pildi nime ja sildi. Viimase korral tuleb lisada sulgudele juurdepÀÀsuandmed ja viidata neile pod'ides. Kubernetes'i dokumentatsioonis on nĂ€ide kuidas seda teha.

CrashLoopBackOff

Kubernetes vÀljastab vea CrashLoopBackOff, kui konteinerit ei suudeta kÀivitada. Tavaline pÔhjus selle ekslemiseks on see, et:

  1. Rakenduses on viga, mis ei lase sel kÀivituda;
  2. Konteiner on vale seadistusega;
  3. Liveness'i test nurjus liiga palju kordi.

Peate proovima logide juurde pÀÀseda konteinerist, et vÀlja selgitada selle kokkuvarisemise pÔhjus. Kui logide juurde pÀÀsemine on keeruline, kuna konteiner taaskÀivitub liiga kiiresti, saate kasutada jÀrgmist kÀsku:

kubectl logs  --previous

See vÀljastab veateateid konteineri eelmisest reinkarnatsioonist.

RunContainerError

See viga ilmneb, kui konteiner ei suuda kÀivituda. See vastab hetkele enne rakenduse kÀivitamist. Tavaline pÔhjus on vale seadistus, nÀiteks:

  • katse kinnitada mittesoovitud mahtu, nĂ€iteks ConfigMap vĂ”i Secrets;
  • proovitakse montaaĆŸi mahuti tĂŒĂŒpi read-only kui read-write.

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

Pod’id on olekus Pending

PÀrast loomist jÀÀb pod olekusse Ootel.

Miks see nii juhtub?

Siin on vÔimalikud pÔhjused (eeldan, et planeerija töötab normaalselt):

  1. Klastris pole piisavalt ressursse, nagu arvutusvÔime ja mÀlu, podi kÀivitamiseks.
  2. Seotud nimedesisest on seadistatud objekt ResourceQuota ja podi loomine toob kaasa nimede ĂŒletamise limiidi.
  3. Pod on seotud Pending PersistentVolumeClaim.

Selles olukorras soovitatakse kasutada kĂ€sku kubectl describe ja kontrollida jaotust Üritused:

kubectl describe pod

Vigade korral, mis on seotud ResourceQuotas, soovitatakse vaadata klastri logisid kÀsku

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

Pod’id ei ole olekus Ready

Kui pod on mÀrgitud kui Running, kuid ei ole olekus Valmis, siis tÀhendab see, et selle valmisoleku kontroll (readiness probe) kukkub lÀbi.

Kui selline olukord tekib, ei saa pod teenusele ĂŒhendust ja sellele ei suunata liiklust. Valmiduse testimise ebaĂ”nnestumine on pĂ”hjustatud rakenduse probleemidest. Sellisel juhul tuleb vea leidmiseks analĂŒĂŒsida lĂ”iku Üritused kĂ€skluse tulemuses kubectl describe.

2. Teenuste diagnostika

Kui pod'id on loetletud kui Running ja Valmis, kuid rakenduselt ei tule endiselt vastust, tuleks kontrollida teenuse seadeid.

Teenused tegelevad liikluse suunamisega pod'idele vastavalt nende silte. SeetĂ”ttu on esimene asi, mida tuleb teha — kontrollida, mitu pod'i teenusega töötavad. Selleks saab kontrollida teenuse lĂ”pp-punkte:

kubectl describe service  | grep Endpoints

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

Kui lĂ”ik Endpoints on tĂŒhi, on kaks vĂ”imalikku varianti:

  1. ĂŒhtki pod'i ei ole Ă”igete siltega (vihje: kontrollige, kas nimekiri on korrektne);
  2. teenuse silte on selektoris vale.

Kui nĂ€ete lĂ”pp-punktide loendit, kuid ei pÀÀse siiski rakendusele, on tĂ”enĂ€oliseks sĂŒĂŒdlaseks vea esinemine targetPort teenuse kirjelduses.

Kuidas kontrollida teenuse töökorrasolekut?

SĂ”ltumata teenuse tĂŒĂŒbist on vĂ”imalik kasutada kĂ€sku kubectl port-forward ĂŒhendamiseks sellega:

kubectl port-forward service/ 3000:80

Siin:

  • <service-name> — teenuse nimi;
  • 3000 — port, mille avate arvutis;
  • 80 — port teenuse poolel.

3. Ingressi diagnostika

Kui olete siiani lugenud, siis:

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

Kuid te ei saa siiski rakendusele „jĂ”uda”.

See tĂ€hendab, et tĂ”enĂ€oliselt on Ingressi juhitaja vale seadistusega. Kuna Ingressi juhitaja on klastris kolmas osaline komponent, sĂ”ltuvad tĂ”rkeotsingu meetodid selle tĂŒĂŒbist.

Kuid enne, kui kasutate erivahendeid Ingressi seadistamiseks, saate teha midagi vĂ€ga lihtsat. Ingress kasutab serviceName ja servicePort teenusele ĂŒhendamiseks. Peate kontrollima, kas need on Ă”igesti seadistatud. Seda saab teha kĂ€suga:

kubectl describe ingress

Kui veerg Backend on tĂŒhi, on suur tĂ”enĂ€osus seadistuse viga. Kui tagakĂŒljed on olemas, kuid rakendusele pole endiselt juurdepÀÀsu, vĂ”ib probleem olla seotud:

  • Ingressi kĂ€ttesaadavuse seadistustega avalikust internetist;
  • klastrite kĂ€ttesaadavuse seadistused avalikult internetist.

Probleeme infrastruktuuriga saab tuvastada, ĂŒhendudes otse Ingress’i pod’iga. Selleks leidke esmalt Ingress-kontrolleri pod (see vĂ”ib olla teises nimede 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 mÀÀrata port:

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

LĂ”puks ĂŒhendu pod'iga:

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

NĂŒĂŒd suunatakse kĂ”ik 3000 pordi pĂ€ringud arvutis pod'i 80 pordile.

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

  • Kui jah, siis on probleem infrastruktuuris. Tuleb vĂ€lja selgitada, kuidas tĂ€pselt toimub liikluse suunamine klastrisse.
  • Kui ei, siis on probleem Ingress-kontrolleris.

Kui Ingress-kontrollerit ei Ônnestu tööle panna, tuleb selle tÔrkeotsing lÀbi viia.

Ingress-kontrollerite variatsioone on palju. KĂ”ige populaarsemad on Nginx, HAProxy, Traefik jne. (lisateabe saamiseks vaadake meie ĂŒlevaatest — kt. tĂ”lge) Tuleb kasutada vastava kontrolleri dokumentatsioonis sisalduvat tĂ”rkeotsingu guide'i. Kuna Ingress Nginx on kĂ”ige populaarsem Ingress-kontroller, oleme pannud artiklisse mitmeid nĂ€punĂ€iteid selle seotud probleemide lahendamiseks.

Nginx Ingress kontrolleri silumise juhend

Ingress-nginx projektil on ametlik plugina kubectl jaoks. KÀsku kubectl ingress-nginx vÔib kasutada jÀrgmiseks:

  • logide, taustateenuste, sertifikaatide jne analĂŒĂŒsimiseks;
  • Ingress'iga ĂŒhendamiseks;
  • praeguse konfiguratsiooni uurimiseks.

Selleks aitavad teid jÀrgmised kolm kÀsku:

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

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

KokkuvÔte

Kubernetes'is tĂ”rkeotsing vĂ”ib osutuda keeruliseks, kui ei tea, kust alustada. Probleemi tuleks alati lĂ€heneda alt ĂŒles: alustage pod'idest ja liikuge seejĂ€rel teenuse ja Ingress'i poole. Artiklis kirjeldatud tĂ”rkeotsingu meetodeid saab rakendada ka teiste objektide, nagu:

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

Soovin tÀnada Gergely Riskot, Daniel Weibeli ja Charles Christyraj hindamatute mÀrkuste ja tÀienduste eest.

P.S. tÔlkija mÀrkused

Lugege ka meie blogist:

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster