ʻEiwa Kubernetes Manaʻo Hoʻokō

ʻEiwa Kubernetes Manaʻo Hoʻokō

Aloha kākou! ʻO Oleg Sidorenkov koʻu inoa, hana wau ma DomClick ma ke ʻano he poʻo o ka hui ʻoihana. Ua hoʻohana mākou iā Kubik i ka hana ʻana ma mua o ʻekolu mau makahiki, a i kēia manawa ua ʻike mākou i nā manawa hoihoi like ʻole me ia. I kēia lā, e haʻi aku wau iā ʻoe pehea, me ke ala kūpono, hiki iā ʻoe ke ʻoki i nā hana hou aʻe mai loko mai o vanilla Kubernetes no kāu hui. Mākaukau mau!

Ua ʻike maopopo ʻoukou a pau ʻo Kubernetes kahi ʻōnaehana wehe hoʻonui ʻia no ka hoʻokani pahu pahu; maikaʻi, a i ʻole 5 binaries e hana kilokilo ma o ka hoʻokele ʻana i ke kaʻina ola o kāu microservices i kahi kikowaena kikowaena. Eia kekahi, he mea hana maʻalahi hiki ke hōʻuluʻulu ʻia e like me Lego no ka hana maʻamau no nā hana like ʻole.

A ua maikaʻi nā mea a pau: e hoʻolei i nā kikowaena i loko o ka pūpū e like me ka wahie i loko o kahi pahu ahi, a ʻaʻole ʻoe e ʻike i ke kaumaha. Akā inā ʻoe no ke kaiapuni, e noʻonoʻo ʻoe: "Pehea e hiki ai iaʻu ke hoʻomau i ke ahi e ʻā a mālama i ka nahele?" I nā huaʻōlelo ʻē aʻe, pehea e ʻimi ai i nā ala e hoʻomaikaʻi ai i ka ʻoihana a hoʻemi i nā kumukūʻai.

1. Nānā i ka hui a me nā kumuwaiwai noi

ʻEiwa Kubernetes Manaʻo Hoʻokō

ʻO kekahi o nā mea maʻamau, akā ʻoi aku ka maikaʻi o ka hoʻokomo ʻana i nā noi / palena. E hoʻokaʻawale i nā noi ma nā inoa, a me nā inoa inoa e nā hui hoʻomohala. Ma mua o ka hoʻoili ʻia ʻana, e hoʻonohonoho i nā waiwai noi no ka hoʻohana ʻana i ka manawa kaʻina hana, ka hoʻomanaʻo, a me ka mālama ephemeral.

resources:
   requests:
     memory: 2Gi
     cpu: 250m
   limits:
     memory: 4Gi
     cpu: 500m

Ma o ka ʻike, ua hiki mākou i ka hopena: ʻaʻole pono ʻoe e hoʻonui i nā noi mai nā palena ma mua o ʻelua. Hoʻohālikelike ʻia ka nui o ka puʻupuʻu ma muli o nā noi, a inā hāʻawi ʻoe i nā noi i kahi ʻokoʻa i nā kumuwaiwai, no ka laʻana, 5-10 mau manawa, a laila e noʻonoʻo i ka mea e hiki mai ana i kāu node ke hoʻopiha ʻia me nā pods a loaʻa koke ka ukana. ʻAʻohe mea maikaʻi. Ma ka liʻiliʻi, throttling, a ma ka palena nui, e ʻōlelo aku ʻoe i ke aloha i ka mea hana a loaʻa kahi haʻahaʻa cyclic ma nā nodes i koe ma hope o ka hoʻomaka ʻana o ka neʻe ʻana o nā pods.

Eia hou, me ke kōkua limitranges I ka hoʻomaka, hiki iā ʻoe ke hoʻonohonoho i nā waiwai waiwai no ka ipu - ka liʻiliʻi, ka nui a me ka paʻamau:

➜  ~ kubectl describe limitranges --namespace ops
Name:       limit-range
Namespace:  ops
Type        Resource           Min   Max   Default Request  Default Limit  Max Limit/Request Ratio
----        --------           ---   ---   ---------------  -------------  -----------------------
Container   cpu                50m   10    100m             100m           2
Container   ephemeral-storage  12Mi  8Gi   128Mi            4Gi            -
Container   memory             64Mi  40Gi  128Mi            128Mi          2

Mai poina e kaupalena i nā kumuwaiwai inoa i hiki ʻole i hoʻokahi hui ke lawe i nā kumuwaiwai āpau o ka pūʻulu:

➜  ~ kubectl describe resourcequotas --namespace ops
Name:                   resource-quota
Namespace:              ops
Resource                Used          Hard
--------                ----          ----
limits.cpu              77250m        80
limits.memory           124814367488  150Gi
pods                    31            45
requests.cpu            53850m        80
requests.memory         75613234944   150Gi
services                26            50
services.loadbalancers  0             0
services.nodeports      0             0

E like me ka mea i ʻike ʻia mai ka wehewehe resourcequotas, inā makemake ka hui ops e kau i nā pods e hoʻopau i kahi 10 cpu hou, ʻaʻole e ʻae ka mea hoʻonohonoho i kēia a e hoʻolei i kahi hewa:

Error creating: pods "nginx-proxy-9967d8d78-nh4fs" is forbidden: exceeded quota: resource-quota, requested: limits.cpu=5,requests.cpu=5, used: limits.cpu=77250m,requests.cpu=53850m, limited: limits.cpu=10,requests.cpu=10

No ka hoʻoponoponoʻana i kēlā pilikia, hiki iāʻoe ke kākau i kahi mea hana, no ka laʻana, like kēia, hiki ke mālama a hoʻokō i ke kūlana o nā kumuwaiwai kauoha.

2. E koho i ka waihona waihona maikaʻi loa

ʻEiwa Kubernetes Manaʻo Hoʻokō

Maanei, makemake wau e hoʻopā i ke kumuhana o nā volumes mau a me ka subsystem disk o nā nodes limahana Kubernetes. Manaʻo wau ʻaʻole hoʻohana kekahi i ka "Cube" ma kahi HDD i ka hana ʻana, akā i kekahi manawa ʻaʻole lawa ka SSD maʻamau. Ua loaʻa iā mākou kahi pilikia kahi e pepehi ai nā lāʻau i ka disk ma muli o nā hana I/O, a ʻaʻole nui nā hopena:

  • E hoʻohana i nā SSD kiʻekiʻe a i ʻole e hoʻololi iā NVMe (inā ʻoe e hoʻokele i kāu lako ponoʻī).

  • E ho'ēmi i ka pae logging.

  • E hana "akamai" i ke kaupaona ʻana o nā pods e hoʻopololei i ka disk (podAntiAffinity).

Hōʻike ka ʻaoʻao ma luna i ka mea e hana ana ma lalo o ka nginx-ingress-controller i ka disk ke hiki ke hoʻopaʻa inoa ʻia ka access_logs (~ 12 tausani logs / sec). ʻO kēia kūlana, ʻoiaʻiʻo, hiki ke alakaʻi i ka degradation o nā noi āpau ma kēia node.

No PV, auwe, ʻaʻole au i hoʻāʻo i nā mea a pau mau ʻano Nā Volume Hoʻomau. E hoʻohana i ka koho maikaʻi loa i kūpono iā ʻoe. ʻO ka mōʻaukala, ua loaʻa i ko mākou ʻāina kahi hapa liʻiliʻi o nā lawelawe e koi ai i nā puke RWX, a i ka wā lōʻihi i hoʻomaka ai lākou e hoʻohana i ka waihona NFS no kēia hana. Maikaʻi a ... lawa. ʻOiaʻiʻo, ua ʻai māua ʻo ia i ka ʻōpala - e hoʻomaikaʻi iā ʻoe, akā ua aʻo mākou e hoʻolohe, ʻaʻole e ʻeha hou koʻu poʻo. A inā hiki, e neʻe i kahi waihona mea S3.

3. E hōʻiliʻili i nā kiʻi i hoʻopaʻa ʻia

ʻEiwa Kubernetes Manaʻo Hoʻokō

ʻOi aku ka maikaʻi o ka hoʻohana ʻana i nā kiʻi i hoʻopaʻa ʻia i ka pahu i hiki i nā Kubernetes ke kiʻi wikiwiki a hoʻokō pono iā lākou. 

Optimized 'o ia ho'i nā ki'i:

  • hoʻokahi wale nō noi a hana paha i hoʻokahi hana;

  • liʻiliʻi i ka nui, no ka mea, hoʻouna ʻia nā kiʻi nui ma luna o ka pūnaewele;

  • loaʻa nā hopena olakino a me ka mākaukau e hiki ai iā Kubernetes ke hana i ka wā hoʻomaha;

  • e hoʻohana i nā ʻōnaehana hoʻohana ʻana i ka pahu (e like me Alpine a i ʻole CoreOS), ʻoi aku ka pale ʻana i nā hewa hoʻonohonoho;

  • e hoʻohana i nā hale hana he nui i hiki iā ʻoe ke kau wale i nā noi i hōʻuluʻulu ʻia a ʻaʻole nā ​​kumu e pili pū ana.

Nui nā mea hana a me nā lawelawe e ʻae iā ʻoe e nānā a hoʻopaʻa i nā kiʻi ma ka lele. He mea nui e mālama mau iā lākou a hoʻāʻo ʻia no ka palekana. ʻO ka hopena e loaʻa iā ʻoe:

  1. Hoʻemi ʻia ka hoʻouka ʻana o ka pūnaewele ma ka pūʻulu holoʻokoʻa.

  2. Hoʻemi i ka manawa hoʻomaka pahu.

  3. ʻO ka liʻiliʻi liʻiliʻi o kāu papa inoa Docker holoʻokoʻa.

4. E hoʻohana i ka huna huna DNS

ʻEiwa Kubernetes Manaʻo Hoʻokō

Inā mākou e kamaʻilio e pili ana i nā ukana kiʻekiʻe, a laila maikaʻi loa ke ola me ka ʻole o ka hoʻokō ʻana i ka ʻōnaehana DNS o ka cluster. I kekahi manawa, kākoʻo nā mea hoʻomohala Kubernetes i kā lākou kube-dns solution. Ua hoʻokō ʻia ma ʻaneʻi, akā ʻaʻole i hoʻolohe pono ʻia kēia polokalamu a ʻaʻole i hana i ka hana i koi ʻia, ʻoiai he hana maʻalahi ia. A laila ua ʻike ʻia nā coredns, a mākou i hoʻololi ai a ʻaʻohe kaumaha; ua lilo ia i lawelawe DNS paʻamau ma K8s. I kekahi manawa, ua ulu mākou i 40 tausani rps i ka ʻōnaehana DNS, a ua lawa ʻole kēia hopena. Akā, ma ka laki, ua puka mai ʻo Nodelocaldns, aka node local cache, aka NodeLocal DNSCache.

No ke aha mākou e hoʻohana ai i kēia? Aia kekahi hewa i loko o ka Linux kernel, i ka wā e kāhea ai i nā kelepona he nui ma o conntrack NAT ma luna o UDP, alakaʻi i kahi kūlana heihei no nā hoʻokomo i nā papa conntrack, a nalowale kekahi hapa o ke kaʻa ma o NAT (ʻo kēlā me kēia huakaʻi ma o ka Service ʻo NAT). Hoʻoponopono ʻo Nodelocaldns i kēia pilikia ma ka hoʻopau ʻana i ka NAT a me ka hoʻonui ʻana i ka pilina i TCP i ka DNS upstream, a me ka hoʻopaʻa ʻana i nā nīnau DNS upstream (me kahi huna huna pōkole 5 kekona).

5. E hoʻomāhuahua i nā pods ma ka ʻaoʻao a me ka pololei

ʻEiwa Kubernetes Manaʻo Hoʻokō

Hiki iā ʻoe ke ʻōlelo me ka hilinaʻi ua mākaukau kāu microservice a pau no ka hoʻonui ʻelua a ʻekolu paha o ka ukana? Pehea e hoʻokaʻawale pono ai i nā kumuwaiwai i kāu mau noi? ʻO ka mālama ʻana i kekahi mau pods e holo ana ma mua o ka haʻahaʻa hana, he mea nui paha, akā ʻo ka mālama ʻana iā lākou i hope e holo i ka pilikia o ka downtime mai ka piʻi koke ʻana o ke kaʻa i ka lawelawe. Nā lawelawe e like me Horizontal Pod Autoscaler и ʻO ka mea hoʻolale ʻaunoa Pod Vertical.

VPA hiki iā ʻoe ke hoʻokiʻekiʻe i nā noi / palena o kāu mau ipu i loko o ka pod ma muli o ka hoʻohana maoli ʻana. Pehea e pono ai? Inā loaʻa iā ʻoe nā pods ʻaʻole hiki ke hoʻopaʻa ʻia ma ke ākea no kekahi kumu (ʻaʻole hilinaʻi loa), a laila hiki iā ʻoe ke hoʻāʻo e hāʻawi i nā hoʻololi i kāna mau kumuwaiwai iā VPA. ʻO kāna hiʻohiʻona he ʻōnaehana paipai e pili ana i ka mōʻaukala a me ka ʻikepili o kēia manawa mai ka metric-server, no laila inā ʻaʻole ʻoe makemake e hoʻololi maʻalahi i nā noi / palena, hiki iā ʻoe ke nānā pono i nā kumuwaiwai i ʻōlelo ʻia no kāu mau ipu a hoʻopaʻa i nā hoʻonohonoho e mālama i ka CPU a hoʻomanaʻo i loko o ka pūʻulu.

ʻEiwa Kubernetes Manaʻo HoʻokōLawe ʻia ke kiʻi mai https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231

Hoʻokumu mau ʻia ka mea hoʻonohonoho ma Kubernetes ma nā noi. ʻO kēlā me kēia waiwai āu e kau ai ma laila, e ʻimi ka mea hoʻonohonoho i kahi node kūpono e pili ana iā ia. Pono nā palena palena no ka cubelet e hoʻomaopopo i ka wā e throttle a pepehi paha i ka pod. A no ka mea, ʻo ka mea nui wale nō ka waiwai o nā noi, e hana pū ʻo VPA me ia. I kēlā me kēia manawa āu e hoʻonui ai i kahi noi ma ke kū pololei, wehewehe ʻoe i ke ʻano o nā noi. He aha ka hopena i nā palena a laila? E hoʻonui like ʻia kēia ʻāpana.

Eia kekahi laʻana, eia nā hoʻonohonoho pod maʻamau:

resources:
   requests:
     memory: 250Mi
     cpu: 200m
   limits:
     memory: 500Mi
     cpu: 350m

Hoʻoholo ka ʻenekini manaʻo e pono kāu noi i 300m CPU a me 500Mi e holo pono. E loaʻa iā ʻoe nā hoʻonohonoho penei:

resources:
   requests:
     memory: 500Mi
     cpu: 300m
   limits:
     memory: 1000Mi
     cpu: 525m

E like me ka mea i ʻōlelo ʻia ma luna nei, ʻo kēia ka scaling proportional e pili ana i nā noi / palena palena i ka hōʻike:

  • CPU: 200m → 300m: ratio 1:1.75;

  • Hoʻomanaʻo: 250Mi → 500Mi: ratio 1:2.

No ka HPA, a laila ʻoi aku ka maopopo o ke ʻano o ka hana. ʻO nā ana e like me ka CPU a me ka hoʻomanaʻo ua paepae ʻia, a inā ʻoi aku ka awelika o nā kope a pau ma mua o ka paepae, hoʻonui ʻia ka noi e +1 sub a hiki i ka hāʻule ʻana o ka waiwai ma lalo o ka paepae a i ʻole a hiki i ka nui o nā replicas.

ʻEiwa Kubernetes Manaʻo HoʻokōLawe ʻia ke kiʻi mai https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231

Ma waho aʻe o nā metric maʻamau e like me CPU a me ka hoʻomanaʻo, hiki iā ʻoe ke hoʻonohonoho i nā paepae ma kāu mau metric maʻamau mai Prometheus a hana pū me lākou inā manaʻo ʻoe ʻo ia ka hōʻailona pololei loa o ka manawa e hoʻonui ai i kāu noi. Ke paʻa ka palapala noi ma lalo o ka paepae metric i kuhikuhi ʻia, e hoʻomaka ana ka HPA e hoʻonui i nā pods i lalo i ka helu haʻahaʻa o nā replicas a i ʻole a hiki i ka loaʻa ʻana o ka ukana i ka paepae i kuhikuhi ʻia.

6. Mai poina iā Node Affinity a me Pod Affinity

ʻEiwa Kubernetes Manaʻo Hoʻokō

ʻAʻole holo nā node a pau ma ka lako like, a ʻaʻole pono nā pods a pau e holo i nā noi hoʻopili helu. Hāʻawi ʻo Kubernetes iā ʻoe e hoʻonohonoho i ka hana kūikawā o nā nodes a me nā pods e hoʻohana ana Node Affinity и Pili Pod.

Inā loaʻa iā ʻoe nā nodes i kūpono no nā hana hoʻopaʻa helu, a laila no ka maikaʻi loa ʻoi aku ka maikaʻi o ka hoʻopaʻa ʻana i nā noi i nā nodes pili. No ka hana ʻana i kēia hoʻohana nodeSelector me ka lepili node.

E ʻōlelo kākou he ʻelua nodes kāu: hoʻokahi me CPUType=HIGHFREQ a me ka heluna nui o nā cores wikiwiki, kekahi me MemoryType=HIGHMEMORY ʻoi aku ka hoʻomanaʻo a me ka hana wikiwiki. ʻO ke ala maʻalahi ka hoʻonohonoho ʻana i kahi node HIGHFREQma ka hoohui ana i ka pauku spec kēia mea koho:

…
nodeSelector:
	CPUType: HIGHFREQ

ʻO kahi ala ʻoi aku ka pipiʻi a kikoʻī e hana i kēia ʻo ka hoʻohana ʻana nodeAffinity ma ke kula affinity pauku spec. ʻElua mau koho:

  • requiredDuringSchedulingIgnoredDuringExecution: hoʻonohonoho paʻakikī (e kau ka mea hoʻonohonoho i nā pods ma nā nodes kikoʻī wale nō (a ʻaʻohe wahi ʻē aʻe));

  • preferredDuringSchedulingIgnoredDuringExecution: hoʻonohonoho palupalu (e hoʻāʻo ka mea hoʻonohonoho e kau i nā node kikoʻī, a inā hāʻule kēlā, e hoʻāʻo ʻo ia e kau i ka node e hiki mai ana).

Hiki iā ʻoe ke kuhikuhi i kahi syntax kūikawā no ka mālama ʻana i nā lepili node, e like me In, NotIn, Exists, DoesNotExist, Gt ai ole ia, Lt. Eia naʻe, e hoʻomanaʻo i nā ala paʻakikī i nā papa inoa lōʻihi o nā lepili e hoʻolohi i ka hoʻoholo ʻana i nā kūlana koʻikoʻi. ʻO ia hoʻi, e mālama maʻalahi.

E like me ka mea i ʻōlelo ʻia ma luna, ʻae ʻo Kubernetes iā ʻoe e hoʻonohonoho i ka pili o nā pods o kēia manawa. ʻO ia hoʻi, hiki iā ʻoe ke hōʻoia i ka hana pū ʻana o kekahi mau pods me nā pods ʻē aʻe i loko o ka ʻāpana loaʻa like (pili no nā ao) a i ʻole nodes.

В podAffinity mahina ʻai affinity pauku spec loaʻa nā kahua like me ka hihia o nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution и preferredDuringSchedulingIgnoredDuringExecution. ʻO ka ʻokoʻa wale nō kēlā matchExpressions e hoʻopaʻa i nā pods i kahi node e holo nei i kahi pod me kēlā lepili.

Hāʻawi pū ʻo Kubernetes i kahi kahua podAntiAffinity, ʻo ia hoʻi, ʻaʻole ia e hoʻopaʻa i ka pod i kahi node me nā pods kikoʻī.

E pili ana i nā ʻōlelo nodeAffinity Hiki ke hāʻawi ʻia ka ʻōlelo aʻoaʻo like: e hoʻāʻo e mālama i nā lula a maʻalahi, mai hoʻāʻo e hoʻonui i ka kikoʻī pod me kahi hoʻonohonoho paʻakikī. He mea maʻalahi loa ka hana ʻana i kahi lula e kūlike ʻole i nā kūlana o ka puʻupuʻu, e hana ana i ka ukana pono ʻole ma ka mea hoʻonohonoho a hoʻemi i ka hana holoʻokoʻa.

7. Hoʻopalekana & Hoʻomanawanui

Aia kekahi ala e hoʻokele ai i ka mea hoʻonohonoho. Inā loaʻa iā ʻoe kahi puʻupuʻu nui me nā haneli o nā nodes a me nā tausani microservices, a laila paʻakikī loa ka ʻae ʻole ʻana i kekahi mau pods e hoʻokipa ʻia ma kekahi mau nodes.

ʻO ke ʻano o ka tants-ka pāpā ʻana i nā lula-kōkua i kēia. No ka laʻana, i kekahi mau hiʻohiʻona hiki iā ʻoe ke pāpā i kekahi mau nodes mai ka holo ʻana i nā pods. No ka hoʻopili ʻana i ka taint i kahi node kikoʻī pono ʻoe e hoʻohana i ke koho taint i kubectl. E wehewehe i ke kī a me ka waiwai a laila e like me ka taint NoSchedule ai ole ia, NoExecute:

$ kubectl taint nodes node10 node-role.kubernetes.io/ingress=true:NoSchedule

He mea kūpono hoʻi e hoʻomaopopo i ke kākoʻo o ka mīkini taint i ʻekolu hopena nui: NoSchedule, NoExecute и PreferNoSchedule.

  • NoSchedule 'o ia ho'i, no kēia manawa, 'a'ohe komo i loko o ka kiko'ī pod tolerations, ʻaʻole hiki ke kau ʻia ma ka node (ma kēia hiʻohiʻona node10).

  • PreferNoSchedule - mana maʻalahi NoSchedule. I kēia hihia, e hoʻāʻo ka mea hoʻonohonoho e hoʻokaʻawale i nā pods i loaʻa ʻole kahi komo like tolerations node, akā ʻaʻole kēia he palena paʻakikī. Inā ʻaʻohe kumu i loko o ka pūʻulu, a laila e hoʻomaka nā pods e kau ma kēia node.

  • NoExecute - hoʻomaka kēia hopena i ka haʻalele koke ʻana o nā pods i loaʻa ʻole kahi komo kūpono tolerations.

ʻO ka mea e mahalo ai, hiki ke hoʻopau ʻia kēia ʻano me ka hoʻohana ʻana i ka mīkini ʻae. He mea maʻalahi kēia inā loaʻa kahi node "papa ʻia" a pono ʻoe e kau i nā lawelawe ʻoihana ma luna. Pehea e hana ai? E ʻae wale i kēlā poʻe i loaʻa kahi hoʻomanawanui kūpono.

Eia ke ʻano o ke ʻano o ka pod:

spec:
   tolerations:
     - key: "node-role.kubernetes.io/ingress"
        operator: "Equal"
        value: "true"
        effect: "NoSchedule"

ʻAʻole kēia manaʻo e hāʻule ka redeploy hou ma kēia node, ʻaʻole kēia ka Node Affinity mechanism a nodeSelector. Akā ma ka hoʻohui ʻana i kekahi mau hiʻohiʻona, hiki iā ʻoe ke hoʻokō i nā hoʻonohonoho hoʻonohonoho maʻalahi.

8. E hoʻonoho i ka Pod Deployment Priority

No ka loaʻa ʻana o nā pods i hāʻawi ʻia i nā nodes, ʻaʻole ia he manaʻo pono e mālama ʻia nā pods āpau me ka mea nui like. No ka laʻana, makemake paha ʻoe e kau i kekahi mau pods ma mua o nā mea ʻē aʻe.

Hāʻawi ʻo Kubernetes i nā ala like ʻole e hoʻonohonoho i ka Pod Priority a me Preemption. Aia ka hoʻonohonoho i kekahi mau ʻāpana: mea PriorityClass a me na wehewehe kahua priorityClassName ma ka ʻōlelo kikoʻī pod. E nānā kākou i kekahi laʻana:

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 99999
globalDefault: false
description: "This priority class should be used for very important pods only"

Hana mākou PriorityClass, hāʻawi i inoa, wehewehe a waiwai. ʻO ke kiʻekiʻe value, ʻoi aku ka kiʻekiʻe o ka mea nui. Hiki i ka waiwai ke lilo i 32-bit integer i emi iho a i ʻole like me 1. Ua mālama ʻia nā waiwai kiʻekiʻe no nā ʻōnaehana koʻikoʻi-miiona ʻaʻole hiki ke koho mua ʻia. E hoʻoneʻe wale ʻia inā ʻaʻohe wahi e huli ai ka pahu koʻikoʻi, a laila e hoʻoneʻe ʻia kekahi o nā pods mai kekahi node. Inā paʻa loa kēia ʻano hana iā ʻoe, hiki iā ʻoe ke hoʻohui i ke koho preemptionPolicy: Never, a laila ʻaʻohe preemption, e kū mua ka pod i ka pila a kali i ka mea hoʻonohonoho e loaʻa nā kumuwaiwai manuahi no ia.

A laila, hana mākou i kahi pod kahi e hōʻike ai mākou i ka inoa priorityClassName:

apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
 spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP
  priorityClassName: high-priority
          

Hiki iā ʻoe ke hana i nā papa hana nui e like me kou makemake, ʻoiai ʻaʻole pono e lawe ʻia me kēia (e ʻōlelo, e kaupalena iā ʻoe iho i ka haʻahaʻa, waena a me ka mea kiʻekiʻe).

No laila, inā pono, hiki iā ʻoe ke hoʻonui i ka pono o ka lawe ʻana i nā lawelawe koʻikoʻi e like me nginx-ingress-controller, coredns, etc.

9. Hoʻonui i ka hui ETCD

ʻEiwa Kubernetes Manaʻo Hoʻokō

Hiki ke kapa ʻia ʻo ETCD ka lolo o ka hui holoʻokoʻa. He mea nui ka mālama ʻana i ka hana o kēia waihona ma kahi kiʻekiʻe, ʻoiai ke hilinaʻi nei ka wikiwiki o nā hana ma Cube. ʻO kahi maʻamau kūpono, a i ka manawa like, ʻo ka hopena maikaʻi ka mālama ʻana i ka pūʻulu ETCD ma nā kumu kumu i mea e hoʻolōʻihi iki ai i ka kube-apiserver. Inā ʻaʻole hiki iā ʻoe ke hana i kēia, a laila e kau i ka ETCD i kahi kokoke loa, me ka bandwidth maikaʻi ma waena o nā mea komo. E nānā pū i ka nui o nā node mai ETCD hiki ke hāʻule i waho me ka ʻole o ka pōʻino i ka hui

ʻEiwa Kubernetes Manaʻo Hoʻokō

E hoʻomanaʻo i ka hoʻonui nui ʻana i ka helu o nā lālā i loko o kahi puʻupuʻu hiki ke hoʻonui i ka hoʻomanawanui hewa ma ka lilo o ka hana, pono nā mea a pau i ka moderation.

Inā mākou e kamaʻilio e pili ana i ka hoʻonohonoho ʻana i ka lawelawe, aia kekahi mau manaʻo:

  1. Loaʻa iā ʻoe ka lako pono, e pili ana i ka nui o ka pūpū (hiki iā ʻoe ke heluhelu maanei).

  2. Hoʻololi i kekahi mau ʻāpana inā ua hoʻolaha ʻoe i kahi hui ma waena o nā DC a i ʻole kāu pūnaewele a me nā disks e waiho nui i ka makemake (hiki iā ʻoe ke heluhelu maanei).

hopena

Hōʻike kēia ʻatikala i nā mea a kā mākou hui e hoʻāʻo ai e hoʻokō. ʻAʻole kēia he wehewehe ʻanuʻu i kēlā me kēia hana, akā nā koho e pono ai no ka hoʻomaikaʻi ʻana i ka cluster overhead. ʻIke ʻia he ʻokoʻa kēlā me kēia puʻupuʻu ma kona ʻano ponoʻī, a hiki ke ʻokoʻa ka hoʻonohonoho hoʻonohonoho ʻana, no laila he mea hoihoi ke loaʻa kāu manaʻo e pili ana i kou nānā ʻana i kāu hui Kubernetes a pehea ʻoe e hoʻomaikaʻi ai i kāna hana. Kaʻana like i kāu ʻike ma nā manaʻo, e hoihoi ka ʻike.

Source: www.habr.com