Zanzeru 10 Zapamwamba za Kubernetes ndi Malangizo

Zanzeru 10 Zapamwamba za Kubernetes ndi Malangizo

Pa intaneti pali mabuku ambiri ofotokozera, koma nthawi zina malangizo osavuta amakhala ofunikira kwambiri. Gulu Kubernetes aaS kuchokera ku Mail.ru kumasuliridwa kusankha kwa zidule khumi ndi malangizo, yomwe mlembi wa nkhaniyi adasonkhanitsa pambuyo pa chaka chogwira ntchito ndi Kubernetes. Malangizowo samasanjidwa ndi kufunikira, koma tikuganiza kuti aliyense adzapeza china chake chothandiza kwa iwo eni.

Lamulo losavuta kwambiri logwira ntchito ndi Kubernetes

Poyamba, mwina chinthu chosavuta komanso chothandiza kwambiri pogwira ntchito ndi Kubernetes. Lamulo lotsatirali limathandizira kumaliza kwamalamulo kubectl mu bash chipolopolo:

echo "source <(kubectl completion bash)" >> ~/.bashrc

Zodzaza kubectl zidzalembedwa ku fayilo ya .bashrc ndipo idzatsegulidwa nthawi iliyonse chipolopolocho chikayamba. Izi zimafulumizitsa kulemba malamulo autali ndi magawo monga all-namespaces. Zambiri mu Kubernetes bash thandizo.

Kukumbukira kosasinthika ndi malire a CPU mumalo a mayina

Ngati ntchitoyo yalembedwa molakwika, mwachitsanzo, imatsegula kulumikizana kwatsopano ku database mphindi iliyonse koma osatseka, ndiye kuti gululi limakhala ndi kukumbukira. Ndipo ngati ntchitoyo ilibe malire okumbukira panthawi yomwe akutumizidwa, izi zingayambitse kulephera kwa node.

Kuti mupewe izi, Kubernetes amakulolani kuti muyike zoletsa pamtundu uliwonse wa dzina. Amalembedwa mufayilo yaml pa malo enieni a dzina. Nachi chitsanzo cha fayilo yotere:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

Pangani yaml yotere ndikuyika malo aliwonse. Mwachitsanzo, ku dzina la dzina limit-example. Tsopano chidebe chilichonse chomwe chayikidwa m'malo awa chizikhala ndi malire a 512Mi, pokhapokha ngati palinso malire a munthu wina pachidebe ichi.

Kutolera zinyalala m'mitundu yakale ya Kubernetes

Kubelet mwachisawawa akuyamba kusonkhanitsa zinyalala pamene var/lib/docker imatenga 90% ya malo omwe alipo. Izi ndizabwino, komabe, mpaka Kubernetes 1.7 panalibe malire osakhazikika pa kuchuluka kwa ma inode omwe amagwiritsidwa ntchito, omwe amafanana ndi kuchuluka kwa mafayilo mu fayilo yamafayilo.

Mwina chotengera chanu var/lib/docker angagwiritse ntchito 50% ya malo a disk, koma akhoza kutha ma inode, zomwe zingayambitse mavuto kwa ogwira ntchito.

M'mitundu yakale ya kubelet kuyambira 1.4 mpaka 1.6 muyenera kuwonjezera mbendera iyi:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

M'matembenuzidwe a 1.7 ndi mtsogolo mbendera iyi imayikidwa mwachisawawa. Komabe, matembenuzidwe am'mbuyomu samawunika malire a inode.

Minikube... Kubernetes yaing'ono koma yamphamvu yakomweko

Minikube ndiye njira yosavuta yoyendetsera gulu lanu la Kubernetes. Imayambitsidwa ndi lamulo losavuta:

minikube start

Kuyendetsa lamuloli kumabweretsa gulu lenileni la Kubernetes lomwe likuyenda pakompyuta yanu.

Zanzeru 10 Zapamwamba za Kubernetes ndi Malangizo
Gwero lachifanizo

Chinyengo ndi momwe mungapangire pulogalamuyo ndikuyiyendetsa kwanuko pagululo. Pokhapokha atalangizidwa mwachindunji, chithunzi cha Docker chidzamangidwa pakompyuta yanu osati pamagulu.

Kukakamiza Docker kukankhira chithunzicho ku gulu la Kubernetes, makina a docker amapatsidwa lamulo ili:

eval $(minikube docker-env)

Tsopano titha kupanga mapulogalamu pagulu lapafupi la Kubernetes.

Osapereka mwayi kwa kubectl kwa aliyense

Izi zikuwoneka zoonekeratu, koma ngati magulu angapo akugwiritsa ntchito gulu lomwelo pazofunsira (zomwe Kubernetes adapangidwira), simuyenera kungopatsa aliyense. kubectl. Ndi bwino kulekanitsa malamulo, kugawira aliyense wa iwo dzina lake ndi kuchepetsa mwayi pogwiritsa ntchito RBAC ndondomeko.

Mutha kusokonezedwa popereka ufulu wopeza, kuwerenga, kupanga, kufufuta ndi ntchito zina pa pod iliyonse. Koma chinthu chachikulu ndikuchepetsa mwayi wopeza zinsinsi, ndikuloleza kwa olamulira okha. Mwanjira iyi tidzasiyanitsa pakati pa omwe atha kuyang'anira gululo ndi omwe angangotumizako.

Sinthani Mabajeti a Pod

Momwe mungatsimikizire kuti palibe nthawi yopumira pakugwiritsa ntchito gulu la Kubernetes? PodDisruptionBudget komanso PodDisruptionBudget.

Magulu amasinthidwa nthawi ndi nthawi ndipo ma node amachotsedwa. Palibe chomwe chikuyima, ndicho chenicheni. Kutumiza kulikonse kopitilira nthawi imodzi kuyenera kukhala ndi PDB (PodDisruptionBudget). Zimapangidwa mu fayilo ya yaml yosavuta yomwe imagwiritsidwa ntchito pamagulu. Malo omwe akupezeka pa PDB inayake amatsimikiziridwa ndi osankha zilembo.

Taonani: Bajeti ya PDB imaganiziridwa pokhapokha ngati kuphwanya kwa bajeti kusinthidwa (kusokoneza mwaufulu). Muzochitika ngati kulephera kwa hardware, PDB sigwira ntchito.

Chitsanzo cha PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

Magawo awiri akulu ndi matchLabels ΠΈ minAvailable. Gawo loyamba limatanthawuza ntchito zomwe bajeti ikugwira ntchito. Mwachitsanzo, ngati ndili ndi deployments ndi zilembo app: app-a ΠΈ app: app-b, ndiye PDB iyi idzangogwira ntchito yoyamba.

chizindikiro minAvailable zimaganiziridwa pochotsa (kuyeretsa) mfundo. Mwachitsanzo, mu chitsanzo chathu, panthawi yochotsa, zochitika zonse zimachotsedwa app: app-a, kupatulapo awiri.

Izi zimakuthandizani kuti muzitha kuyang'anira kuchuluka kwa momwe pulogalamuyo iyenera kukhalira nthawi iliyonse.

Kugwiritsa ntchito kuwunika zaumoyo

Kuwunika kotereku kumatheka m'njira ziwiri: kugwiritsa ntchito mayeso a Readiness kapena Liveness.

Kufufuza koyamba (kukonzeka) kumatsimikizira kukonzekera kwa chidebe kuti chilandire magalimoto.

Yachiwiri (yamoyo) ikuwonetsa ngati chidebecho chili chathanzi kapena chikufunika kuyambiranso.

Zosintha zoyenera zimangowonjezeredwa ku yaml kuti itumizidwe. Kumeneko mungathe kufotokoza nthawi, nthawi zochedwa ndi chiwerengero cha zoyesanso. Onani zambiri za iwo Kubernetes zolemba.

Ma tag ali paliponse

Zolemba ndi amodzi mwamalingaliro ofunikira ku Kubernetes. Amalola kuti zinthu zizilankhulana momasuka, komanso kupanga mafunso potengera zilembo. Ku Kubernetes, mutha kupita kwa kasitomala ndikuwonera zochitika zama tag enieni.

Mutha kuchita chilichonse ndi ma tag, koma chitsanzo chabwino chingakhale kupanga malo angapo kuti muyendetse mapulogalamu pagulu lomwelo.

Tiyerekeze kuti mumagwiritsa ntchito gulu lomwelo dev ΠΈ qa. Izi zikutanthauza kuti mutha kukhala ndi pulogalamu app-a, ikugwira ntchito nthawi imodzi m'madera onse awiri qa ΠΈ dev. Pankhaniyi, titha kupeza padera mawonekedwe ogwiritsira ntchito pamalo enaake pofotokoza gawo loyenera environment. Mwachitsanzo, app: app-a ΠΈ environment: dev kwa chilengedwe chimodzi, ndi app: app-a ΠΈ environment: qa kwa wachiwiri.

Izi zimakupatsani mwayi wofikira zochitika zonse ziwiri za pulogalamuyo, mwachitsanzo, kuyesa nthawi imodzi.

Khalani okonzeka

Kubernetes ndi dongosolo lamphamvu kwambiri, koma dongosolo lililonse limatha kukhazikika ndi njira zambiri. Kubelet imayendetsa njira zonse ndikuwunika zomwe mwafotokoza, komanso zake.

Zachidziwikire, ntchito imodzi yamasiye singachedwetse dongosololi, ndipo Kubernetes idapangidwa kuti izikula kuchokera pansi kupita pansi. Koma ngati m'malo mwa ntchito imodzi miliyoni ikuwonekera, kubelet imayamba kutsamwitsidwa.

Ngati pazifukwa zina muchotsa zotumiza (chotengera, chithunzi, chilichonse), ingoonetsetsani kuti mukuyeretsa kwathunthu.

Kumanani ndi Go

Tasunga upangiri waukulu komaliza. Phunzirani chilankhulo cha pulogalamu ya Go.

Kubernetes imapangidwa mu Go, zowonjezera zonse zimalembedwa mu Go, ndipo laibulale ya kasitomala-pita imathandizidwanso mwalamulo.

Itha kugwiritsidwa ntchito pazinthu zosiyanasiyana komanso zosangalatsa. Mwachitsanzo, kukulitsa dongosolo la Kubernetes ku kukoma kwanu. Chifukwa chake, mutha kugwiritsa ntchito mapulogalamu anu kusonkhanitsa deta, kutumiza mapulogalamu, kapena kuyeretsa zotengera.

Kuphunzira chilankhulo cha pulogalamu ya Go ndikuwongolera kasitomala-kupita mwina upangiri wofunikira kwambiri womwe mungapatse ogwiritsa ntchito atsopano a Kubernetes.

Kutanthauziridwa mothandizidwa ndi Mail.ru Cloud Solutions

Chinanso choti muwerenge:

  1. Miyezo itatu ya autoscaling ku Kubernetes ndi momwe mungagwiritsire ntchito bwino.
  2. Kubernetes node ogwira ntchito: ambiri ang'onoang'ono kapena akulu ochepa?
  3. Zida 25 Zothandiza Potumiza ndi Kuwongolera Kubernetes.

Source: www.habr.com

Kuwonjezera ndemanga