ʻ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.
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:
Pehea e hoʻonui ai i nā modula a me nā noi?
Pehea e mālama pono ai i nā pahu pahu?
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:
ʻ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.
ʻ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:
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.
Ke ho'āʻo nei ka HPA e hoʻonui i ka helu o nā modula inā hiki i ka paepae i kuhikuhi ʻia.
Hoʻohou ʻo HPA i ka helu o nā replicas i loko o ka mea hoʻoponopono hoʻopili.
A laila, hoʻolālā ka mea hoʻoponopono hoʻopuka / replication i nā modula hou e pono ai.
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:
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.
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.
Hoʻonui ka VPA i ka helu o nā kumuwaiwai i loko o ka mea hoʻoponopono hoʻopuka.
Ke hoʻomaka hou ʻia nā modula, hoʻohana ʻia nā kumuwaiwai hou a pau i nā manawa i hana ʻia.
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:
Nānā ʻo CA no nā modula e kali ana ma kahi manawa paʻamau o 10 kekona.
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.
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.
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.
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:
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.
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.
Hāʻawi ka CA i nā node hou.
Hāʻawi ʻia nā modula i nā nodes hou.
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:
30 kekona. Hoʻohou i nā anana pahuhopu: 30−60 kekona.
30 kekona. Nānā HPA i nā waiwai metric: 30 kekona.
Ma lalo o 2 kekona. Hana ʻia nā Pods a hele i ke kūlana kali: 1 kekona.
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.
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:
30 kekona. Hoʻohou i nā ana i hoʻopaʻa ʻia.
30 kekona. Nānā ʻo HPA i nā waiwai metric.
Ma lalo o 2 kekona. Hana ʻia nā pods a komo i ke kūlana standby.
Ma lalo o 2 kekona. ʻIke ka CA i nā modula kali a kāhea aku e hoʻolako i nā nodes.
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
ʻ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.
E hoʻomaopopo i ke kumu o ka scalability pod e noʻonoʻo ana i ka HPA a me ka VPA.
Pono e hoʻohana ʻia ʻo CA inā ʻike ʻoe i nā pono o kāu mau pods a me nā ipu.
No ka hoʻonohonoho pono ʻana i kahi pūʻulu, pono ʻoe e hoʻomaopopo i ka hana like ʻana o nā ʻōnaehana scaling.
Ke koho ʻana i ka manawa hoʻonui, e hoʻomanaʻo i nā hiʻohiʻona ʻino a maikaʻi loa.