ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou

ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou
No ka ʻike piha ʻana i nā Kubernetes, pono ʻoe e ʻike i nā ala like ʻole e hoʻonui ai i nā kumuwaiwai cluster: by e like me nā mea hoʻomohala pūnaewele, ʻo ia kekahi o nā hana nui a Kubernetes. Ua hāʻawi mākou i kahi hiʻohiʻona kiʻekiʻe o ka hoʻokele autoscaling a me ke kūpaʻa a me ka hoʻololi hou ʻana o ka puʻupuʻu, a me nā ʻōlelo aʻoaʻo no ka hoʻohana pono ʻana iā lākou.

ʻatikala Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, a me Vertical Pod Autoscaler unuhi ʻia e ka hui i hoʻokō i ka autoscaling ma Kubernetes aaS mai Mail.ru.

No ke aha he mea nui e noʻonoʻo e pili ana i ka scaling

Kubernetes - he mea hana no ka hoʻokele waiwai a me ka hoʻokani pila. ʻOiaʻiʻo, he mea maikaʻi ke ʻimi me nā hiʻohiʻona maikaʻi o ka lawe ʻana, ka nānā ʻana, a me ka mālama ʻana i nā pods (ʻo kahi pod kahi hui o nā ipu i hoʻokuʻu ʻia ma ka pane ʻana i kahi noi).

Eia naʻe, pono ʻoe e noʻonoʻo e pili ana i kēia mau nīnau:

  1. Pehea e hoʻonui ai i nā modula a me nā noi?
  2. Pehea e mālama pono ai i nā pahu pahu?
  3. Pehea e pane ai i nā loli mau i ka code a me nā haʻahaʻa hana mai nā mea hoʻohana?

He mea paʻakikī ka hoʻonohonoho ʻana i nā pūʻulu Kubernetes e kaulike i nā kumuwaiwai a me ka hana a koi ʻia ka ʻike loea i ka hana o loko o Kubernetes. Hiki ke loli ka haʻahaʻa hana o kāu noi a i ʻole nā ​​​​lawelawe i ka lā a i ʻole ma kahi o hoʻokahi hola, no laila ʻoi aku ka maikaʻi o ke kaupaona ʻana ma ke ʻano he kaʻina hana mau.

Nā pae kiʻekiʻe autoscaling Kubernetes

Pono ka hoʻonohonoho ʻana ma waena o nā pae ʻelua:

  1. ʻO ka pae Pod, me ka hoʻopololei (Horizontal Pod Autoscaler, HPA) a me ka vertical autoscaler (Vertical Pod Autoscaler, VPA). Ke hoʻonui nei kēia i nā kumuwaiwai i loaʻa no kāu mau pahu.
  2. ʻO ka pae Cluster, i mālama ʻia e ka Cluster Autoscaler (CA), e hoʻonui a hoʻemi paha i ka helu o nā nodes i loko o ka hui.

Module Horizontal Autoscaler (HPA).

E like me ka manaʻo o ka inoa, hoʻonui ʻo HPA i ka helu o nā replicas pod. Hoʻohana ka hapa nui o nā devops i ka CPU a me ka ukana hoʻomanaʻo i mea e hoʻololi ai i ka helu o nā replicas. Eia naʻe, hiki ke hoʻonui i ka ʻōnaehana ma muli o metric maʻamau, lākou hui ʻana aiʻole anana waho.

Kiʻekiʻe kiʻekiʻe HPA kiʻina hana:

  1. Ke nānā mau nei ka HPA i nā koina metric i hōʻike ʻia i ka wā o ka hoʻokomo ʻana i kahi manawa paʻamau o 30 kekona.
  2. Ke ho'āʻo nei ka HPA e hoʻonui i ka helu o nā modula inā hiki i ka paepae i kuhikuhi ʻia.
  3. Hoʻohou ʻo HPA i ka helu o nā replicas i loko o ka mea hoʻoponopono hoʻopili.
  4. A laila, hoʻolālā ka mea hoʻoponopono hoʻopuka / replication i nā modula hou e pono ai.

ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou
Hoʻomaka ʻo HPA i ke kaʻina hana hoʻolaha module ke hiki i kahi paepae metric

Ke hoʻohana nei i ka HPA, e noʻonoʻo i kēia mau mea:

  • ʻO 30 kekona ka manawa hoʻopaʻa HPA. Hoʻonoho ʻia e ka hae horizontal-pod-autoscaler-sync-manawa i ka luna hooponopono.
  • ʻO ka hewa pili paʻamau he 10%.
  • Ma hope o ka hoʻonui hope ʻana i ka helu o nā modula, manaʻo ka HPA e hoʻopaʻa i nā metric i loko o ʻekolu mau minuke. Hoʻonohonoho ʻia kēia wā e ka hae horizontal-pod-autoscaler-upscale-lohi.
  • Ma hope o ka hōʻemi hope ʻana i ka helu o nā modules, kali ka HPA no ʻelima mau minuke e hoʻopaʻa. Hoʻonohonoho ʻia kēia wā e ka hae horizontal-pod-autoscaler-downscale-lohi.
  • ʻOi aku ka maikaʻi o ka HPA me nā mea hoʻolālā ma mua o nā mea hoʻoponopono hou. ʻAʻole kūpono ʻo Horizontal autoscaling me ka rolling update, nāna e hoʻoponopono pololei i nā mea hoʻoponopono hou. Me ka hoʻolaha ʻana, pili pololei ka helu o nā replicas i nā mea hoʻoili.

ʻO ka hoʻonui ʻia ʻana o nā pods

Hoʻokaʻawale ʻo Vertical Autoscaling (VPA) i ka manawa CPU a i ʻole ka hoʻomanaʻo i nā pods e kū nei. He kūpono no nā pods stateful a stateless, akā i manaʻo nui ʻia no nā lawelawe stateful. Eia nō naʻe, hiki iā ʻoe ke hoʻohana i ka VPA no nā modula stateless inā pono ʻoe e hoʻoponopono i ka nui o nā kumuwaiwai i hāʻawi mua ʻia.

Pane pū ʻo VPA i nā hanana OOM (out of memory). Pono ka hoʻololi ʻana i ka manawa CPU a me ka hoʻomanaʻo e hoʻomaka hou i nā pods. Ke hoʻomaka hou ʻia, mahalo ka VPA i ka hoʻokaʻawale kālā (pūlāwai hoʻolaha pods, PDB) e hōʻoia i ka helu liʻiliʻi i koi ʻia o nā modules.

Hiki iā ʻoe ke hoʻonohonoho i nā kumuwaiwai liʻiliʻi a me ka nui no kēlā me kēia module. No laila, hiki iā ʻoe ke kaupalena i ka nui o ka hoʻomanaʻo i hāʻawi ʻia i 8 GB. He mea pono kēia inā ʻaʻole hiki i nā nodes o kēia manawa ke hoʻokaʻawale ma mua o 8 GB o ka hoʻomanaʻo i kēlā me kēia pahu. Hōʻike ʻia nā kikoʻī kikoʻī a me ka mīkini hana ma mana VPA wiki.

Eia kekahi, loaʻa iā VPA kahi hana manaʻo hoihoi (VPA Recommender). Mālama ia i ka hoʻohana waiwai a me nā hanana OOM o nā modula āpau e hōʻike i ka hoʻomanaʻo hou a me nā koina manawa CPU e pili ana i kahi algorithm akamai e pili ana i nā metric mōʻaukala. Aia kekahi API e lawe ana i kahi pahu a hoʻihoʻi i nā waiwai waiwai i manaʻo ʻia.

He mea pono e hoʻomaopopo ʻaʻole ʻike ʻo VPA Recommender i nā kumu "palena". Hiki i kēia ke ho'ololi i nā kumuwaiwai i loko o nā nodes. ʻOi aku ka maikaʻi o ka hoʻonohonoho ʻana i ka palena ma ka pae inoa inoa e pale i ka hoʻomanaʻo nui a i ʻole ka hoʻohana ʻana i ka CPU.

Hoʻolālā hana VPA pae kiʻekiʻe:

  1. Ke nānā mau nei ʻo VPA i nā waiwai metric i hōʻike ʻia i ka wā o ka hoʻokomo ʻana ma kahi manawa paʻamau o 10 kekona.
  2. Inā hiki i ka paepae i kuhikuhi ʻia, hoʻāʻo ka VPA e hoʻololi i ka nui o nā kumuwaiwai i hāʻawi ʻia.
  3. Hoʻonui ka VPA i ka helu o nā kumuwaiwai i loko o ka mea hoʻoponopono hoʻopuka.
  4. Ke hoʻomaka hou ʻia nā modula, hoʻohana ʻia nā kumuwaiwai hou a pau i nā manawa i hana ʻia.

ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou
Hoʻohui ʻo VPA i ka nui o nā kumuwaiwai

E ʻoluʻolu e mālama i kēia mau manaʻo i ka wā e hoʻohana ai i ka VPA:

  • Pono ka scaling e hoʻomaka hou i ka pod. Pono kēia e pale i ka hana paʻa ʻole ma hope o ka hoʻololi ʻana. No ka hilinaʻi, hoʻomaka hou ʻia nā modula a puʻunaue ʻia ma nā nodes e pili ana i nā kumuwaiwai hou.
  • ʻAʻole kūpono ʻo VPA a me HPA me kekahi i kekahi a ʻaʻole hiki ke holo ma nā pods like. Inā ʻoe e hoʻohana nei i nā mīkini hoʻonui ʻelua i ka pūʻulu hoʻokahi, e hōʻoia i ka pale ʻana o kāu mau hoʻonohonoho iā lākou mai ka hoʻāla ʻia ʻana ma nā mea like.
  • Hoʻokani ʻo VPA i nā noi pahu no nā kumuwaiwai e pili ana i ka hoʻohana ʻana i hala a me kēia manawa. ʻAʻole ia e kau i nā palena hoʻohana waiwai. Loaʻa paha nā pilikia me ka hana ʻole ʻana o nā noi a hoʻomaka e lawe i nā kumuwaiwai hou aʻe, e alakaʻi kēia iā Kubernetes e hoʻopau i kēia pod.
  • Aia nō ka VPA i ka wā mua o ka hoʻomohala ʻana. E mākaukau e hoʻololi paha ka ʻōnaehana i ka wā e hiki mai ana. Hiki iā ʻoe ke heluhelu e pili ana ʻike ʻia nā palena и nā papahana hoʻomohala. No laila, aia nā manaʻo e hoʻokō i ka hana hui ʻana o VPA a me HPA, a me ka waiho ʻana o nā modules me kahi kulekele autoscaling vertical no lākou (no ka laʻana, kahi lepili kūikawā 'pono VPA').

Ka hoʻonui ʻana i kahi pūʻulu Kubernetes

Hoʻololi ʻo Cluster Autoscaler (CA) i ka helu o nā nodes ma muli o ka helu o nā pods kali. Nānā ka ʻōnaehana i kēlā me kēia manawa no nā modula e kali ana - a hoʻonui i ka nui o ka puʻupuʻu inā makemake ʻia nā kumuwaiwai a inā ʻaʻole i ʻoi aku ka pua i nā palena i hoʻopaʻa ʻia. Kūkākūkā ʻo CA me ka mea lawelawe kapuaʻi, noi i nā node hou mai ia mea, a i ʻole hoʻokuʻu i nā mea hana ʻole. Ua hoʻokomo ʻia ka mana mua loa o CA ma Kubernetes 1.8.

ʻO ka papahana kūlana kiʻekiʻe o ka hana SA:

  1. Nānā ʻo CA no nā modula e kali ana ma kahi manawa paʻamau o 10 kekona.
  2. Inā hoʻokahi a ʻoi aʻe paha nā pods i kahi kūlana kūpaʻa no ka lawa ʻole o nā kumu waiwai e hiki ke hoʻokaʻawale iā lākou, hoʻāʻo ʻo ia e hoʻolako i hoʻokahi a ʻoi aku paha nā node.
  3. Ke hoʻokaʻawale ka mea lawelawe kapuaʻi i ka node i koi ʻia, hui pū ʻo ia i ka hui a mākaukau e lawelawe i nā pods.
  4. Hāʻawi ka mea hoʻonohonoho Kubernetes i nā pods e kali nei i kahi node hou. Inā ma hope o kēia e mau ana kekahi mau modula i kahi kūlana kali, e hana hou ʻia ke kaʻina hana a hoʻohui ʻia nā nodes hou i ka hui.

ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou
Hāʻawi 'akomi i nā pūnana puʻupuʻu ma ke ao

E noʻonoʻo i kēia i ka wā e hoʻohana ai iā CA:

  • Mālama ʻo CA e loaʻa i nā pods a pau i loko o ka pūʻulu kahi lumi e holo ai, me ka nānā ʻole i ka ukana CPU. Ke ho'āʻo nei hoʻi e hōʻoia i ka ʻole o nā nodes pono ʻole i ka pūʻulu.
  • Hoʻopaʻa inoa ʻo CA i ka pono e hoʻonui ma hope o 30 kekona.
  • I ka manawa ʻaʻole pono ka node, hoʻopau ka CA i ka kali ʻana i 10 mau minuke ma mua o ka hoʻonui ʻana i ka ʻōnaehana.
  • ʻO ka ʻōnaehana autoscaling ka manaʻo o nā mea hoʻonui. He mau hoʻolālā ʻokoʻa kēia no ke koho ʻana i kahi pūʻulu o nā nodes e hoʻohui ʻia ai nā nodes hou.
  • E hoʻohana i ke koho me ke kuleana cluster-autoscaler.kubernetes.io/safe-to-evict (ʻoiaʻiʻo). Inā hoʻokomo ʻoe i ka nui o nā pods, a i ʻole ka nui o lākou i hoʻopuehu ʻia ma nā nodes a pau, e nalowale loa ʻoe i ka hiki ke hoʻonui i ka pūpū.
  • E hoʻohana PodDisruptionBudgetsno ka pale ʻana i nā pods mai ka holoi ʻia ʻana, hiki iā ia ke hoʻokaʻawale loa i nā ʻāpana o kāu noi.

Pehea e launa pū ai nā autoscalers Kubernetes me kekahi i kekahi

No ka lokahi maikaʻi, pono e hoʻohana ʻia ka autoscaling ma ka pae pod (HPA/VPA) a me ka pae cluster. Hoʻopili maʻalahi lākou me kekahi i kekahi:

  1. Hōʻano hou nā HPA a i ʻole nā ​​VPA i nā kope pod a i ʻole nā ​​kumuwaiwai i hāʻawi ʻia i nā pods i loaʻa.
  2. Inā ʻaʻole lawa nā nodes no ka scaling i hoʻolālā ʻia, ʻike ka CA i ka hele ʻana o nā pods i kahi kūlana kali.
  3. Hāʻawi ka CA i nā node hou.
  4. Hāʻawi ʻia nā modula i nā nodes hou.

ʻEkolu mau pae o ka Autoscaling ma Kubernetes: Pehea e hoʻohana pono ai iā lākou
Pūnaehana hoʻonui ʻia ʻo Kubernetes hui pū

Nā hewa maʻamau i ka hoʻonui ʻana i nā Kubernetes

Nui nā pilikia maʻamau e holo ai nā devops i ka wā e hoʻāʻo ai e hoʻokō i ka autoscaling.

Aia ka HPA a me ka VPA i nā metric a me kekahi mau ʻikepili mōʻaukala. Inā lawa ʻole nā ​​kumuwaiwai, e hōʻemi ʻia nā modula a ʻaʻole hiki ke hana i nā metric. I kēia hihia, ʻaʻole loa e hana ʻia ka autoscaling.

ʻO ka hana scaling ponoʻī ka manawa. Makemake mākou i nā modula a me nā hui e hoʻonui wikiwiki - ma mua o ka ʻike ʻana o nā mea hoʻohana i nā pilikia a i ʻole nā ​​hemahema. No laila, pono e noʻonoʻo ʻia ka manawa scaling awelika no nā pods a me ka hui.

ʻO ke kūlana kūpono - 4 mau minuke:

  1. 30 kekona. Hoʻohou i nā anana pahuhopu: 30−60 kekona.
  2. 30 kekona. Nānā HPA i nā waiwai metric: 30 kekona.
  3. Ma lalo o 2 kekona. Hana ʻia nā Pods a hele i ke kūlana kali: 1 kekona.
  4. Ma lalo o 2 kekona. ʻIke ʻo CA i nā modula kali a hoʻouna i nā kelepona i nā node hoʻolako: 1 kekona.
  5. 3 minuke. Hoʻokaʻawale ka mea hāʻawi kapua i nā node. Ke kali nei nā K8 a hiki i ka mākaukau: a hiki i 10 mau minuke (ma muli o nā kumu he nui).

ʻO ka hihia ʻino loa (ʻoi aku ka ʻike maoli) - 12 mau minuke:

  1. 30 kekona. Hoʻohou i nā ana i hoʻopaʻa ʻia.
  2. 30 kekona. Nānā ʻo HPA i nā waiwai metric.
  3. Ma lalo o 2 kekona. Hana ʻia nā pods a komo i ke kūlana standby.
  4. Ma lalo o 2 kekona. ʻIke ka CA i nā modula kali a kāhea aku e hoʻolako i nā nodes.
  5. 10 minuke. Hoʻokaʻawale ka mea hāʻawi ao i nā node. Kali nā K8 a mākaukau lākou. Aia ka manawa kali i kekahi mau mea, e like me ka lohi o ka mea kūʻai aku, ka lohi o OS, a me nā mea kōkua.

Mai huikau i nā hana hoʻonui ʻana o nā mea hoʻolako kapua me kā mākou CA. Holo ka hope i loko o kahi pūʻulu Kubernetes, ʻoiai ke hana nei ka mīkini hāʻawi kapua ma ke kumu hoʻohele node. ʻAʻole maopopo iā ia ka mea e hana nei me kāu pods a i ʻole ka noi. Ke hana like nei kēia mau ʻōnaehana.

Pehea e hoʻokele ai i ka scaling ma Kubernetes

  1. ʻO Kubernetes kahi mea hoʻokele waiwai a me nā mea hana hoʻokani. ʻO nā hana no ka hoʻokele ʻana i nā pods a me nā kumu waiwai puʻupuʻu he mea koʻikoʻi nui i ka haku ʻana i nā Kubernetes.
  2. E hoʻomaopopo i ke kumu o ka scalability pod e noʻonoʻo ana i ka HPA a me ka VPA.
  3. Pono e hoʻohana ʻia ʻo CA inā ʻike ʻoe i nā pono o kāu mau pods a me nā ipu.
  4. No ka hoʻonohonoho pono ʻana i kahi pūʻulu, pono ʻoe e hoʻomaopopo i ka hana like ʻana o nā ʻōnaehana scaling.
  5. Ke koho ʻana i ka manawa hoʻonui, e hoʻomanaʻo i nā hiʻohiʻona ʻino a maikaʻi loa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka