Malebela le malebela a 10 a holimo ho Kubernetes

Malebela le malebela a 10 a holimo ho Kubernetes

Ho na le lingoliloeng tse ngata tsa litšupiso Inthaneteng, empa ka linako tse ling malebela a bonolo ke a bohlokoa ka ho fetisisa. Sehlopha Kubernetes aaS ho tsoa ho Mail.ru fetoletsoe khetho ea maqheka le malebela a leshome, eo mongoli oa sehlooho a e bokeletseng ka mor'a selemo sa mosebetsi le Kubernetes. Malebela ha a hlophisoe ka bohlokoa, empa re nahana hore motho e mong le e mong o tla iphumanela ho hong ho molemo.

Taelo e bonolo ka ho fetisisa ea ho e sebelisa le Kubernetes

Ho qala, mohlomong mohato o bonolo le o molemo ka ho fetisisa oa ho sebetsa le Kubernetes. Taelo e latelang e thusa ho phethela taelo kubectl ka bash shell:

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

Autofill kubectl e tla ngolloa faeleng ea .bashrc mme e tla kengoa tšebetsong ka bo eona nako le nako ha khetla e qala. Sena se potlakisa ho thaepa litaelo tse telele le likhetho tse kang all-namespaces. Bala haholoanyane ho Kubernetes bash thuso.

Memori ea sebaka sa mabitso le meeli ea kamehla ea CPU

Haeba sesebelisoa se ngotsoe hampe, joalo ka ho bula khokahano e ncha ea database motsotsoana o mong le o mong empa o sa e koale, sehlopha se tla lutla memori. 'Me haeba kopo e se na moeli oa mohopolo nakong ea ho romelloa, sena se ka lebisa ho hloleheng ha node.

Ho thibela sena, Kubernetes e u lumella ho beha meeli ea kamehla bakeng sa sebaka ka seng sa mabitso. Li ngotsoe faeleng ea yaml bakeng sa sebaka se itseng sa mabitso. Mohlala oa faele e joalo ke ona:

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

Theha yaml e joalo 'me u e sebelise sebakeng sefe kapa sefe sa mabitso. Ka mohlala, ho ea sebakeng sa mabitso limit-example. Joale, sets'oants'o sefe kapa sefe se kentsoeng sebakeng sena sa mabitso se tla ba le moeli oa 512Mi, ntle le haeba ho behiloe moeli o mong bakeng sa setshelo sena.

Pokello ea lithōle liphetolelong tsa khale tsa Kubernetes

Kubelet e qala pokello ea lithōle ka ho sa feleng ha var/lib/docker e nka 90% ea sebaka sa disk se fumanehang. Sena se setle, leha ho le joalo, pele ho Kubernetes 1.7, ho ne ho se na moeli oa kamehla oa palo ea li-inode tse sebelisoang, tse lumellanang le palo ea lifaele tsamaisong ea faele.

Mohlomong setshelo sa hau var/lib/docker e ka sebelisa 50% feela ea sebaka sa disk, empa e ka felloa ke li-inode, e leng se tla baka mathata ho basebetsi.

Liphetolelong tsa khale tsa kubelet ho tloha 1.4 ho isa ho 1.6, o tla tlameha ho kenyelletsa folakha e latelang:

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

Ka 1.7 le hamorao, folakha ena e behiloe ka ho sa feleng. Leha ho le joalo, liphetolelo tse fetileng ha li qobelle moeli oa li-inode.

Minikube… Kubernetes ea lehae e nyane empa e le matla

Minikube ke tsela e bonolo ka ho fetisisa ea ho tsamaisa sehlopha sa lehae sa Kubernetes. E qalisoa ka taelo e bonolo:

minikube start

Taelo ena e tla fella ka sehlopha sa 'nete sa Kubernetes se sebetsang mochining oa hau.

Malebela le malebela a 10 a holimo ho Kubernetes
Mohloli oa litšoantšo

Leqheka ke mokhoa oa ho aha kopo le ho e tsamaisa sebakeng sa heno sehlopheng sena. Ntle le ha ho boletsoe ka tsela e 'ngoe, setšoantšo sa Docker se tla hahoa mochining oa hau, eseng sehlopheng.

Ho qobella Docker ho sutumelletsa setšoantšo ho sehlopha sa sebakeng sa Kubernetes, taelo e latelang e fuoa mochini oa docker:

eval $(minikube docker-env)

Joale re ka theha lits'ebetso ho sehlopha sa lehae sa Kubernetes.

Se ke oa arolelana phihlello ea kubectl le batho bohle

Sena se bonahala se hlakile, empa haeba lihlopha tse ngata li sebelisa sehlopha se le seng bakeng sa lits'ebetso tsa tsona (e leng seo Kubernetes e etselitsoeng sona), u se ke ua fa motho e mong le e mong. kubectl. Ho molemo ho arola litaelo, ho fa e 'ngoe le e 'ngoe ea tsona sebaka sa eona sa mabitso le ho fokotsa phihlello ka maano a RBAC.

U ka ferekana ka ho abela litokelo tsa ho fihlella, ho bala, ho theha, ho hlakola, le lits'ebetso tse ling bakeng sa pod ka 'ngoe. Empa ntho e ka sehloohong ke ho thibela ho fihlella liphiri, ho e lumella feela ho batsamaisi. Ena ke tsela eo re khethollang ka eona pakeng tsa ba ka tsamaisang sehlopha le ba khonang ho se tsamaisa feela.

Laola Lichelete tsa Pod

U ka etsa bonnete ba hore ha ho na nako ea ho etsa kopo ka har'a sehlopha sa Kubernetes? PodDisruptionBudget le hape PodDisruptionBudget.

Lihlopha li nchafatsoa nako le nako 'me li-node lia ntšoa. Ha ho letho le emang, ke nnete eo. Mosebetsi o mong le o mong o nang le liketsahalo tse fetang bonngoe o tlameha ho kenyelletsa PDB (PodDisruptionBudget). E entsoe ka faele ea yaml e bonolo e sebelisoang sehlopheng. Bophahamo ba PDB e itseng bo khethoa ke ba khethang lileibole.

Ela hloko: Tekanyetso ea lichelete ea PDB e nkoa feela ha ho ka ba le tlolo ea tekanyetso e ka fetoloang (tshitiso ya boithaopo). Maemong a kang ho hloleha ha hardware, PDB e ke ke ea sebetsa.

Mohlala oa PDB:

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

Mekhahlelo e 'meli e meholo ke matchLabels и minAvailable. Paramethara ea pele e hlalosa hore na tekanyetso e sebetsa ho lisebelisoa life. Ka mohlala, haeba ke na le li-deployments tse nang le li-tag app: app-a и app: app-b, ebe PDB ena e tla sebetsa ho ea pele feela.

Parameter minAvailable ho nkoa ka hloko ha ho hlatsuoa (hlakola) node. Ka mohlala, mohlaleng oa rona, liketsahalo tsohle li lelekoa nakong ea tšenyo app: app-ahaese tse peli feela.

Sena se o lumella ho laola hore na ke maemo a makae a kopo a lokelang ho sebetsa ka nako efe kapa efe.

Tlhokomelo ea bophelo bo botle ba kopo

Tlhokomelo e joalo e ka khoneha ka mekhoa e 'meli: ho sebelisa liteko tsa Readiness kapa Liveness.

Tlhahlobo ea pele (ho itokisetsa) e etsa qeto ea hore na setshelo se se se loketse ho amohela sephethephethe.

Ea bobeli (liveness) e bontša hore na setshelo se phetse hantle kapa se hloka ho tsosolosoa.

Litlhophiso tse amehang li kenyelletsoa feela ho yaml bakeng sa ho tsamaisoa. Ha u le moo u ka hlakisa linako tsa nako, nako ea ho lieha le palo ea ho leka hape. Sheba ho eketsehileng ka bona Litokomane tsa Kubernetes.

E ngola hohle

Labels ke e 'ngoe ea mehopolo ea mantlha ho Kubernetes. Ba lumella lintho ho buisana ka bolokolohi, hammoho le ho etsa likopo tse thehiloeng ho li-labels. Ho Kubernetes, o ka ea ho moreki le ho shebella liketsahalo bakeng sa lileibole tse itseng.

Hoo e ka bang eng kapa eng e ka etsoa ka lileibole, empa mohlala o motle e ka ba ho theha libaka tse ngata ho tsamaisa mananeo sehlopheng se le seng.

Ha re re u sebelisa sehlopha se tšoanang bakeng sa dev и qa. Sena se bolela hore o ka ba le kopo app-a, e sebetsa ka nako e le 'ngoe libakeng tseo ka bobeli qa и dev. Tabeng ena, re ka fihlella mohlala oa kopo ka thoko sebakeng se itseng ka ho hlakisa paramente e nepahetseng environment. Mohlala app: app-a и environment: dev bakeng sa tikoloho e le 'ngoe, le app: app-a и environment: qa bakeng sa bobeli.

Sena se o lumella ho fihlella maemo a mabeli a kopo, mohlala, ho etsa liteko ka nako e le 'ngoe.

Beha lintho ka tlhophiso

Kubernetes ke tsamaiso e matla haholo, empa tsamaiso leha e le efe e ka qetella e kene ka har'a palo e kholo ea mekhoa. Kubelet e tsamaisa lits'ebetso tsohle mme e hlahloba seo u se bolelang, hammoho le ea eona.

Ehlile, ts'ebeletso e le 'ngoe ea likhutsana e ke ke ea liehisa sistimi, mme Kubernetes e etselitsoe ho hola ho tloha qalong. Empa haeba ho e-na le tšebeletso e le 'ngoe milione e hlaha, kubelet e qala ho bipetsa.

Haeba ka mabaka a itseng u tlosa ho romelloa (setshelo, setšoantšo, eng kapa eng), etsa bonnete ba hore u se hloekisa ka ho feletseng.

Tseba Go

Re bolokile malebela a rona a holimo bakeng sa ho qetela. Ithute puo ea lenaneo la Go.

Kubernetes e ntlafalitsoe ho Go, likeketso tsohle li ngotsoe ho Go, mme laeborari ea bareki le eona e tšehetsoa ka molao.

E ka sebelisoa bakeng sa lintho tse fapaneng le tse thahasellisang. Mohlala, ho holisa sistimi ea Kubernetes ho tatso ea hau. Mohlala, o ka sebelisa mananeo a hau ho bokella data, ho tsamaisa lits'ebetso, kapa ho hloekisa lijana feela.

Ho ithuta puo ea lenaneo la Go le ho tseba bareki-go mohlomong ke keletso ea bohlokoa ka ho fetisisa e ka fuoang basebelisi ba qalang ba Kubernetes.

E fetoletsoe ka tšehetso ea Mail.ru Cloud Solutions

Ke eng hape eo u lokelang ho e bala:

  1. Methati e meraro ea autoscaling ho Kubernetes le mokhoa oa ho e sebelisa ka nepo.
  2. Li-Node tsa Basebetsi tsa Kubernetes: Tse ngata tse nyane kapa tse nyane tse kholo?
  3. Lisebelisoa tse 25 tse sebetsang bakeng sa ho tsamaisa le ho tsamaisa Kubernetes.

Source: www.habr.com

Eketsa ka tlhaloso