Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

I kēia lā, hoʻolālā wau e kamaʻilio e pili ana i ke kākau ʻana i nā noi a he aha nā koi no kāu noi e hana maikaʻi ma Kubernetes. No laila ʻaʻohe poʻo poʻo me ka noi, no laila ʻaʻole pono ʻoe e noʻonoʻo a kūkulu i nā "cratches" a puni ia - a hana nā mea āpau e like me ka manaʻo o Kubernetes.

He ʻāpana kēia haʻi'ōlelo o "Slurm Night School ma Kubernetes" Hiki iā ʻoe ke nānā i nā haʻiʻōlelo theoretical wehe o ke Kula ahiahi ma Youtube, i hui pū ʻia i kahi papa inoa. No ka poʻe makemake i ka kikokikona ma mua o ka wikiō, ua hoʻomākaukau mākou i kēia ʻatikala.

ʻO Pavel Selivanov koʻu inoa, i kēia manawa ʻo wau ke alakaʻi DevOps engineer ma Mail.ru Cloud Solutions, hana mākou i nā ao, hana mākou i nā kubernetes hoʻokele a pēlā aku. ʻO kaʻu mau hana i kēia manawa ke kōkua i ka hoʻomohala ʻana, ka ʻōwili ʻana i kēia mau ao, ka ʻōwili ʻana i nā noi a mākou e kākau ai a hoʻomohala pololei i nā mea hana a mākou e hāʻawi ai i kā mākou mea hoʻohana.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

Ke hana nei au i DevOps, manaʻo wau no ka mea hope loa, ʻekolu paha makahiki. Akā, ma ke kumu, ke hana nei au i ka hana a DevOps no ʻelima mau makahiki i kēia manawa. Ma mua o kēlā, ua komo nui wau i nā mea admin. Ua hoʻomaka wau e hana me Kubernetes i kahi manawa lōʻihi i hala - ma kahi o ʻehā mau makahiki i hala mai koʻu hoʻomaka ʻana e hana me ia.

Ma keʻano laulā, hoʻomaka wau i ka wā ʻo Kubernetes ka mana 1.3, malia paha, a malia paha 1.2 - i kona wā ʻōpiopio. I kēia manawa ʻaʻole ia i kona wā kamaliʻi - a ua ʻike ʻia he koi nui i ka mākeke no nā ʻenekinia makemake e hiki ke hana i nā Kubernetes. A he koi kiʻekiʻe loa nā ʻoihana no ia poʻe. No laila, ʻoiaʻiʻo, ua puka mai kēia haʻiʻōlelo.

Inā mākou e kamaʻilio e like me ke kumumanaʻo o kaʻu e kamaʻilio ai, ua like ia me kēia, ma nā brackets ua kākau ʻia (TL;DR) - "lōʻihi loa; mai heluhelu". ʻO kaʻu hōʻike i kēia lā he papa inoa pau ʻole.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

ʻO kaʻoiaʻiʻo, ʻaʻole wau makemake i kēlā mau hōʻikeʻike i ka wā i hana ʻia ai, akā he kumuhana kēia i koʻu hoʻomākaukau ʻana i kēia hōʻike, ʻaʻole wau i noʻonoʻo pono pehea e hoʻonohonoho ʻokoʻa ai kēia ʻike.

No ka mea, ma ka nui, ʻo kēia ʻike "ctrl + c, ctrl + v", mai, ma waena o nā mea ʻē aʻe, kā mākou Wiki ma ka ʻāpana DevOps, kahi i kākau ai mākou i nā koi no nā mea hoʻomohala: "e nā kāne, i hoʻomaka mākou i kāu noi ma Kubernetes, e like me kēia. "

ʻO ia ke kumu i lilo ai ka hōʻike i kahi papa inoa nui. E kala mai iaʻu. E ho'āʻo wau e haʻi i ka mea hiki i ʻole ia e luuluu inā hiki.

He aha kā mākou e nānā ai i kēia manawa:

  • ʻO kēia ka mea mua, nā moʻolelo (nā palapala noi?), he aha ka mea e hana ai me lākou ma Kubernetes, he aha ka mea e hana ai me lākou, he aha lākou;
  • he aha nā mea e hana ai me nā hoʻonohonoho ma Kubernetes, he aha nā ala maikaʻi a maikaʻi ʻole e hoʻonohonoho ai i kahi noi no Kubernetes;
  • E kamaʻilio kākou e pili ana i ke ʻano o nā mākaʻikaʻi hiki ke loaʻa, pehea ke ʻano o lākou;
  • e kamaʻilio e pili ana i ke ʻano o ka pani ʻana;
  • e kamaʻilio hou e pili ana i nā kumuwaiwai;
  • E hoʻopā hou i ke kumuhana o ka mālama ʻana i ka ʻikepili;
  • a ma ka hope e haʻi aku au iā ʻoe i ke ʻano o kēia ʻano noiʻi kapuaʻi pohihihi. Cloudnativeness, ma ke ʻano he adjective o kēia huaʻōlelo.

Nā lāʻau lāʻau

Manaʻo wau e hoʻomaka me nā lāʻau - me kahi e pono ai kēia mau lāʻau e hoʻokuʻu ʻia ma Kubernetes. I kēia manawa ua hoʻomaka ʻoe i kahi noi ma Kubernetes. Wahi a ka poʻe kahiko, ua kākau mau nā noi i nā lāʻau ma kahi o kahi faila. Ua kākau nā noi hewa i nā lāʻau i kahi faila ma ka papa kuhikuhi home o ka mea hoʻomohala nāna i hoʻomaka i ka noi. Ua kākau nā noi maikaʻi i nā lāʻau i kahi faila ma kahi /var/log.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

No laila, ʻoi aku ka maikaʻi o nā mea hoʻokele maikaʻi i hoʻonohonoho ʻia i loko o kā lākou mau mea hana e hiki ai i kēia mau lāʻau ke hoʻololi - ʻo ia ka rsyslog, e nānā ana i kēia mau lāʻau a i ka wā e loaʻa ai kekahi mea iā lākou, nui lākou, hana ia i nā kope kope, waiho i nā lāʻau ma laila. , holoi i nā faila kahiko, ʻoi aku ma mua o hoʻokahi pule, ʻeono mahina a me kekahi mau mea hou aʻe. Ma ke kumumanaʻo, pono e loaʻa iā mākou nā lako no ka mea wale nō ke kākau ʻana o ka noi i nā lāʻau, ʻaʻole i pau ka hakahaka ma nā kikowaena hana (nā kikowaena hakakā?) A, no laila, ʻaʻole i pau ka hana holoʻokoʻa ma muli o nā lāʻau.

Ke neʻe mākou i ka honua o Kubernetes a holo i ka mea like ma laila, ʻo ka mea mua e hiki ai iā ʻoe ke hoʻolohe i ka ʻoiaʻiʻo o ka poʻe, i kā lākou kākau ʻana i nā lāʻau i loko o kahi faila, e hoʻomau i ke kākau ʻana iā lākou.

ʻIke ʻia inā e kamaʻilio mākou e pili ana i nā Kubernetes, ʻo kahi kūpono e kākau ai i nā lāʻau ma kahi o kahi pahu docker e kākau wale iā lākou mai ka noi i ka mea i kapa ʻia ʻo Stdout/Stderr, ʻo ia hoʻi, nā kahawai puka maʻamau o ka ʻōnaehana hana. ka puka kuhi hewa maʻamau . ʻO kēia ke ala pololei, maʻalahi a kūpono hoʻi e hoʻokomo i nā lāʻau ma ke kumu ma Docker a ma Kubernetis. No ka mea inā kākau kāu noi i nā lāʻau iā Stdout/Stderr, a laila aia iā Docker a me nā Kubernetes add-on e hoʻoholo i ka mea e hana ai me kēia mau lāʻau. E kūkulu ʻo Docker i kāna mau faila kūikawā ma JSON format.

Eia ka nīnau, he aha kāu e hana ai me kēia mau lāʻau? ʻO ke ala maʻalahi ka maopopo, hiki iā mākou ke hana kubectl logs a e nana i keia mau mooolelo o keia mau “pods”. Akā, malia paha, ʻaʻole kēia he koho maikaʻi loa - pono e hana ʻia kekahi mea me nā lāʻau.

I kēia manawa, e kamaʻilio mākou i ka manawa like, no ka mea, ua hoʻopā mākou i ke kumuhana o nā lāʻau, e pili ana i kahi mea e like me nā lāʻau. ʻO ia hoʻi, ʻaʻole pili pololei kēia iā Kubernetes, akā ke hoʻomaka mākou e noʻonoʻo i ka mea e hana ai me nā lāʻau, maikaʻi nō hoʻi e noʻonoʻo i kēia.

Pono mākou i kekahi ʻano mea hana, ma kahi ala ʻoluʻolu, e lawe i kēia mau lāʻau i hoʻokomo ʻia e kā mākou docker i kāna mau faila a hoʻouna iā lākou ma kahi. Ma ke ʻano nui, hoʻomaka mākou i kekahi ʻano mea hana i loko o Kubernetes ma ke ʻano o kahi DaemonSet - kahi ʻohi lāʻau, e haʻi wale ʻia i kahi o nā lāʻau a Docker e hōʻiliʻili ai. A lawe wale kēia mea hōʻiliʻili iā lākou, malia paha e hoʻokaʻawale iā lākou ma ke ala, e hoʻonui paha iā lākou me kekahi mau meta-information a, i ka hopena, e hoʻouna iā lākou no ka mālama ʻana ma kahi. Hiki ke hoʻololi i laila. ʻO ka mea maʻamau paha ʻo Elasticsearch, kahi hiki iā ʻoe ke mālama i nā lāʻau a hiki iā ʻoe ke kiʻi maʻalahi iā lākou mai laila. A laila, me ka hoʻohana ʻana i kahi noi, me ka hoʻohana ʻana iā Kibana, no ka laʻana, kūkulu i nā kiʻi ma luna o lākou, kūkulu i nā mākaʻikaʻi ma luna o lākou, a pēlā aku.

ʻO ka manaʻo koʻikoʻi, makemake wau e hana hou, ʻo ia i loko o Docker, i loko o Kubernetes, ʻo ka mālama ʻana i kāu mau lāʻau i kahi faila he manaʻo maikaʻi ʻole.

No ka mea ʻo ka mea mua, paʻakikī ke kiʻi ʻana i nā lāʻau i loko o ka pahu i kahi faila. Pono ʻoe e hele mua i loko o ka ipu, exec ma laila, a laila e nānā i nā lāʻau. ʻO ka ʻaoʻao aʻe, inā loaʻa iā ʻoe nā lāʻau i loko o kahi faila, a laila loaʻa nā pahu i kahi ʻano minimalist a ʻaʻohe mea pono e pono ai no ka hana maʻamau me nā lāʻau. E kanu iā lākou, e nānā iā lākou, e wehe iā lākou i kahi hoʻoponopono kikokikona. ʻO ka manawa aʻe ke loaʻa iā mākou nā lāʻau i loko o kahi faila i loko o kahi pahu, inā holoi ʻia kēia pahu, maopopo ʻoe, e make pū ana nā lāʻau me ia. No laila, ʻo ka hoʻomaka hou ʻana o ka ipu, ʻaʻole ia he mau lāʻau. Eia hou, koho hewa.

A ʻo ka mea hope loa, aia i loko o nā pahu i loaʻa kāu noi a ʻo ia - ʻo ia wale nō ke kaʻina hana e holo nei. ʻAʻohe kamaʻilio e pili ana i kekahi kaʻina hana e hoʻololi i nā faila me kāu mau lāʻau. I ka manawa e hoʻomaka ai ka kākau ʻana i nā lāʻau i kahi faila, ʻo ia hoʻi, e kala mai iaʻu, e hoʻomaka mākou e nalowale i ka kikowaena hana. No ka mea, ʻo ka mea mua, paʻakikī lākou e loaʻa, ʻaʻohe mea e hahai iā lākou, ʻaʻohe mea nāna e hoʻomalu iā lākou - no laila, ulu mau ka faila a hiki i ka pau ʻana o ka wahi ma ka server. No laila, ke ʻōlelo hou nei au ʻo ka hoʻopaʻa ʻana i Docker, ʻo ia hoʻi ma Kubernetes, i kahi faila he manaʻo maikaʻi ʻole.

ʻO ka ʻaoʻao aʻe, eia wau makemake e kamaʻilio hou e pili ana i kēia - no ka mea e pili ana mākou i ke kumuhana o nā lāʻau, maikaʻi e kamaʻilio e pili ana i ke ʻano o ka nānā ʻana i nā lāʻau i mea e maʻalahi ai ka hana ʻana me lākou. E like me kaʻu i ʻōlelo ai, ʻaʻole pili pono ke kumuhana iā Kubernetes, akā pili maikaʻi loa ia i ke kumuhana o DevOps. Ma ke kumuhana o ka moʻomeheu hoʻomohala a me ka pilina ma waena o kēia mau keʻena ʻelua - Dev a me Ops, i ʻoluʻolu nā mea a pau.

ʻO ia ke kumu, i kēia lā, pono e kākau ʻia nā lāʻau i ka palapala JSON. Inā loaʻa iā ʻoe kekahi noi hiki ʻole ke hoʻomaopopo iā ʻoe iho, e kākau ana i nā lāʻau i nā ʻano hiki ʻole ke hoʻomaopopo ʻia no ka mea ua hoʻokomo ʻoe i kahi ʻano paʻi a i ʻole kekahi mea like, a laila ua hiki i ka manawa e google i kekahi ʻano o ka framework, kahi ʻano wīwī e hiki ai iā ʻoe ke hoʻokō i ka logging maʻamau; hiki iā ʻoe ke hoʻopaʻa inoa i nā ʻāpana ma JSON ma laila, no ka mea he ʻano maʻalahi ʻo JSON, maʻalahi ka paʻi ʻana.

Inā ʻaʻole hana kāu JSON e like me kekahi mau pae hoʻohālikelike, ʻaʻohe mea i ʻike i ka mea, a laila e kākau liʻiliʻi i nā lāʻau i kahi ʻano i hiki ke hoʻopaʻa ʻia. Eia naʻe, pono e noʻonoʻo e pili ana i ka ʻoiaʻiʻo, no ka laʻana, inā e holo ana ʻoe i kahi pūʻulu o nā ipu a i ʻole nā ​​​​kaʻina hana me ka nginx, a loaʻa i kēlā me kēia me kāna mau hoʻonohonoho hoʻopaʻa inoa ponoʻī, a laila e manaʻo ʻia paha he mea paʻakikī loa ia iā ʻoe. e wehewehe iā lākou. No ka mea no kēlā me kēia hiʻohiʻona nginx hou pono ʻoe e kākau i kāu parser ponoʻī, no ka mea, kākau ʻokoʻa lākou i nā lāʻau. Eia hou, pono paha e noʻonoʻo e pili ana i ka hoʻonohonoho ʻana o kēia mau nginx āpau i ka hoʻonohonoho logging like a kākau i kā lākou mau lāʻau āpau me ka like ʻole. Pela no na noi a pau loa.

I ka hopena, makemake nō hoʻi au e hoʻohui i ka wahie i ke ahi, ʻo ia hoʻi, pono e pale ʻia nā log format multi-line. Eia ka mea, inā ʻoe i hana pū me nā ʻohi lāʻau, a laila ʻike paha ʻoe i ka mea a lākou i hoʻohiki ai iā ʻoe, hiki iā lākou ke hana me nā lālani multi-line, ʻike pehea e hōʻiliʻili ai, a pēlā aku. ʻO kaʻoiaʻiʻo, i koʻu manaʻo, ʻaʻole hiki i kahi ʻohi hoʻokahi i kēia lā ke hōʻiliʻili i nā lāʻau multi-line ma ke ʻano maʻamau, piha a me ka hewa ʻole. Ma ke ʻano kanaka, no laila ua maʻalahi a me ka hewa ʻole.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

Akā ʻo ka stack trace he mau lālani mau laina a pehea e pale aku ai iā lākou. ʻO ka nīnau ma ʻaneʻi, ʻo ka log he moʻolelo o kahi hanana, a ʻo stactrace ʻaʻole ia he log. Inā mākou e hōʻiliʻili i nā lāʻau a hoʻokomo iā lākou ma kahi o Elasticsearch a laila huki i nā kiʻi mai ia mau mea, kūkulu i kekahi mau hōʻike o ka hana o ka mea hoʻohana ma kāu pūnaewele, a laila ke loaʻa iā ʻoe kahi hōʻiliʻili, ʻo ia ke ʻano o kahi mea i manaʻo ʻole ʻia. A he mea maʻalahi ka hoʻouka ʻana i kahi hōʻiliʻili hoʻopaʻa i kahi i loko o kahi ʻōnaehana hiki ke hahai iā lākou.

ʻO kēia ka lako polokalamu (ʻo ia ka Sentry) i hana pono ʻia no ka hana ʻana me ka trace stack. Hiki iā ia ke hana koke i nā hana maʻemaʻe, hāʻawi iā lākou i kekahi, makaʻala i ka wā e loaʻa ai nā stacttraces, hui i kēia mau stacttraces ma kahi ʻano, a pēlā aku. Ma ke kumu, ʻaʻole kūpono ke kamaʻilio e pili ana i nā stactraces ke kamaʻilio mākou e pili ana i nā lāʻau, no ka mea, he mau mea like ʻole kēia me nā kumu like ʻole.

Kauoa

A laila e kamaʻilio mākou e pili ana i ka hoʻonohonoho ʻana ma Kubernetes: pehea e hana ai me ia a pehea e hoʻonohonoho ʻia ai nā noi i loko o Kubernetes. Ma ka laulā, ʻōlelo pinepine wau ʻaʻole pili ʻo Docker i nā ipu. Ua ʻike nā kānaka a pau e pili ana ʻo Docker i nā ipu, ʻo ka poʻe ʻaʻole i hana nui me Docker. Ke haʻi hou aku nei au, ʻaʻole pili ʻo Docker i nā ipu.

ʻO Docker, i koʻu manaʻo, e pili ana i nā kūlana. A aia nā kūlana no nā mea āpau: nā kūlana no ke kūkulu ʻana i kāu noi, nā kūlana no ka hoʻokomo ʻana i kāu noi.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

A ʻo kēia mea - ua hoʻohana mākou iā ia ma mua, ua lilo ia i mea kaulana loa me ka hiki ʻana mai o nā ipu - ua kapa ʻia kēia mea ʻo ENV (environment) variables, ʻo ia hoʻi, nā mea hoʻololi kaiapuni i loko o kāu ʻōnaehana hana. He ala maikaʻi loa kēia e hoʻonohonoho ai i kāu noi, no ka mea inā loaʻa iā ʻoe nā noi ma JAVA, Python, Go, Perl, ʻaʻole ke Akua, a hiki iā lākou ke heluhelu i ka waihona waihona, ka mea hoʻohana waihona, nā ʻōlelo huna huna, a laila kūpono. Loaʻa iā ʻoe nā noi i ʻehā mau ʻōlelo like ʻole i hoʻonohonoho ʻia i ka hoʻolālā waihona ma ke ʻano like. ʻAʻohe ʻano hoʻonohonoho like ʻole.

Hiki ke hoʻonohonoho ʻia nā mea āpau me ka hoʻohana ʻana i nā ʻano hoʻololi ENV. Ke kamaʻilio nei mākou e pili ana i nā Kubernetes, aia kahi ala maikaʻi loa e haʻi aku ai i nā ʻano hoʻololi ENV i loko o Deployment. No laila, inā mākou e kamaʻilio e pili ana i ka ʻikepili huna, a laila hiki iā mākou ke hoʻokuke koke i ka ʻikepili huna mai nā mea hoʻololi ENV (nā huaʻōlelo i nā waihona, a me nā mea ʻē aʻe) i kahi huna, hana i kahi hui huna a hōʻike i ka wehewehe ENV ma Deployment ʻaʻole mākou e haʻi pololei. ka waiwai o keia hoololi, a me ka waiwai o keia hoololi password waihona e heluheluia mai ka mea huna. ʻO kēia ka hana maʻamau Kubernetes. A ʻo kēia ka koho kūpono loa e hoʻonohonoho i kāu mau noi. Ma ka pae code wale nō, pili hou kēia i nā mea hoʻomohala. Inā ʻo DevOps ʻoe, hiki iā ʻoe ke nīnau: "E nā kāne, e ʻoluʻolu e aʻo i kāu noi e heluhelu i nā ʻano hoʻololi kaiapuni. A hauʻoli mākou a pau."

Inā heluhelu ka poʻe a pau o ka hui i nā ʻano like ʻole o ke kaiapuni, a laila maikaʻi kēlā. No laila ʻaʻole hiki ke kali kekahi i ka waihona postgres, ke kali nei kekahi i ka inoa ʻikepili, ke kali nei kekahi i kahi mea ʻē aʻe, ke kali nei kekahi i kahi dbn o kekahi ʻano, no laila, aia ke ʻano like.

Hiki mai ka pilikia ke loaʻa iā ʻoe nā ʻano hoʻololi kaiapuni e wehe wale ʻoe i ka Deployment - a aia ʻelima haneli mau laina o nā ʻano hoʻololi kaiapuni. I kēia hihia, ua ʻoi aku ʻoe i nā mea hoʻololi kaiapuni - a ʻaʻole pono ʻoe e hoʻomāinoino iā ʻoe iho. I kēia hihia, pono e hoʻomaka e hoʻohana i nā configs. ʻO ia hoʻi, e hoʻomaʻamaʻa i kāu noi e hoʻohana i nā configs.

ʻO ka nīnau wale nō ʻaʻole ʻo nā config ka mea āu e manaʻo ai. ʻAʻole ʻo Config.pi kahi hoʻonohonoho maʻalahi e hoʻohana. A i ʻole kekahi config i kāu ʻano ponoʻī, hāʻawi ʻia - ʻaʻole kēia ka config aʻu e ʻōlelo nei.

ʻO kaʻu e kamaʻilio nei e pili ana i ka hoʻonohonoho ʻana i nā ʻano ʻae ʻia, ʻo ia hoʻi, ʻo ka maʻamau kaulana loa ʻo ia ka maʻamau .yaml. Akaka ka heluhelu ana, hiki i ke kanaka ke heluhelu, akaka ka heluhelu ana mai ka palapala noi.

No laila, ma kahi o YAML, hiki iā ʻoe, no ka laʻana, hoʻohana iā JSON, ʻoi aku ka maʻalahi o ka parsing e like me YAML i ka heluhelu ʻana i ka hoʻonohonoho noiʻi mai laila. ʻOi aku ka paʻakikī o ka heluhelu ʻana o ka poʻe. Hiki iā ʻoe ke hoʻāʻo i ke ʻano, a la ini. He mea maʻalahi ka heluhelu ʻana, mai ka manaʻo o ke kanaka, akā paʻakikī paha ka hoʻoponopono ʻana iā ia, ma ke ʻano inā makemake ʻoe e hana i kāu mau configs ponoʻī, ʻaʻole hiki ke hana ʻia ka format ini.

Akā i kēlā me kēia hihia, ʻo kēlā me kēia ʻano āu e koho ai, ʻo ka manaʻo mai kahi ʻano Kubernetes he mea maʻalahi loa ia. Hiki iā ʻoe ke kau i kāu config holoʻokoʻa i loko o Kubernetes, i ka ConfigMap. A laila e lawe i kēia configmap a noi iā ia e kau ʻia i loko o kāu pod i kekahi papa kuhikuhi kikoʻī, kahi e heluhelu ai kāu noi i ka hoʻonohonoho ʻana mai kēia configmap me he mea lā he faila wale nō. ʻO kēia, ʻoiaʻiʻo, ʻo ia ka mea maikaʻi e hana inā he nui nā koho hoʻonohonoho i kāu noi. A i ʻole he ʻano hana paʻakikī wale nō, aia ka pūnana.

Inā loaʻa iā ʻoe kahi configmap, a laila hiki iā ʻoe ke aʻo maikaʻi loa i kāu noi, no ka laʻana, e nānā pono i nā loli i ka faila kahi i kau ʻia ai ka configmap, a hoʻouka hou i kāu noi ke hoʻololi nā configs. He koho kūpono loa kēia.

Eia hou, ua kamaʻilio mua wau e pili ana i kēia - ʻaʻole i loko o ka configmap ka ʻike huna, ʻaʻole i loko o nā mea huna ka ʻike huna, ʻaʻole i loko o nā mea huna. Mai laila mai, hoʻohui i kēia ʻike huna i ka diplomacy. Ma ka maʻamau, mālama mākou i nā wehewehe āpau o nā mea Kubernetes, deployments, configmaps, services in git. No laila, ʻo ka waiho ʻana i ka ʻōlelo huna i ka waihona ma git, ʻoiai inā ʻo kāu git, āu i loko o ka hui, he manaʻo maikaʻi ʻole. No ka mea, ma ka liʻiliʻi, hoʻomanaʻo ʻo git i nā mea āpau a me ka wehe wale ʻana i nā ʻōlelo huna mai laila ʻaʻole maʻalahi.

Nānā olakino

ʻO ka helu aʻe kēia mea i kapa ʻia ʻo Health check. Ma keʻano laulā, ʻike wale ʻia kahi hōʻoia Ola e hana ana kāu noi. I ka manawa like, ke kamaʻilio pinepine nei mākou e pili ana i kekahi mau noi pūnaewele, no laila, mai ka manaʻo o ka nānā ʻana i ke olakino (ʻoi aku ka maikaʻi o ka unuhi ʻana ma aneʻi a ʻoi aku) e lilo kēia i kekahi URL kūikawā, a lākou e hana ai. he maʻamau, hana mau lākou /health.

I ke komo ʻana i kēia URL, no laila, ʻōlelo kā mākou noi "ʻae, ʻae, maikaʻi nā mea āpau iaʻu, 200" a i ʻole "ʻaʻole, ʻaʻole maikaʻi nā mea āpau iaʻu, ma kahi o 500." No laila, inā ʻaʻole http kā mākou noi, ʻaʻole he noi pūnaewele, ke kamaʻilio nei mākou e pili ana i kekahi ʻano daemon, hiki iā mākou ke noʻonoʻo pehea e hana ai i nā loiloi olakino. ʻO ia hoʻi, ʻaʻole pono, inā ʻaʻole http ka noi, a laila hana nā mea āpau me ka ʻole o ka nānā olakino a ʻaʻole hiki ke hana ʻia ma kekahi ʻano. Hiki iā ʻoe ke hōʻano hou i kekahi mau ʻike i ka faila, hiki iā ʻoe ke hele mai me kekahi kauoha kūikawā no kāu daemon, e like me, daemon status, ka mea e ʻōlelo "ʻae, maikaʻi nā mea āpau, ke hana nei ka daemon, ke ola nei."

No ke aha ia? ʻO ka mea mua a maopopo loa paha ke kumu e pono ai ka nānā olakino - e hoʻomaopopo i ka hana ʻana o ka noi. ʻO koʻu manaʻo, he naʻaupō wale nō, i ka wā e piʻi ai i kēia manawa, me he mea lā e hana ana, no laila hiki iā ʻoe ke maopopo ke hana. A ua hoʻololi ʻia ke holo nei ka noi, ke holo nei ka ipu, ke hana nei ke ʻano, maikaʻi nā mea āpau - a laila ua ʻoki nā mea hoʻohana i nā helu kelepona āpau mai ke kākoʻo ʻenehana a ʻōlelo ʻo "He aha ʻoe ... hiamoe, ʻaʻohe mea hana.

ʻO ka nānā olakino kahi ala e ʻike ai mai ka manaʻo o ka mea hoʻohana e hana ana. ʻO kekahi o nā ʻano. E hoʻokomo kākou i kēia ʻano. Mai ka manaʻo o Kubernetes, he ala hoʻi kēia e hoʻomaopopo ai i ka wā e hoʻomaka ai ka noi, no ka mea, hoʻomaopopo mākou aia ka ʻokoʻa ma waena o ka wā i hoʻokuʻu ʻia ai ka ipu, hana ʻia a hoʻomaka ʻia, a i ka wā i hoʻomaka pololei ʻia ai ka noi ma kēia ipu. No ka mea, inā mākou e lawe i kekahi noi java maʻamau a hoʻāʻo e hoʻomaka i ka pahu, a laila no kanahā kekona, a i ʻole hoʻokahi minuke, a i ʻole ʻumi paha, hiki ke hoʻomaka maikaʻi. I kēia hihia, hiki iā ʻoe ke kīkēkē i kona mau awa, ʻaʻole ia e pane ma laila, ʻo ia hoʻi, ʻaʻole i mākaukau e loaʻa i ke kaʻa.

Eia hou, me ke kōkua o ka nānā olakino a me ke kōkua o ka ʻoiaʻiʻo ke huli nei mākou ma ʻaneʻi, hiki iā mākou ke hoʻomaopopo ma Kubernetes ʻaʻole wale ka pahu i piʻi i ka noi, akā ua hoʻomaka ka noi ponoʻī, ua pane mua ia i ka ʻike olakino, ʻo ia hoʻi, hiki iā mākou ke hoʻouna i ke kaʻa ma laila.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

ʻO kaʻu mea e kamaʻilio nei i kēia manawa ua kapa ʻia ʻo Readiness/Liveness tests i loko o Kubernetes; no laila, ʻo kā mākou mākaukau mākaukau ke kuleana no ka loaʻa ʻana o ka noi i ke kaulike. ʻO ia hoʻi, inā hana ʻia nā hoʻāʻo mākaukau ma ka noi, a laila ua maikaʻi nā mea āpau, e hele ana nā mea kūʻai aku i ka noi. Inā ʻaʻole i hoʻokō ʻia nā hoʻāʻo mākaukau, a laila ʻaʻole komo wale ka noi, ʻaʻole komo kēia ʻano i ke kaupaona ʻana, ua hoʻoneʻe ʻia mai ke kaupaona ʻana, ʻaʻole kahe ka mea kūʻai aku. No laila, pono nā ho'āʻo Liveness i loko o Kubernetes a inā paʻa ka noi, hiki ke hoʻomaka hou. Inā ʻaʻole holo ka hoʻāʻo ola no kahi noi i haʻi ʻia ma Kubernetes, a laila ʻaʻole wehe wale ʻia ka noi mai ke kaupaona ʻana, hoʻomaka hou ia.

A eia kekahi mea koʻikoʻi aʻu e makemake ai e haʻi aku: mai kahi ʻike kūpono, hoʻohana pinepine ʻia ka hoʻāʻo mākaukau a ʻoi aku ka pono ma mua o ka hoʻāʻo ola. ʻO ia, ʻo ka haʻi ʻana me ka noʻonoʻo ʻole i nā hoʻāʻo mākaukau a me ke ola, no ka mea hiki iā Kubernetes ke hana i kēlā, a e hoʻohana kākou i nā mea āpau i hiki ke hana, ʻaʻole ia he manaʻo maikaʻi loa. E wehewehe au i ke kumu. No ka mea, ʻo ka helu ʻelua i ka hoʻāʻo ʻana he mea maikaʻi ia e nānā i ka lawelawe kumu i kāu nānā olakino. ʻO ia ke ʻano inā loaʻa iā ʻoe kahi palapala noi pūnaewele e hāʻawi i kekahi ʻike, ʻo ia hoʻi, ma ke ʻano maoli, pono e lawe mai kahi. I loko o kahi waihona, no ka laʻana. ʻAe, mālama ia i ka ʻike i hiki mai i kēia REST API i loko o ka waihona like. A laila, inā e pane like kāu healthcheck e like me ka contacted slashhealth, ʻōlelo ka palapala noi "200, ʻae, maikaʻi nā mea āpau," a i ka manawa like ʻole hiki ke loaʻa ka waihona o kāu noi, a ʻōlelo ka palapala noi olakino "200, ʻae, maikaʻi nā mea āpau. ” - He nānā kino kino kēia. ʻAʻole pono kēia e hana.

ʻO ia, kāu noi, ke hiki mai kahi noi /health, ʻaʻole ia e pane wale mai, "200, ok", hele mua ia, no ka laʻana, i ka waihona, hoʻāʻo e hoʻopili iā ia, hana i kahi mea maʻamau ma laila, e like me ke koho ʻana i hoʻokahi, nānā wale nō aia kahi pilina ma ka waihona a hiki iā ʻoe ke nīnau i ka waihona. Inā holomua kēia mau mea a pau, ʻo ka pane ʻo "200, ʻoki." Inā ʻaʻole kūleʻa, ʻōlelo ʻia aia he hewa, ʻaʻole i loaʻa ka waihona.

No laila, ma kēia ʻano, hoʻi hou wau i nā hoʻokolohua Readiness/Liveness - no ke aha ʻoe e makemake ai i kahi hoʻāʻo mākaukau, akā nīnau ʻia kahi hoʻāʻo ola. No ka mea inā e wehewehe ʻoe i nā loiloi olakino e like me kaʻu i ʻōlelo ai, a laila e ʻike ʻia ʻaʻole i loaʻa i ka ʻāpana instance.в или со всех instancei loko o kahi waihona, no ka laʻana. I ka wā i haʻi aku ai ʻoe i kahi hoʻāʻo mākaukau, ua hoʻomaka ka hāʻule ʻana o kā mākou olakino, a no laila ʻo nā noi āpau i hiki ʻole ke ʻike ʻia i ka waihona, ua hoʻopau wale ʻia lākou mai ke kaupaona ʻana a ʻoiaʻiʻo "kau" wale nō i kahi kūlana mālama ʻole ʻia a kali i kā lākou waihona. hana.

Inā mākou i haʻi aku i ka liveness ho'āʻo, a laila, manaʻo, ua haki kā mākou waihona, a ma kou Kubernetes hoʻomaka ka hapalua o nā mea a pau e restart no ka mea, ua pau ka liveness hoao. 'O ia ho'i, pono 'oe e ho'omaka hou. ʻAʻole kēia ka mea āu e makemake ai, ua loaʻa iaʻu kahi ʻike pilikino i ka hoʻomaʻamaʻa. Loaʻa iā mākou kahi noi kamaʻilio i kākau ʻia ma JS a hānai ʻia i loko o kahi waihona Mongo. A ʻo ka pilikia ʻo ia i ka hoʻomaka ʻana o kaʻu hana me Kubernetes, ua wehewehe mākou i ka mākaukau, ola o nā hoʻokolohua ma ke kumu e hiki ai iā Kubernetes ke hana, no laila e hoʻohana mākou. No laila, i kekahi manawa ua lilo ʻo Mongo i "ʻoluʻolu" a hoʻomaka ka hāʻule. No laila, e like me ka ho'āʻo ua, ua hoʻomaka nā pods e "pepehi".

E like me kāu e hoʻomaopopo ai, ke "pepehi ʻia" lākou, he kamaʻilio kēia, ʻo ia hoʻi, he nui nā pilina mai nā mea kūʻai aku e kau ana ma luna. Ua "pepehi ʻia" lākou - ʻaʻole, ʻaʻole nā ​​​​mea kūʻai aku, nā pilina wale nō - ʻaʻole i ka manawa like, a no ka mea ʻaʻole i pepehi ʻia lākou i ka manawa like, kekahi ma mua, kekahi ma hope, ʻaʻole lākou e hoʻomaka i ka manawa like. manawa. ʻO ka maʻamau maʻamau, ʻaʻole hiki iā mākou ke wānana me ka pololei millisecond i ka manawa hoʻomaka o ka noi i kēlā me kēia manawa, no laila hana lākou i hoʻokahi manawa i ka manawa. Hoʻokahi infospot piʻi, hoʻohui ʻia i ke kaulike, hele mai nā mea kūʻai aku a pau i laila, ʻaʻole hiki iā ia ke kūpaʻa i kēlā ukana, no ka mea, ʻo ia wale nō, a ma ka ʻōlelo ʻana, aia he kakini o lākou e hana ana ma laila, a hāʻule. Piʻi ka mea aʻe, kau ka haʻawe holoʻokoʻa iā ia, hāʻule pū kekahi. ʻAe, ke hoʻomau nei kēia mau hāʻule i ka cascade. I ka hopena, pehea i hoʻoholo ʻia ai - pono mākou e hoʻōki loa i ka hele ʻana o nā mea hoʻohana i kēia noi, e hoʻokuʻu i nā manawa āpau a laila hoʻomaka i nā mea hoʻohana āpau i ka manawa hoʻokahi i puʻunaue ʻia i waena o nā manawa he ʻumi.

Inā ʻaʻole no ka hoʻolaha ʻia ʻana o kēia hoʻāʻo ola, ka mea e koi ai i nā mea āpau e hoʻomaka hou, ua hoʻokele maikaʻi ʻia ka noi. Akā, ua pio nā mea a pau mai ke kaulike no mākou, no ka mea, ʻaʻole hiki ke loaʻa nā ʻikepili a ua "hāʻule" nā mea hoʻohana a pau. A laila, i ka wā e loaʻa ai kēia waihona, ua hoʻokomo ʻia nā mea a pau i ke kaupaona ʻana, akā ʻaʻole pono nā noi e hoʻomaka hou, a ʻaʻohe pono e hoʻopau i ka manawa a me nā kumuwaiwai ma kēia. Aia lākou a pau ma ʻaneʻi, ua mākaukau lākou no ke kaʻa, no laila ke wehe wale nei ke kaʻa, maikaʻi nā mea a pau - ua paʻa ka noi, hoʻomau nā mea āpau.

No laila, ʻokoʻa nā hoʻokolohua mākaukau a me ke ola, ʻo ia hoʻi, hiki iā ʻoe ke hana i nā loiloi olakino like ʻole, hoʻokahi ʻano radii, hoʻokahi ʻano liv, no ka laʻana, a nānā i nā mea like ʻole. I ka wā o nā hoʻāʻo mākaukau, e nānā i kāu mau hope. A ma kahi ho'āʻo ola, no ka laʻana, ʻaʻole ʻoe e nānā mai ka manaʻo o ka hoʻāʻo liveness maʻamau he noi wale nō e pane ana, inā hiki iā ia ke pane i nā mea āpau.

No ka mea, ʻo ka hoʻāʻo ola, ma ke ʻano nui, ʻo ia ke "paʻa." Ua hoʻomaka ʻia kahi loop pau ʻole a i ʻole kekahi mea ʻē aʻe - a ʻaʻohe noi hou e hana ʻia. No laila, he mea kūpono ke hoʻokaʻawale iā lākou - a hoʻokō i nā loiloi like ʻole i loko o lākou.

E pili ana i ka mea e pono ai ʻoe e pane ke loaʻa kāu hōʻike, ke hana ʻoe i nā loiloi olakino. He ʻeha maoli nō. E ʻakaʻaka paha ka poʻe i kamaʻāina i kēia - akā ʻo ke koʻikoʻi, ua ʻike au i nā lawelawe i koʻu ola e pane ana i ka "200" i XNUMX% o nā hihia. ʻO ia hoʻi, ʻo wai ka holomua. Akā i ka manawa like i loko o ke kino o ka pane, kākau lākou i ka "hewa penei a me kēia."

ʻO ia hoʻi, hiki mai ke kūlana pane iāʻoe - ua holomua nā mea a pau. Akā i ka manawa like, pono ʻoe e hoʻokaʻawale i ke kino, no ka mea, ʻōlelo ke kino "e kala mai, ua pau ka noi me kahi hewa" a he ʻoiaʻiʻo wale nō kēia. Ua ʻike au i kēia ma ke ola maoli.

A no laila ʻaʻole ʻike kekahi poʻe he mea ʻakaʻaka, a ʻike ʻia nā mea ʻē aʻe he mea ʻeha loa ia, pono nō ka mālama ʻana i kahi lula maʻalahi. I ka nānā ʻana i ke olakino, a ma ke kumu i ka wā e hana ai me nā noi pūnaewele.

Inā maikaʻi nā mea a pau, a laila e pane me ka pane ʻelua haneli. Ma ke kumu, kūpono kēlā me kēia pane ʻelua haneli iā ʻoe. Inā heluhelu maikaʻi ʻoe i ka ragsy a ʻike ʻoe he ʻokoʻa nā kūlana pane mai nā poʻe ʻē aʻe, e pane me nā mea kūpono: 204, 5, 10, 15, ʻoiai. Inā ʻaʻole maikaʻi loa, a laila "ʻelua zero zero." Inā hele hewa nā mea a pau a pane ʻole ka nānā olakino, a laila e pane me ka hapa ʻelima haneli. Eia hou, inā maopopo iā ʻoe pehea e pane ai, pehea ka ʻokoʻa o nā kūlana pane ʻokoʻa mai kekahi i kekahi. Inā ʻaʻole ʻoe maopopo, a laila ʻo 502 kāu koho e pane i nā loiloi olakino inā hewa kekahi mea.

ʻO kēia kekahi kumu, makemake wau e hoʻi iki e pili ana i ka nānā ʻana i nā lawelawe kumu. Inā hoʻomaka ʻoe, no ka laʻana, e nānā i nā lawelawe kumu a pau e kū nei ma hope o kāu noi - nā mea āpau ma ka laulā. ʻO ka mea i loaʻa iā mākou mai ka manaʻo o ka microservice architecture, loaʻa iā mākou kahi manaʻo e like me ka "coupling haʻahaʻa" - ʻo ia hoʻi, ke hilinaʻi liʻiliʻi kāu mau lawelawe i kekahi. Inā hāʻule kekahi o lākou, e hoʻomau nā mea ʻē aʻe me ka ʻole o kēia hana. ʻAʻole hana wale kekahi o nā hana. No laila, inā e hoʻopaʻa ʻoe i nā loiloi olakino āpau i kekahi, a laila e hoʻopau ʻoe i hoʻokahi mea i hāʻule i loko o ka ʻōnaehana, a no ka hāʻule ʻana, hoʻomaka hoʻi ka hāʻule ʻana o nā loiloi olakino āpau o nā lawelawe āpau - a ʻoi aku ka nui o nā ʻoihana ma ka laulā no ka hale hana microservice holoʻokoʻa No. Ua pōʻeleʻele nā ​​mea a pau ma laila.

No laila, makemake wau e haʻi hou i kēia e pono ai ʻoe e nānā i nā lawelawe i lalo, ʻaʻole hiki i kāu noi i hoʻokahi haneli pakeneka o nā hihia ke hana i kāna hana. ʻO ia hoʻi, he mea kūpono inā loaʻa iā ʻoe kahi API REST kahi e mālama ai ka mea hoʻohana i ka waihona a i ʻole kiʻi hou mai ka waihona, a laila i ka nele o kahi waihona, ʻaʻole hiki iā ʻoe ke hōʻoiaʻiʻo i ka hana me kāu mau mea hoʻohana.

Akā inā hoʻonui ʻia kāu mea hoʻohana, i ka wā e lawe ai ʻoe iā lākou i waho o ka waihona, me kekahi mau metadata ʻē aʻe, mai kahi hope ʻē aʻe, āu e komo ai ma mua o ka hoʻouna ʻana i kahi pane i ka frontend - a ʻaʻole loaʻa kēia hope, ʻo ia ka mea e hāʻawi ʻoe i kāu pane me ka ʻole o ka metadata.

A laila, loaʻa iā mākou kekahi o nā pilikia ʻeha i ka wā e hoʻomaka ai i nā noi.

ʻO ka ʻoiaʻiʻo, ʻaʻole pili kēia i nā Kubernetes ma ka nui; ʻo ia wale nō ka mea i hoʻomaka ai ka moʻomeheu o kekahi ʻano hoʻomohala nui a me nā DevOps i ka manawa like me Kubernetes. No laila, ma ka nui, ʻike ʻia e pono ʻoe e pani i kāu noi me ka ʻole o Kubernetes. ʻOiai ma mua o Kubernetes, ua hana nā kānaka i kēia, akā me ka hiki ʻana mai o Kubernetes, hoʻomaka mākou e kamaʻilio e pili ana i ia mea.

Paʻa ʻoluʻolu

Ma ka laulā, he aha ka Graceful Shutdown a no ke aha e pono ai? E pili ana kēia i ka wā e hāʻule ai kāu noi no kekahi kumu, pono ʻoe e hana app stop - a i ʻole e loaʻa iā ʻoe, no ka laʻana, kahi hōʻailona mai ka ʻōnaehana hana, pono kāu noi e hoʻomaopopo a hana i kekahi mea e pili ana. ʻO ka hihia maikaʻi loa, ʻoiaʻiʻo, ke loaʻa i kāu noi kahi SIGTERM a like me "SIGTERM, e paʻa kāua, hana, hana ʻole." He koho maikaʻi ʻole kēia.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

ʻO kahi koho like ʻole i ka wā e loaʻa ai i kāu noi kahi SIGTERM a ua like ia "i ʻōlelo lākou segterm, ʻo ia hoʻi e pau ana mākou, ʻaʻole wau i ʻike, ʻaʻole wau ʻike i nā noi mea hoʻohana, ʻaʻole wau ʻike i ke ʻano o nā noi aʻu e hana nei i kēia manawa, ʻōlelo lākou ʻo SIGTERM, ʻo ia ka mea e pau ana mākou " He koho maikaʻi ʻole kēia.

He aha ke koho maikaʻi? ʻO ka mea mua e noʻonoʻo i ka pau ʻana o nā hana. ʻO kahi koho maikaʻi no kāu kikowaena e noʻonoʻo mau i kāna hana inā loaʻa iā ia kahi SIGTERM.

ʻO SIGTERM kahi paʻa paʻa, ua hoʻolālā kūikawā ʻia, hiki ke hoʻopaʻa ʻia ma ka pae code, hiki ke hana ʻia, e ʻōlelo i kēia manawa, e kali, e hoʻopau mua mākou i ka hana i loaʻa iā mākou, a laila e haʻalele mākou.

Mai kahi hiʻohiʻona Kubernetes, ʻo ia kona ʻano. Ke ʻōlelo mākou i kahi pod e holo ana ma ka pūʻulu Kubernetes, "e ʻoluʻolu e kū, e hele," a i ʻole e hoʻomaka hou ana mākou, a i ʻole he mea hou i ka wā e hana hou ai ʻo Kubernetes i nā pods, hoʻouna ʻo Kubernetes i ka memo SIGTERM like i ka pod, kali no kekahi manawa, a, ʻo ia ka manawa e kali ai, ua hoʻonohonoho pū ʻia, aia kahi ʻāpana kūikawā i nā diploma a ua kapa ʻia ʻo Graceful ShutdownTimeout. E like me kou hoʻomaopopo ʻana, ʻaʻole i kapa ʻia kēlā no ka mea ʻole, a ʻaʻole no ka mea ʻole a mākou e kamaʻilio nei i kēia manawa.

Ma laila hiki iā mākou ke ʻōlelo kikoʻī i ka lōʻihi e pono ai mākou e kali ma waena o ka manawa a mākou e hoʻouna ai iā SIGTERM i ka noi a ke hoʻomaopopo mākou ua hele hewa ka noi no kekahi mea a i ʻole "pili" a ʻaʻole e pau - a pono mākou e hoʻouna iā SIGKILL, ʻo ia hoʻi, hoʻopau paʻakikī i kāna hana. ʻO ia, no laila, loaʻa iā mākou kekahi ʻano daemon e holo ana, e hana ana i nā hana. Hoʻomaopopo mākou ma ka awelika o kā mākou hana a ka daemon e hana ai, ʻaʻole lōʻihi ma mua o 30 kekona i ka manawa. No laila, i ka hiki ʻana mai o SIGTERM, maopopo iā mākou hiki i kā mākou daemon ke hoʻopau i 30 kekona ma hope o SIGTERM. Kākau mākou iā ia, no ka laʻana, 45 kekona i ka hihia a ʻōlelo ʻo SIGTERM. Ma hope o kēlā, kali mākou i 45 kekona. Ma ke kumumanaʻo, i kēia manawa ua hoʻopau ka daimonio i kāna hana a hoʻopau iā ia iho. Akā inā ʻaʻole hiki, ʻo ia hoʻi, ua paʻa loa ia - ʻaʻole ia e hana maʻamau i kā mākou noi. A i loko o 45 kekona hiki iā ʻoe ke palekana, ʻoiaʻiʻo, ke kuʻi iā ia i lalo.

A ma ʻaneʻi, ʻoiaʻiʻo, hiki ke noʻonoʻo ʻia nā ʻano 2. ʻO ka mea mua, e hoʻomaopopo inā loaʻa iā ʻoe kahi noi, hoʻomaka ʻoe e hana me ia a ʻaʻole i pane i ka mea hoʻohana, akā ua loaʻa iā ʻoe ʻo SIGTERM, no ka laʻana. He kūpono ke hoʻomaʻemaʻe a hāʻawi i kahi pane i ka mea hoʻohana. ʻO kēia ka helu helu ʻekahi ma kēia ʻano. ʻO ka helu ʻelua ma ʻaneʻi, inā e kākau ʻoe i kāu noi ponoʻī, e hana maʻamau i ka hale hana i ke ala e loaʻa ai kahi noi no kāu noi, a laila hoʻomaka ʻoe i kahi hana, hoʻomaka i ka hoʻoiho ʻana i nā faila mai kahi wahi, hoʻoiho i kahi waihona, a me nā mea ʻē aʻe. ʻO kēlā. Ma keʻano laulā, kāu mea hoʻohana, ke kau nei kāu noi no ka hapalua hola a kali iā ʻoe e pane iā ia - a laila, ʻoi aku paha, pono ʻoe e hana i ka hoʻolālā. ʻO ia hoʻi, e noʻonoʻo wale i ka noʻonoʻo maʻamau inā pōkole kāu mau hana, a laila kūpono ke nānā ʻole iā SIGTERM a hoʻololi. Inā lōʻihi kāu mau hana, a laila ʻaʻole kūpono ke nānā ʻole iā SIGTERM i kēia hihia. He mea kūpono ke hoʻolālā hou i ka hoʻolālā e pale i nā hana lōʻihi. No laila ʻaʻole e kau wale nā ​​mea hoʻohana a kali. ʻAʻole maopopo iaʻu, e hana i kahi ʻano websocket ma laila, e hana i nā makau hoʻohuli i hoʻouna mua ʻia e kāu kikowaena i ka mea kūʻai aku, i nā mea ʻē aʻe, akā mai koi i ka mea hoʻohana e kau no ka hapalua hola a kali wale i kahi kau a hiki i kou manawa. e pane aku iā ia. No ka mea hiki ʻole ke ʻike i kahi e haki ai.

Ke hoʻopau ʻia kāu noi, pono ʻoe e hāʻawi i kahi code puka kūpono. ʻO ia hoʻi, inā ua noi ʻia kāu noi e pani, hoʻōki, a hiki iā ia ke hoʻōki iā ia iho ma ke ʻano maʻamau, a laila ʻaʻole pono ʻoe e hoʻihoʻi i kekahi ʻano code exit 1,5,255 a pēlā aku. ʻO kēlā me kēia mea ʻaʻole code zero, ma ka liʻiliʻi ma nā ʻōnaehana Linux, maopopo wau i kēia, ua manaʻo ʻia ʻaʻole i kūleʻa. ʻO ia, ua manaʻo ʻia ua pau kāu noi i kēia hihia me kahi hewa. No laila, ma kahi ala maikaʻi, inā hoʻopau kāu noi me ka hewa ʻole, ʻōlelo ʻoe 0 ma ka hopena. Inā hāʻule kāu noi no kekahi kumu, ʻōlelo ʻoe ʻaʻole-0 i ka hopena. A hiki iā ʻoe ke hana me kēia ʻike.

A ke koho hope loa. He mea ʻino ke hoʻouna aku kāu mea hoʻohana i kahi noi a kau ʻia no ka hapalua hola ʻoiai ʻoe e hana ai. Akā ma ka laulā, makemake wau e ʻōlelo e pili ana i ka mea maʻamau mai ka ʻaoʻao o ka mea kūʻai aku. ʻAʻole ia he mea nui inā loaʻa iā ʻoe kahi polokalamu kelepona, mua-hope, etc. Pono e noʻonoʻo i ka mea maʻamau hiki ke hoʻopau ʻia ke kau o ka mea hoʻohana, hiki i kekahi mea ke hiki. Hiki ke hoʻouna ʻia kahi noi, no ka laʻana, underprocessed a ʻaʻohe pane i hoʻihoʻi ʻia. ʻO kāu ʻaoʻao mua a i ʻole kāu palapala paʻa paʻa - ʻo kēlā me kēia ʻaoʻao ma ke ʻano laulā, e hoʻokomo i kēlā ala - pono e noʻonoʻo i kēia. Inā hana ʻoe me nā websockets, ʻo kēia ka ʻehaʻeha loa aʻu i loaʻa ai.

Ke ʻike ʻole nā ​​mea hoʻomohala o kekahi mau kamaʻilio maʻamau, ʻike ʻia, hiki i ka websocket ke haki. No lākou, inā loaʻa kekahi mea ma ka proxy, hoʻololi wale mākou i ka config, a hana hou ia. Ma keʻano maʻamau, ua haehaeʻia nā kau lōʻihi a pau i kēia hihia. Holo mai nā mea hoʻomohala iā mākou a ʻōlelo: "E nā kāne, he aha kāu hana, ua haki ke kamaʻilio no kā mākou mea kūʻai aku!" 'Ōlelo mākou iā lākou: "He aha kāu e hana nei? ʻAʻole hiki i kāu mau mea kūʻai ke hoʻohui hou? 'Ōlelo lākou: "ʻAʻole, pono mākou i ʻole e haehae ʻia nā kau." I ka pōkole, he mea lapuwale kēia. Pono e noʻonoʻo ʻia ka ʻaoʻao o ka mea kūʻai aku. ʻOi loa, e like me kaʻu e ʻōlelo nei, me nā manawa lōʻihi e like me nā websockets, hiki iā ia ke haki a, ʻike ʻole ʻia e ka mea hoʻohana, pono ʻoe e hoʻokomo hou i ia mau kau. A laila pono nā mea a pau.

Nā Punawai

ʻOiaʻiʻo, eia wau e haʻi aku iā ʻoe i kahi moʻolelo pololei. Eia hou mai ke ola maoli. ʻO ka mea maʻi aʻu i lohe ai e pili ana i nā kumuwaiwai.

ʻO nā kumuwaiwai i kēia hihia, ʻo wau, kekahi ʻano noi, nā palena hiki iā ʻoe ke kau i nā pods i kāu mau pūʻulu Kubernetes. ʻO ka mea leʻaleʻa aʻu i lohe ai mai kahi mea hoʻomohala ... Ua ʻōlelo kekahi o koʻu mau hoa hana ma kahi o ka hana ma mua: "ʻAʻole e hoʻomaka kaʻu noi i ka hui." Ua nānā au e ʻike ʻaʻole i hoʻomaka, akā ʻaʻole i kūpono i nā kumuwaiwai, a i ʻole lākou i kau i nā palena liʻiliʻi loa. I ka pōkole, ʻaʻole hiki ke hoʻomaka ka noi ma muli o nā kumuwaiwai. 'Ōlelo wau: "ʻAʻole ia e hoʻomaka ma muli o nā kumuwaiwai, hoʻoholo ʻoe i ka nui āu e pono ai a hoʻonoho i kahi waiwai kūpono." 'Ōleloʻo ia: "He aha keʻano o nā kumuwaiwai?" Ua hoʻomaka wau e wehewehe iā ia ʻo Kubernetes, nā palena o nā noi a me blah, blah, blah pono e hoʻonohonoho. Ua hoʻolohe ke kanaka no ʻelima mau minuke, kunou ʻo ia a ʻōlelo: "Ua hele mai au i ʻaneʻi e hana ma ke ʻano he mea hoʻomohala, ʻaʻole wau makemake e ʻike i kekahi mea e pili ana i nā kumuwaiwai. Ua hele mai au i ʻaneʻi e kākau i nā code a ʻo ia nō." He mea kaumaha. He manaʻo kaumaha loa kēia mai ka manaʻo o ka mea hoʻomohala. ʻOi loa i ka honua hou, pēlā e ʻōlelo ai, o nā devops holomua.

No ke aha e pono ai nā kumuwaiwai? Aia 2 ʻano kumu waiwai ma Kubernetes. Ua kapa ʻia kekahi mau noi, ʻo nā mea ʻē aʻe he palena. Ma nā kumuwaiwai e hoʻomaopopo mākou aia ʻelua mau palena kumu wale nō. ʻO ia, nā palena manawa CPU a me nā palena RAM no kahi pahu e holo ana ma Kubernetes.

Hoʻonoho ka palena i ka palena kiʻekiʻe i ka hoʻohana ʻana i kahi kumuwaiwai i kāu noi. ʻO ia, no laila, inā ʻōlelo ʻoe i ka 1GB o RAM i nā palena, a laila ʻaʻole hiki i kāu noi ke hoʻohana ma mua o 1GB o RAM. A inā makemake koke ʻo ia a hoʻāʻo e hana i kēia, a laila kahi kaʻina i kapa ʻia ʻo oom killer, i waho o ka hoʻomanaʻo, ʻo ia hoʻi, e hele mai a pepehi i kāu noi - ʻo ia hoʻi, e hoʻomaka hou. ʻAʻole e hoʻomaka hou nā noi ma muli o ka CPU. Ma nā ʻōlelo o ka CPU, inā e hoʻāʻo kahi noi e hoʻohana i ka nui, ʻoi aku ma mua o ka mea i kuhikuhi ʻia i nā palena, e koho wale ʻia ka CPU. ʻAʻole alakaʻi kēia i ka hoʻomaka hou. ʻO kēia ka palena - ʻo ia ka palena kiʻekiʻe.

A aia kahi noi. ʻO kahi noi ke ʻano o ka hoʻomaopopo ʻana o nā Kubernetes i ka hoʻopiha ʻia ʻana o nā node i kāu pūʻulu Kubernetes me nā noi. ʻO ia hoʻi, ʻo kahi noi kahi ʻano hana o kāu noi. 'Ōlelo ia i kaʻu makemake e hoʻohana: "Makemake au e mālama ʻoe i kēia CPU nui a me kēia hoʻomanaʻo nui iaʻu." ʻO ia ʻano hoʻohālikelike maʻalahi. He aha inā inā loaʻa iā mākou kahi node, ʻaʻole wau i ʻike, 8 CPU i ka huina. A hiki mai kahi pod ma laila, nona nā noi e ʻōlelo ʻo 1 CPU, ʻo ia hoʻi he 7 mau CPU i koe i ka node. ʻO ia hoʻi, i ka hiki koke ʻana o 8 pods i kēia node, ʻo kēlā me kēia mea he 1 CPU i kā lākou noi, ʻo ka node, me he mea lā mai ka manaʻo o Kubernetes, ua pau i ka CPU a ʻoi aku nā pods me nā noi ʻaʻole hiki ke loaʻa. hoʻokuʻu ʻia ma kēia node. Inā pau nā nodes i waho o ka CPU, a laila e hoʻomaka ana nā Kubernetes e ʻōlelo ʻaʻohe nodes kūpono i loko o ka pūʻulu e holo i kāu mau pods no ka mea ua pau ka CPU.

No ke aha e pono ai nā noi a no ke aha me ka ʻole o nā noi, manaʻo wau ʻaʻole pono e hoʻomaka i kekahi mea ma Kubernetes? E noʻonoʻo kākou i kahi kūlana hypothetical. Hoʻomaka ʻoe i kāu noi me ka ʻole o nā noi, ʻaʻole ʻike ʻo Kubernetes i ka nui o kāu mea i loaʻa, he aha nā nodes e hiki ai iā ʻoe ke pana aku iā ia. ʻAe, hoʻokuke ʻo ia, hoʻokuʻu, hoʻokuʻu i nā nodes. I kekahi manawa, e hoʻomaka ana ʻoe e kiʻi i ke kaʻa i kāu noi. A hoʻomaka koke kekahi o nā noi e hoʻohana i nā kumuwaiwai a hiki i nā palena i loaʻa iā ia e like me nā palena. ʻIke ʻia aia he noi ʻē aʻe ma kahi kokoke a pono pū kekahi i nā kumuwaiwai. Hoʻomaka maoli ka node e holo kino i nā kumuwaiwai, no ka laʻana, OP. Hoʻomaka maoli ka node i ka pau ʻana o nā kumuwaiwai, no ka laʻana, ka hoʻomanaʻo ʻana i ka random access memory (RAM). I ka pau ʻana o ka mana o ka node, ʻo ka mea mua e hoʻōki ka docker i ka pane ʻana, a laila ka cubelet, a laila ka OS. E hele wale lākou me ka ʻike ʻole a pau ka hana ʻana no ʻoe. ʻO ia hoʻi, e alakaʻi kēia i kāu node e paʻa a pono ʻoe e hoʻomaka hou. I ka pōkole, ʻaʻole maikaʻi loa ke kūlana.

A ke loaʻa iā ʻoe nā noi, ʻaʻole ʻokoʻa loa nā palena, ʻaʻole i ʻoi aku ka nui o nā manawa ma mua o nā palena a i ʻole nā ​​​​noi, a laila hiki iā ʻoe ke loaʻa kahi hoʻopiha maʻamau o nā noi ma nā nodes o nā pūʻulu Kubernetes. Ma ka manawa like, ʻike ʻo Kubernetes i ka nui o nā mea e waiho ai ma hea, pehea ka nui o nā mea i hoʻohana ʻia ma hea. ʻO ia hoʻi, he manawa like ia. He mea nui e hoʻomaopopo. A he mea nui e hoʻomalu i hōʻike ʻia kēia.

Waihona ʻikepili

ʻO kā mākou mea aʻe e pili ana i ka mālama ʻikepili. He aha ka mea e hana ai me lākou a ma ka laulā, he aha ka mea e hana ai me ka hoʻomau ma Kubernetes?

Manaʻo hou wau, i loko o kā mākou Kula ahiahi, aia kekahi kumuhana e pili ana i ka waihona ma Kubernetes. A i koʻu manaʻo, ʻike wau i ka mea a kāu mau hoa hana i haʻi aku ai iā ʻoe i ka nīnau ʻana: "Hiki paha ke holo i kahi waihona ma Kubernetes?" No kekahi kumu, me he mea lā ua haʻi aku kāu mau hoa iā ʻoe inā e nīnau ʻoe i ka nīnau inā hiki ke holo i kahi waihona ma Kubernetes, a laila hiki ʻole.

He maʻalahi ka loiloi maʻaneʻi. I ka hihia wale nō, e wehewehe hou au, inā he kanaka ʻoluʻolu ʻoe e hiki ke kūkulu i kahi ʻōnaehana hoʻomanawanui kūpono o ka mālama ʻana i ka pūnaewele puʻunaue, e hoʻomaopopo pehea e hoʻokomo ai i kahi waihona i kēia hihia, pehea e hana ai ke ao maoli i loko o nā ipu. ma kahi waihona ma ka laulā. ʻO ka mea nui, ʻaʻohe āu nīnau e pili ana i ka holo ʻana. Inā he nīnau kāu, a makemake ʻoe e hōʻoia i ka wehe ʻana a kū pololei a make i ka hana ʻana a ʻaʻole hāʻule, a laila ʻaʻole hiki kēia. Pono ʻoe e pana iā ʻoe iho i ka wāwae me kēia ala. No laila ʻoi aku ka maikaʻi ʻaʻole.

He aha kā mākou e hana ai me ka ʻikepili a kā mākou noi e makemake ai e mālama, kekahi mau kiʻi i hoʻoili ʻia e nā mea hoʻohana, kekahi mau mea a kā mākou noi e hana ai i ka wā o kāna hana, i ka hoʻomaka ʻana, no ka laʻana? He aha ka hana me lākou ma Kubernetes?

Ma ka laulā, kūpono, ʻae, ʻoiaʻiʻo, ua hoʻolālā maikaʻi ʻia ʻo Kubernetes a ua hoʻomaka mua ʻia no nā noi stateless. ʻO ia hoʻi, no kēlā mau noi i mālama ʻole i ka ʻike. He kūpono kēia.

Akā, ʻoiaʻiʻo, ʻaʻole mau ka koho kūpono. Pela i ka mea? ʻO ka mea mua a maʻalahi loa ka lawe ʻana i kekahi ʻano S3, ʻaʻole wale i kahi mea i hana ʻia i ka home, ʻaʻole maopopo hoʻi pehea e hana ai, akā mai kekahi mea hoʻolako. He mea hoʻolako maʻamau - a aʻo i kāu noi e hoʻohana iā S3. ʻO ia hoʻi, inā makemake kāu mea hoʻohana e hoʻouka i kahi faila, e ʻōlelo "ma ʻaneʻi, e ʻoluʻolu, e hoʻouka iā ia i S3." Ke makemake ʻo ia e loaʻa, e ʻōlelo: "Eia kahi loulou i S3 hoʻi a lawe iā ia mai ʻaneʻi." He kūpono kēia.

Inā hikiwawe no kekahi kumu ʻaʻole kūpono kēia koho kūpono, loaʻa iā ʻoe kahi noi āu i kākau ʻole ai, ʻaʻole ʻoe e hoʻomohala, a i ʻole kekahi ʻano hoʻoilina weliweli, ʻaʻole hiki iā ia ke hoʻohana i ka protocol S3, akā pono e hana pū me nā papa kuhikuhi kūloko. waihona kūloko . E lawe i kahi mea ʻoi aku ka maʻalahi a i ʻole ka maʻalahi, e kau i nā Kubernetes. ʻO ia hoʻi, ʻo ka pā koke iā Ceph no kekahi mau hana liʻiliʻi, me he mea lā iaʻu, he manaʻo maikaʻi ʻole. No ka mea, ʻo Ceph, ʻoiaʻiʻo, maikaʻi a nani. Akā inā ʻaʻole maopopo ʻoe i kāu mea e hana nei, a laila ke kau ʻoe i kekahi mea ma luna o Ceph, hiki iā ʻoe ke maʻalahi a ʻaʻole loa e hoʻokuʻu hou mai laila. No ka mea, e like me kāu e ʻike ai, mālama ʻo Ceph i ka ʻikepili i loko o kāna puʻupuʻu ma ke ʻano binary, ʻaʻole ma ke ʻano o nā faila maʻalahi. No laila, inā e hāʻule koke ka puʻupuʻu Ceph, a laila aia kahi kūlana piha a kiʻekiʻe ʻaʻole ʻoe e kiʻi hou i kāu ʻikepili mai laila.

E loaʻa iā mākou kahi papa ma Ceph, hiki iā ʻoe e hoʻomaʻamaʻa iā ʻoe iho me ka papahana a waiho i kahi noi.

No laila, ʻoi aku ka maikaʻi o ka hana maʻalahi e like me kahi kikowaena NFS. Hiki iā Kubernetes ke hana pū me lākou, hiki iā ʻoe ke kau i kahi papa kuhikuhi ma lalo o kahi kikowaena NFS - ua like kāu noi me kahi papa kuhikuhi kūloko. I ka manawa like, ma ke ʻano maoli, pono ʻoe e hoʻomaopopo i kēlā, eia hou, pono ʻoe e hana i kekahi mea me kāu NFS, pono ʻoe e hoʻomaopopo i kekahi manawa e lilo i mea hiki ʻole a noʻonoʻo i ka nīnau o kāu e hana ai i kēia hihia. Pono paha e kākoʻo ʻia ma kekahi wahi ma kahi mīkini ʻokoʻa.

ʻO ka mea aʻe aʻu i kamaʻilio ai, ʻo ia ka mea e hana ai inā hoʻopuka kāu noi i kekahi mau faila i ka wā o ka hana. No ka laʻana, i ka wā e hoʻomaka ai, hoʻopuka ia i kekahi faila static, i hoʻokumu ʻia ma kekahi ʻike i loaʻa i ka noi i ka manawa o ka hoʻomaka ʻana. He manawa. Inā ʻaʻohe nui o ia ʻikepili, a laila ʻaʻole pono ʻoe e hopohopo, e hoʻokomo wale i kēia noi no ʻoe iho a hana. ʻO ka nīnau wale nō ma ʻaneʻi he aha, e nānā. ʻO ka manawa pinepine, nā ʻōnaehana hoʻoilina āpau, e like me WordPress a pēlā aku, ʻoi aku ka hoʻololi ʻana i kekahi ʻano o nā plugins akamai, nā mea hoʻomohala PHP akamai, ʻike pinepine lākou i ka hana ʻana i mea e hoʻopuka ai lākou i kekahi ʻano faila no lākou iho. No laila, hana kekahi i hoʻokahi faila, hana ka lua i kahi faila lua. He ʻokoʻa lākou. Hana ʻia ke kaulike ma ka pūʻulu Kubernetes o nā mea kūʻai ma ka manawa wale nō. No laila, ʻike ʻia ʻaʻole lākou ʻike pehea e hana pū ai. Hāʻawi kekahi i kahi ʻike, hāʻawi kekahi i ka mea hoʻohana i kahi ʻike ʻē aʻe. ʻO kēia ka mea e pale aku ai. ʻO ia hoʻi, ma Kubernetes, hiki i nā mea a pau āu e hoʻomaka ai ke hana i nā manawa he nui. No ka mea, he mea hoʻoneʻe ʻo Kubernetes. No laila, hiki iā ia ke hoʻoneʻe i kekahi mea, i nā manawa a pau āna e makemake ai, me ka nīnau ʻole ʻana i kekahi. No laila, pono ʻoe e helu i kēia. ʻO nā mea a pau i hoʻokuʻu ʻia i hoʻokahi manawa e hāʻule koke a ma hope paha. ʻOi aku ka nui o kāu mālama ʻana, ʻoi aku ka maikaʻi. Eia hou, ke ʻōlelo nei au, inā he liʻiliʻi kāu mau faila, a laila hiki iā ʻoe ke waiho pololei ma lalo ou, he liʻiliʻi ke kaumaha. Inā ʻoi aku ka liʻiliʻi o lākou, ʻaʻole pono ʻoe e hoʻokomo iā lākou i loko o ka ipu.

Manaʻo wau aia kekahi mea kupanaha ma Kubernetes, hiki iā ʻoe ke hoʻohana i ka leo. ʻO ka mea kūikawā, aia ka nui o ke ʻano dir hakahaka. ʻO ia, ʻo ia wale nō e hana ʻo Kubernetes i kahi papa kuhikuhi ma kāna mau papa kuhikuhi lawelawe ma ka kikowaena kahi āu i hoʻomaka ai. A e hāʻawi ʻo ia iā ʻoe i hiki iā ʻoe ke hoʻohana. Hoʻokahi wale nō mea nui. ʻO ia hoʻi, ʻaʻole e mālama ʻia kāu ʻikepili i loko o ka pahu, akā ma ka mea hoʻokipa āu e holo nei. Eia kekahi, hiki i nā Kubernetes ke hoʻomalu i nā dirs nele ma lalo o ka hoʻonohonoho maʻamau a hiki iā ia ke kāohi i ko lākou nui kiʻekiʻe a ʻaʻole e ʻae ʻia e hoʻonui ʻia. ʻO ka mea wale nō, ʻaʻole nalowale ka mea āu i kākau ai i ka dir i ka wā e hoʻomaka hou ai ka pod. ʻO ia hoʻi, inā hāʻule hewa kāu pod a piʻi hou, ʻaʻole e hele ka ʻike i loko o ka dir hakahaka. Hiki iā ia ke hoʻohana hou i kahi hoʻomaka hou - a maikaʻi kēlā. Inā haʻalele kāu pod i kahi, a laila haʻalele ʻo ia me ka ʻole o ka ʻikepili. ʻO ia hoʻi, i ka wā e nalowale ai ka pod mai ka node kahi i hoʻokuʻu ʻia ai me ka dir hakahaka, holoi ʻia ka dir hakahaka.

He aha ka mea maikaʻi e pili ana i ka dir hakahaka? No ka laʻana, hiki ke hoʻohana ʻia ma ke ʻano he huna. E noʻonoʻo kākou e hana ana kā mākou noi i kekahi mea ma ka lele, hāʻawi i nā mea hoʻohana, a hana ia no ka manawa lōʻihi. No laila, ka palapala noi, no ka laʻana, hoʻopuka a hāʻawi i nā mea hoʻohana, a ma ka manawa like e hoʻopaʻa iā ia ma kahi, no laila i ka manawa aʻe e hele mai ai ka mea hoʻohana no ka mea like, e ʻoi aku ka wikiwiki o ka hāʻawi koke ʻana. Hiki ke noi ʻia nā dir hakahaka iā Kubernetes e hana i ka hoʻomanaʻo. A no laila, hiki i kāu mau huna ke hana maʻamau me ka wikiwiki o ka uila - e pili ana i ka wikiwiki o ka ʻike disk. ʻO ia hoʻi, loaʻa iā ʻoe kahi dir kaʻawale i ka hoʻomanaʻo, i loko o ka OS ua mālama ʻia i ka hoʻomanaʻo, akā no ʻoe, no ka mea hoʻohana i loko o ka pod, ua like ia me kahi papa kuhikuhi kūloko. ʻAʻole pono ʻoe i ka app e aʻo kikoʻī i kekahi kilokilo. Lawe pololei ʻoe a waiho i kāu faila i kahi papa kuhikuhi, akā, ʻoiaʻiʻo, i ka hoʻomanaʻo ma ka OS. He hiʻohiʻona maʻalahi loa kēia e pili ana i nā Kubernetes.

He aha nā pilikia i loaʻa iā Minio? ʻO ka pilikia nui me Minio, i mea e hana ai kēia mea, pono ia e holo i kahi, a aia kekahi ʻano ʻōnaehana faila, ʻo ia hoʻi, mālama. A eia mākou e hālāwai ai me nā pilikia like me Ceph. ʻO ia, pono e mālama ʻo Minio i kāna mau faila ma kahi. He kikowaena HTTP wale nō ia i kāu mau faila. Eia kekahi, ʻoi aku ka maikaʻi o ka hana ma mua o kā Amazon's S3. Ma mua, ʻaʻole hiki iā ia ke ʻae pono i ka mea hoʻohana. I kēia manawa, e like me kaʻu i ʻike ai, hiki iā ia ke hana i nā bākeke me nā mana ʻokoʻa, akā eia hou, me he mea lā iaʻu ʻo ka pilikia nui, ʻo ia hoʻi, ʻo ka ʻōnaehana mālama lalo ma ka liʻiliʻi.

Pehea e pili ai ka Empty dir i ka hoʻomanaʻo i nā palena? ʻAʻole pili i nā palena ma kekahi ʻano. Aia ia ma ka hoʻomanaʻo o ka mea hoʻokipa, ʻaʻole i ka hoʻomanaʻo o kāu ipu. ʻO ia hoʻi, ʻaʻole ʻike kāu pahu i ka dir kaawale i ka hoʻomanaʻo ma ke ʻano he ʻāpana o kāna hoʻomanaʻo. ʻIke ka mea hoʻokipa i kēia. No laila, ʻae, mai ka manaʻo o nā kubernetes, i ka wā e hoʻomaka ai ʻoe e hoʻohana i kēia, maikaʻi ia e hoʻomaopopo ʻoe ke hoʻolilo nei ʻoe i kahi hapa o kou hoʻomanaʻo ʻana i ka dir. A no laila, e hoʻomaopopo i ka pau ʻana o ka hoʻomanaʻo ʻaʻole wale ma muli o nā noi, akā no ka mea kākau kekahi i kēia mau dirs nele.

ʻO Cloudnativeness

A ʻo ka subtopic hope loa ʻo ia ka Cloudnative. No ke aha e pono ai? Cloudnativeness a pēlā aku.

ʻO ia hoʻi, kēlā mau noi i hiki ke kākau ʻia i mea e hana ai i loko o kahi ʻōnaehana ao hou. Akā, ʻoiaʻiʻo, he ʻano ʻē aʻe ʻo Cloudnative. ʻAʻole kēia he noi wale nō e noʻonoʻo ana i nā koi āpau o kahi ʻōnaehana ao hou, akā ʻike pū nō hoʻi i ka hana ʻana me kēia ʻōnaehana ao hou, e hoʻohana i nā pono a me nā hemahema o ka hana ʻana i kēia mau ao. Mai hele wale a hana i ke ao, akā e hoʻohana i nā pono o ka hana ʻana i ke ao.

Nā koi no ka hoʻomohala ʻana i kahi noi ma Kubernetes

E lawe wale kākou iā Kubernetes i laʻana. Ke holo nei kāu palapala noi ma Kubernetes. Hiki i kāu palapala noi ke hana mau i kahi moʻokāki lawelawe. ʻO ia hoʻi, he moʻokāki no ka ʻae ʻana iā Kubernetes ponoʻī ma kāna kikowaena. Hoʻohui i kekahi mau pono e pono ai mākou ma laila. A hiki iā ʻoe ke komo i nā Kubernetes mai loko mai o kāu noi. He aha kāu e hana ai i kēia ala? No ka laʻana, mai ka palapala noi, e kiʻi i ka ʻikepili e pili ana i kahi o kāu mau noi ʻē aʻe, nā mea like ʻē aʻe i loaʻa, a hui pū kekahi ma luna o nā Kubernetes, inā he pono.

Eia hou, ua loaʻa iā mākou kahi hihia i kēia manawa. Loaʻa iā mākou hoʻokahi mea hoʻoponopono nāna e nānā i ka pila. A i ka wā e ʻike ʻia ai kekahi mau hana hou ma kēia pila, hele ia i Kubernetes - a i loko o Kubernetes hana ia i kahi pod hou. Hāʻawi i kēia pod i kahi hana hou a i loko o ke kāʻei o kēia pod, hana ka pod i ka hana, hoʻouna i kahi pane i ka mea hoʻoponopono ponoʻī, a laila hana ka mea hoʻoponopono i kekahi mea me kēia ʻike. No ka laʻana, hoʻohui ia i kahi waihona. ʻO ia hoʻi, he mea hou kēia o ka holo ʻana o kā mākou noi ma Kubernetes. Hiki iā mākou ke hoʻohana i ka hana Kubernetes i kūkulu ʻia i mea e hoʻonui a hoʻonui i ka hana o kā mākou noi. ʻO ia hoʻi, mai hūnā i kekahi ʻano kilokilo e pili ana i ka hoʻomaka ʻana i kahi noi, pehea e hoʻomaka ai i kahi limahana. Ma Kubernetes, hoʻouna wale ʻoe i kahi noi ma ka app inā kākau ʻia ka noi ma Python.

Pēlā nō inā hele mākou ma waho o Kubernetes. Loaʻa iā mākou kā mākou Kubernetes e holo ana ma kahi - maikaʻi inā i loko o kekahi ʻano ao. Eia hou, hiki iā mākou ke hoʻohana, a ke manaʻoʻiʻo nei au, e hoʻohana i nā mana o ke ao ponoʻī kahi a mākou e holo nei. Mai nā mea haʻahaʻa a ke ao e hāʻawi mai iā mākou. ʻO ke kaulike, ʻo ia hoʻi, hiki iā mākou ke hana i nā mea kaulike ao a hoʻohana iā lākou. He pono pololei kēia o ka mea hiki iā mākou ke hoʻohana. No ka mea, ʻo ke kaulike ʻana o ke ao, ʻo ka mea mua, e wehe wale i ke kuleana mai iā mākou no ke ʻano o ka hana ʻana, pehea e hoʻonohonoho ʻia ai. He mea maʻalahi loa ia, no ka mea hiki i nā Kubernetes maʻamau ke hoʻohui pū me nā ao.

Pela no ka scaling. Hiki i nā Kubernetes maʻamau ke hoʻohui pū me nā mea hoʻolako kapua. ʻIke pehea e hoʻomaopopo ai inā pau ka puʻupuʻu mai nā nodes, ʻo ia hoʻi, ua pau ka wahi node, a laila pono ʻoe e hoʻohui - Na Kubernetes ponoʻī e hoʻohui i nā nodes hou i kāu puʻupuʻu a hoʻomaka e hoʻomaka i nā pods ma luna o lākou. ʻO ia hoʻi, ke hiki mai kāu ukana, hoʻomaka ka nui o nā kapuahi. I ka pau ʻana o nā puʻupuʻu o ka puʻupuʻu no kēia mau pods, hoʻomaka ʻo Kubernetes i nā nodes hou a no laila, hiki ke hoʻonui ʻia ka helu o nā pods. A maʻalahi loa. He manawa kūpono kēia e hoʻonui i ka pūʻulu ma ka lele. ʻAʻole wikiwiki loa, ma ke ʻano ʻaʻole ia he kekona, ʻoi aku ka like me ka minuke i mea e hoʻohui ai i nā nodes hou.

Akā, mai koʻu ʻike, ʻo ia ka mea ʻoluʻolu loa aʻu i ʻike ai. Ke hoʻonui ʻia ka pūʻulu Cloudnative ma muli o ka manawa o ka lā. He lawelawe hope ia i hoʻohana ʻia e ka poʻe ma ke keʻena hope. ʻO ia hoʻi, hele mai lākou e hana ma 9 am, hoʻomaka e hoʻopaʻa inoa i ka ʻōnaehana, a no laila, ʻo ka hui Cloudnative, kahi e holo ai nā mea a pau, hoʻomaka e pehu, e hoʻomaka ana i nā pods hou i hiki i nā mea a pau e hele mai i ka hana ke hana me ka noi. Ke haʻalele lākou i ka hana ma ka hola 8 pm a i ʻole 6 pm, ʻike nā hui Kubernetes ʻaʻohe mea hoʻohana hou i ka noi a hoʻomaka e emi. Hoʻopaʻa ʻia nā mālama kālā a hiki i 30 pakeneka. Ua hana ʻo ia ma Amazon i kēlā manawa; i kēlā manawa ʻaʻohe mea ma Rusia e hiki ke hana maikaʻi.

E haʻi pololei wau iā ʻoe, he 30 pakeneka ka mālama ʻana no ka mea hoʻohana mākou i nā Kubernetes a hoʻohana pono i nā mana o ke ao. I kēia manawa hiki ke hana i kēia ma Rusia. ʻAʻole wau e hoʻolaha i kekahi, ʻoiaʻiʻo, akā e ʻōlelo wale mākou aia nā mea hoʻolako e hiki ke hana i kēia, hāʻawi pololei mai ka pahu me kahi pihi.

Aia kekahi wahi hope aʻu e makemake ai e huki i kou manaʻo. I mea e hiki ai i kāu noi, kāu ʻōnaehana ʻo Cloudnative, he mea kūpono ke hoʻomaka hope e hoʻololi i ke ala i kapa ʻia ʻo Infrastructure as a Code. code E wehewehe i kāu noi, i kāu loina ʻoihana ma ke ʻano code. A e hana pū me ia ma ke ʻano he code, ʻo ia hoʻi, e hoʻāʻo iā ia, e ʻōwili i waho, e mālama iā ia ma git, e hoʻopili iā CICD iā ia.

A ʻo kēia ka mea e ʻae ai iā ʻoe, ʻo ka mea mua, e loaʻa mau ka mana ma luna o kāu ʻoihana, e hoʻomaopopo mau i ke ʻano o ia kūlana. ʻO ka lua, e pale i nā hana lima e hoʻokau hewa. ʻO ke kolu, e hōʻalo wale i ka mea i kapa ʻia ʻo turnover, inā pono ʻoe e hana i nā hana lima like. ʻO ka hā, hiki iā ʻoe ke hoʻihoʻi hou i ka wikiwiki i ka wā o kahi hemahema. Ma Rūsia, i kēlā me kēia manawa aʻu e kamaʻilio ai e pili ana i kēia, aia mau ka nui o ka poʻe e ʻōlelo nei: "ʻAe, maopopo ia, akā aia kāu mau hoʻokokoke, i ka pōkole, ʻaʻohe pono e hoʻoponopono i kekahi mea." Aka, he oiaio. Inā ua haki kekahi mea i kāu ʻoihana, a laila mai ka manaʻo o ka Cloudnative approach a mai ka manaʻo o Infrastructure as a Code, ma mua o ka hoʻoponopono ʻana, e hele i ke kikowaena, e noʻonoʻo ana i ka mea i haki a hoʻoponopono, ʻoi aku ka maʻalahi. e holoi i ke kikowaena a hana hou ia. A e hoʻihoʻi au i kēia mau mea a pau.

Kūkākūkā ʻia kēia mau pilikia a pau ma Nā papa wikiō Kubernetes: Junior, Basic, Mega. Ma ka hahai ʻana i ka loulou hiki iā ʻoe ke hoʻomaʻamaʻa iā ʻoe iho me ka papahana a me nā kūlana. ʻO ka mea maʻalahi hiki iā ʻoe ke haku iā Kubernetes ma ke aʻo ʻana mai ka home a i ʻole hana no 1-2 mau hola i ka lā.

Source: www.habr.com

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