Aghụghọ na ndụmọdụ Kubernetes 10 kacha elu

Aghụghọ na ndụmọdụ Kubernetes 10 kacha elu

Enwere ọtụtụ akwụkwọ ntụaka na ịntanetị, mana mgbe ụfọdụ ndụmọdụ kachasị mfe bụ nke bara uru. Otu Kubernetes aaS sitere na Mail.ru sụgharịa nhọrọ nke aghụghọ iri na ndụmọdụ, nke onye edemede nke akụkọ ahụ chịkọtara mgbe otu afọ na-arụ ọrụ na Kubernetes. A naghị edozi ndụmọdụ site na mkpa, ma anyị na-eche na onye ọ bụla ga-achọta ihe bara uru maka onwe ya.

Iwu kachasị mfe iji na Kubernetes

Iji malite, ikekwe usoro kachasị mfe na nke bara uru na-arụ ọrụ na Kubernetes. Iwu na-esote na-enyere aka ịmecha iwu kubectl na bash shell:

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

Ntọala kubectl a ga-ede ya na faịlụ .bashrc ma ga-arụ ọrụ na-akpaghị aka mgbe ọ bụla ebido shei ahụ. Nke a na-eme ka pịnye ogologo iwu na nhọrọ dịka all-namespaces. Gụkwuo n'ime Kubernetes bash enyemaka.

Ebe nchekwa aha na njedebe CPU

Ọ bụrụ na edeghị ngwa na ezighi ezi, dị ka imepe njikọ nchekwa data ọhụrụ kwa sekọnd mana anaghị emechi ya, mgbe ahụ ụyọkọ ahụ ga-agbapụta ebe nchekwa. Ma ọ bụrụ na ngwa ahụ enweghị oke ebe nchekwa n'oge ntinye, nke a nwere ike ibute ọdịda ọnụ.

Iji gbochie nke a, Kubernetes na-enye gị ohere ịtọ oke ndabara maka oghere aha ọ bụla. Edere ha na faịlụ yaml maka otu aha aha. Nke a bụ ọmụmaatụ ụdị faịlụ a:

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

Mepụta yaml dị otú ahụ ma tinye na oghere aha ọ bụla. Dịka ọmụmaatụ, gaa na ebe aha limit-example. Ugbu a, akpa ọ bụla ebugara na oghere aha a ga-enwe oke 512Mi, belụsọ na edobere oke onye ọzọ maka akpa a.

Nchịkọta ihe mkpofu na ụdị Kubernetes ochie

Kubelet na-amalite nchịkọta mkpofu na ndabara mgbe var/lib/docker nwere 90% nke ohere diski dị. Nke a dị oke mma, Otú ọ dị, tupu Kubernetes 1.7, enweghị njedebe ndabara na ọnụ ọgụgụ nke inodes eji, nke kwekọrọ na ọnụ ọgụgụ faịlụ na faịlụ faịlụ.

O yikarịrị ka akpa gị var/lib/docker nwere ike iji 50% nke ohere diski, ma ọ nwere ike ịpụ na inodes, nke ga-eme ka ndị ọrụ ahụ nwee nsogbu.

Na ụdị kubelet ochie sitere na 1.4 ruo 1.6, ị ga-agbakwunye ọkọlọtọ a:

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

Na 1.7 na mgbe e mesịrị, a na-edozi ọkọlọtọ a na ndabara. Agbanyeghị, ụdị ndị gara aga anaghị etinye oke inode.

Minikube… Kubernetes dị obere mana dị ike

Minikube bụ ụzọ kachasị mfe iji mee ụyọkọ Kubernetes mpaghara. Ejiri iwu dị mfe malite ya:

minikube start

Iwu a ga-ebute ezigbo ụyọkọ Kubernetes na-agba ọsọ na igwe gị.

Aghụghọ na ndụmọdụ Kubernetes 10 kacha elu
Isi mmalite ihe atụ

Aghụghọ bụ ka esi wuo ngwa ma mee ya na mpaghara na ụyọkọ a. Ọ gwụla ma akọwapụtara ya ọzọ, a ga-ewu onyonyo Docker na igwe gị, ọ bụghị na ụyọkọ.

Iji manye Docker ịkwanye onyonyo a na ụyọkọ Kubernetes mpaghara, a na-enye igwe docker iwu a:

eval $(minikube docker-env)

Ugbu a, anyị nwere ike iwulite ngwa na ụyọkọ Kubernetes mpaghara.

Ekekọrịtala onye ọ bụla ohere kubectl

Nke a dị ka ihe doro anya, mana ọ bụrụ na ọtụtụ ndị otu na-eji otu ụyọkọ ahụ maka ngwa ha (nke bụ ihe emere Kubernetes maka), enyela ha niile n'usoro. kubectl. Ọ ka mma ikewapụ iwu ndị ahụ, na-enye onye ọ bụla n'ime ha ohere aha ya na igbochi ohere na iwu RBAC.

Ị nwere ike inwe mgbagwoju anya site n'inye ikike ịnweta, ịgụ, mepụta, ihichapụ na ọrụ ndị ọzọ maka pọd ọ bụla. Ma isi ihe bụ igbochi ịnweta ihe nzuzo, na-enye ya naanị ndị nchịkwa. Otu a ka anyị si amata ọdịiche dị n'etiti ndị nwere ike ịhazi ụyọkọ ahụ na ndị nwere ike ibuga na ya.

Jikwaa ego mmefu ego

Kedu ka esi achọpụta na enweghị oge nkwụsị maka ngwa na ụyọkọ Kubernetes? PodDisruptionBudget na ọzọ PodDisruptionBudget.

A na-emelite ụyọkọ kwa oge, a na-ewepụkwa ọnụ ọnụ. Ọ dịghị ihe guzoro, nke ahụ bụ eziokwu. Nkwanye ọ bụla nwere ihe karịrị otu atụ ga-agụnye PDB (PodDisruptionBudget). Emebere ya na faịlụ yaml dị mfe nke etinyere na ụyọkọ ahụ. A na-ekpebi ogo nke otu PDB site n'aka ndị na-ahọpụta akara.

Cheta na: A na-eburu n'uche mmefu ego PDB naanị ma ọ bụrụ na mmebi mmefu ego nwere ike gbanwee (nkwụsị nke afọ ofufo). N'ọnọdụ dị ka ọdịda ngwaike, PDB agaghị arụ ọrụ.

Ọmụmaatụ PDB:

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

Abụọ isi parameters bụ matchLabels и minAvailable. Oke nke mbụ na-akọwapụta ngwa nke mmefu ego na-emetụta. Dịka ọmụmaatụ, ọ bụrụ na enwere m mkpado nwere mkpado app: app-a и app: app-b, mgbe ahụ PDB a ga-emetụta naanị nke mbụ.

Ogologo minAvailable echebara echiche mgbe ị na-ekpochapụ (na-ehichapụ) ọnụ. Dịka ọmụmaatụ, n'ihe atụ anyị, a na-achụpụ oge niile n'oge mbibi app: app-aewezuga abụọ.

Nke a na-enye gị ohere ijikwa ugboro ole nke ngwa kwesịrị ịdị na-agba n'otu oge.

Ngwa ahụike nlekota

Nleba anya dị otú ahụ ga-ekwe omume n'ụzọ abụọ: iji ule Njikere ma ọ bụ ịdị ndụ.

Nyocha mbụ (njikere) na-ekpebi ma akpa ahụ adịla njikere ịnata okporo ụzọ.

Nke abụọ (ndụ) na-egosi ma akpa ahụ ọ dị mma ma ọ bụ na ọ kwesịrị ịmalitegharị.

A na-agbakwunye nhazi ndị dị mkpa na yaml maka ibuga. N'ebe ahụ, ị ​​nwere ike ịkọwapụta oge nkwụsị, oge igbu oge na ọnụ ọgụgụ nke nnwale. Hụkwuo gbasara ha Kubernetes akwụkwọ.

Akara aha ebe niile

Akara akara bụ otu n'ime echiche bụ isi na Kubernetes. Ha na-ekwe ka ihe na-akparịta ụka n'enweghị ihe ọ bụla, yana ịmepụta arịrịọ dabere na akara. Na Kubernetes, ị nwere ike ịgakwuru onye ahịa wee lelee mmemme maka aha ndị akọwapụtara.

Enwere ike iji akara mee ihe ọ bụla, mana ezigbo ihe atụ ga-abụ imepụta ọtụtụ gburugburu iji mee mmemme na otu ụyọkọ.

Ka anyị kwuo na ị na-eji otu ụyọkọ ahụ maka dev и qa. Nke a pụtara na ị nwere ike ịnwe ngwa app-a, na-arụ ọrụ n'otu oge na gburugburu abụọ qa и dev. N'okwu a, anyị nwere ike ịnweta ihe atụ ngwa iche iche na mpaghara akọwapụtara site na ịkọwapụta oke kwesịrị ekwesị environment. Dịka ọmụmaatụ app: app-a и environment: dev maka otu gburugburu ebe obibi, na app: app-a и environment: qa maka nke abụọ.

Nke a na-enye gị ohere ịnweta oge abụọ nke ngwa ahụ, dịka ọmụmaatụ, iji nwalee n'otu oge.

Dozie ihe n'usoro

Kubernetes bụ usoro dị ike nke ukwuu, mana usoro ọ bụla nwere ike mechaa gbadaa n'ọtụtụ usoro. Kubelet na-eme usoro niile yana nyocha nke ị depụtara, yana nke ya.

N'ezie, otu ọrụ nwa mgbei agaghị eme ka usoro ahụ kwụsịlata, a na-emepụta Kubernetes ka ọ dị elu site na mmalite. Ma ọ bụrụ na kama otu ọrụ otu nde pụtara, kubelet na-amalite ịkpagbu.

Ọ bụrụ n'ihi ihe ụfọdụ ị na-ehichapụ ihe ntinye (akpa, ihe oyiyi, ihe ọ bụla), jide n'aka na ị ga-ehichapụ ya kpamkpam.

Mara Go

Anyị echekwala ọnụ ahịa kacha elu anyị n'ikpeazụ. Mụta asụsụ mmemme Go.

Emepụtara Kubernetes na Go, edere ndọtị niile na Go, yana ọbá akwụkwọ ndị ahịa na-akwadokwa nke ọma.

Enwere ike iji ya mee ihe dị iche iche na ihe na-adọrọ mmasị. Dịka ọmụmaatụ, ịgbatị usoro Kubernetes ka ọ bụrụ ụtọ gị. Dịka ọmụmaatụ, ịnwere ike iji mmemme nke gị iji nakọta data, ibuga ngwa, ma ọ bụ kpochaa arịa.

Ịmụ asụsụ mmemme Go na ịmụta ụzọ ahịa ahịa bụ ikekwe ndụmọdụ kachasị mkpa enwere ike inye ndị ọrụ Kubernetes novice.

Atụgharịrị site na nkwado nke Mail.ru Cloud Solutions

Kedu ihe ọzọ ị ga-agụ:

  1. Ọkwa atọ nke autoscaling na Kubernetes yana otu esi eji ha nke ọma.
  2. Ọnụ ndị ọrụ Kubernetes: Ọtụtụ obere ma ọ bụ ole na ole buru ibu?
  3. Ngwa 25 bara uru maka itinye na ijikwa Kubernetes.

isi: www.habr.com

Tinye a comment