Top 10 Kubernetes togafiti ma Fautuaga

Top 10 Kubernetes togafiti ma Fautuaga

O loʻo i ai le tele o tusi faʻasino i luga ole Initaneti, ae o nisi taimi o fautuaga sili ona faigofie e sili ona taua. Au Kubernetes aaS mai Mail.ru faaliliuina se filifiliga o togafiti e sefulu ma fautuaga, lea na aoina e le tusitala o le tusiga ina ua maeʻa le tausaga o galue ma Kubernetes. O fautuaga e le faʻavasegaina i le taua, ae matou te manatu o le a maua e tagata uma se mea aoga mo i latou lava.

Le fa'atonuga faigofie e galulue ma Kubernetes

I le amataga, atonu o le gaioiga sili ona faigofie ma sili ona aoga i le galulue faatasi ma Kubernetes. O le fa'atonuga lea e mafai ai ona fa'amae'aina le fa'atonuga kubectl i totonu o le atigi bash:

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

Autocomplete kubectl o le a tusia i le faila .bashrc ma o le a otometi ona faʻagaoioia i taimi uma e amata ai le atigi. O le mea lea e faatelevaveina ai le taina o poloaiga uumi ma tapulaʻa pei ole all-namespaces. Fa'amatalaga atili ile Kubernetes bash fesoasoani.

Fa'agata manatua ma le CPU tapula'a i totonu ole igoa avanoa

Afai e sese le tusi talosaga, mo se faʻataʻitaʻiga, e tatalaina ai se fesoʻotaʻiga fou i le database i sekone taʻitasi ae e le tapunia, ona iai lea o le faʻamaufaʻailoga e manatua ai. Ma afai o le talosaga e leai se tapulaa manatua seti i le taimi o le faʻapipiʻiina, e mafai ona oʻo atu ai i le faʻaletonu o le node.

Ina ia puipuia lenei mea, e mafai e Kubernetes ona faʻatagaina oe e seti faʻatapulaʻa faʻatapulaʻaina i luga ole igoa ole igoa. O lo'o tusia i le faila yaml mo se igoa fa'apitoa. O se faʻataʻitaʻiga lea o se faila:

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

Fausia sea yaml ma faʻaoga i soʻo se igoa avanoa. Mo se faʻataʻitaʻiga, i le igoa avanoa limit-example. O lea la so'o se atigipusa o lo'o fa'apipi'i i totonu o lenei va'aiga igoa o le a iai le tapula'a o le 512Mi, se'i vagana ua fa'aopoopoina se isi tapula'a mo lenei koneteina.

Aoina lapisi i lomiga tuai o Kubernetes

Kubelet e le mafai ona amata aoina lapisi pe a var/lib/docker nofoia 90% o avanoa disk avanoa. E lelei tele lenei, peitaʻi, seia oʻo i le Kubernetes 1.7 e leai se faʻatapulaʻaina o le numera o inodes na faʻaaogaina, e fetaui ma le numera o faila i le faila faila.

Atonu o lau koneteina var/lib/docker e mafai ona faʻaaogaina naʻo le 50% o le disk space, ae mafai ona faʻaumatia inodes, e mafua ai faʻafitauli mo tagata faigaluega.

I lomiga tuai o kubelet mai le 1.4 i le 1.6 e tatau ona e faʻaopoopoina le fuʻa lenei:

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

I le 1.7 ma fa'asologa mulimuli ane o lenei fu'a ua fa'atulaga e le mafai. Ae ui i lea, o lomiga muamua e le mataʻituina le tapulaa o le inode.

Minikube... laiti ae malolosi Kubernetes i le lotoifale

O le Minikube o le auala pito sili lea ona faigofie e faʻatautaia ai se faʻalapotopotoga Kubernetes i le lotoifale. E fa'alauiloa i se fa'atonuga faigofie:

minikube start

O le fa'atinoina o lenei fa'atonuga e maua ai se fuifui moni Kubernetes o lo'o fa'agaoioi i lau masini.

Top 10 Kubernetes togafiti ma Fautuaga
Punavai fa'ata'ita'iga

O le togafiti o le auala e fausia ai le talosaga ma faʻatautaia i le lotoifale i luga o lena fuifui. Vagana ua faʻatonuina faʻapitoa, o le ata Docker o le a fausia i luga o lau komepiuta ae le o luga ole fuifui.

Ina ia faʻamalosia Docker e tulei le ata i le faʻalapotopotoga Kubernetes i le lotoifale, o le masini faʻapipiʻi ua tuʻuina atu le poloaiga lenei:

eval $(minikube docker-env)

Ole taimi nei e mafai ona tatou fausia ni talosaga ile fa'alapotopotoga Kubernetes.

Aua le tuuina atu le kubectl avanoa i tagata uma

E foliga mai e manino, ae afai e tele 'au o loʻo faʻaogaina le fuifui tutusa mo a latou talosaga (o le mea lea na faia ai Kubernetes), e le tatau ona e tuʻuina atu i tagata uma. kubectl. E sili atu le vavaeeseina o poloaiga, tuʻuina atu ia i latou taʻitoʻatasi a latou lava igoa ma faʻatapulaʻaina avanoa e faʻaaoga ai faiga faʻavae RBAC.

E mafai ona e fenumiai e ala i le tuʻuina atu o aia tatau e maua ai, faitau, fatuina, tape ma isi gaioiga mo pod taʻitasi. Ae o le mea autu o le faʻatapulaʻaina o avanoa i mealilo, faʻatagaina naʻo pule. O le auala lea o le a tatou vaʻavaʻai ai i latou e mafai ona faʻatautaia le fuifui ma i latou e mafai ona faʻapipiʻi i ai.

Puleaina Tala o le Pod

E faʻapefea ona faʻamautinoa e leai se taimi malolo mo se talosaga i totonu o le Kubernetes cluster? PodDisruptionBudget ma toe PodDisruptionBudget.

O fa'aputuga e fa'afou i lea taimi ma lea taimi ma fa'agaogao. E leai se mea e tu, o le mea moni lena. O fa'atinoga uma e sili atu ma le tasi le fa'ata'ita'iga e tatau ona aofia ai se PDB (PodDisruptionBudget). E faia i se faila yaml faigofie e faʻaoga i le fuifui. Ole vaega fa'asalalau ole PDB fa'apitoa e fa'amoemoeina e tagata filifilia igoa.

Manatua: O le tala o le tupe a le PDB e na'o le taimi lava e toe fa'afo'i ai le soliga o le paketi (fa'alavelave tauofo). I tulaga e pei o masini faaletonu, PDB o le a le aoga.

Faataitaiga PDB:

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

O vaega autu e lua o matchLabels и minAvailable. O le parakalafa muamua o lo'o fa'amaoti mai po'o fea talosaga e fa'atatau i ai le paketi. Mo se faʻataʻitaʻiga, afai ei ai aʻu faʻasalalauga ma faʻailoga app: app-a и app: app-b, ona faʻaaogaina lea o lenei PDB i le muamua.

Parakalafa minAvailable amanaia pe a gaogao (faamamaina) le node. Mo se faʻataʻitaʻiga, i la tatou faʻataʻitaʻiga, i le taimi o le gaogao, o mea uma e faʻateʻaina app: app-a, vagana ai le lua.

O lenei mea e mafai ai e oe ona pulea pe fia taimi o le talosaga e tatau ona tamoe i soo se taimi.

Fa'aoga mata'ituina le soifua maloloina

O ia mata'itū e mafai i ni auala se lua: fa'aaogā su'ega o le Sauniuni po'o le Liveness.

O le su'esu'ega muamua (sauniuni) e iloa ai le sauni o le koneteina e talia fe'avea'i.

O le lona lua (liveness) o lo'o fa'aalia ai pe lelei le atigipusa pe mana'omia ona toe fa'aola.

O fetuutuunaiga talafeagai e faʻaopoopoina i le yaml mo le faʻapipiʻiina. O iina e mafai ona e fa'ailoa mai ai taimi fa'agata, fa'atuai taimi ma le aofa'i o su'ega. Va'ai nisi fa'amatalaga e uiga ia i latou Kubernetes pepa aloaia.

O lo'o iai fa'ailoga i so'o se mea

Fa'ailoga o se tasi lea o manatu fa'avae i Kubernetes. Latou te faʻatagaina mea faitino e fesoʻotaʻi saoloto le tasi i le isi, faʻapea foʻi ma le faia o fesili e faʻavae i luga o igoa. I le Kubernetes, e mafai fo'i ona e alu i le kalani ma matamata i mea na tutupu mo fa'ailoga patino.

E mafai ona e faia toetoe lava o soʻo se mea i faʻailoga, ae o se faʻataʻitaʻiga lelei o le fatuina o ni siosiomaga se tele e faʻatautaia ai polokalame i luga o le fuifui tutusa.

Fa'apea e te fa'aogaina le fuifui tutusa mo dev и qa. O lona uiga e mafai ona iai sau talosaga app-a, galue i le taimi e tasi i siosiomaga uma e lua qa и dev. I lenei tulaga, e mafai ona tatou faʻaogaina faʻapitoa le faʻataʻitaʻiga faʻataʻitaʻiga i se siosiomaga faʻapitoa e ala i le faʻamaonia o le parakalafa talafeagai environment. Mo se faʻataʻitaʻiga app: app-a и environment: dev mo le siosiomaga e tasi, ma app: app-a и environment: qa mo le lona lua.

Ole mea lea e fa'atagaina ai oe e fa'aogaina fa'ata'ita'iga uma e lua o le talosaga, mo se fa'ata'ita'iga, e fa'atino su'ega i le taimi e tasi.

Ia faatulaga lelei

O le Kubernetes o se faiga malosi tele, ae o soʻo se faiga e mafai ona faʻaumatia i lalo i le tele o faiga. O le Kubelet e faʻatautaia uma faiga ma siaki e te faʻamaonia, faʻapea foʻi ma ana lava.

O le mea moni, e le fa'agesegese le faiga e tasi le 'au'aunaga matuaoti, ma o Kubernetes ua mamanuina e fa'asolo mai i lalo. Ae afai ae le o le tasi auaunaga e aliali mai le miliona, o le kubelet e amata ona laoa.

Afai mo se mafuaʻaga e te tapeina ai se faʻapipiʻiina (container, image, soʻo se mea), ia mautinoa e fai se faʻamamā atoatoa.

Feiloai Go

Na matou teuina le fautuaga autu mo le mulimuli. A'oa'o le gagana polokalame Go.

Kubernetes e atiina ae i le Go, o faʻaopoopoga uma e tusia i le Go, ma o le client-go client library o loʻo lagolagoina aloaʻia.

E mafai ona faʻaaogaina mo mea eseese ma manaia. Mo se faʻataʻitaʻiga, ia faʻalautele le Kubernetes system i lou tofo. O lea la, e mafai ona e faʻaogaina au lava polokalame e aoina ai faʻamaumauga, faʻapipiʻi talosaga, pe naʻo le faʻamamaina o pusa.

O le a'oa'oina o le gagana fa'apolokalame a le Go ma le fa'ata'ita'iina o tagata fa'atau-go atonu o le fautuaga sili lea ona taua e mafai ona e tu'uina atu i tagata fou Kubernetes.

Fa'aliliu ma le lagolago a Mail.ru Cloud Solutions

O le a se isi mea e faitau:

  1. Tolu tulaga o le autoscaling i Kubernetes ma le faʻaogaina lelei.
  2. Nodes tagata faigaluega Kubernetes: tele ni mea laiti po'o ni nai mea tetele?
  3. 25 Meafaigaluega Fa'aoga mo le Fa'atulagaina ma le Puleaina o Kubernetes.

puna: www.habr.com

Faaopoopo i ai se faamatalaga