DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

He mea hana maikaʻi ʻo Kubernetes no ka holo ʻana i nā pahu Docker i kahi ʻenehana hana hoʻohui. Eia nō naʻe, aia nā pilikia i hiki ʻole iā Kubernetes ke hoʻoponopono. No ka hoʻouka pinepine ʻana, pono mākou i kahi hoʻonohonoho Blue/Green piha piha i mea e pale ai i ka downtime i ke kaʻina hana, pono hoʻi e mālama i nā noi HTTP waho a hana i nā hoʻoiho SSL. Pono kēia i ka hoʻohui pū ʻana me kahi mea kaulike haʻahaʻa e like me ka ha-proxy. ʻO kekahi paʻakikī ʻē aʻe, ʻo ka hoʻonui ʻana i ka puʻupuʻu Kubernetes iā ia iho i ka wā e holo ana i loko o ke ao, no ka laʻana, ka hoʻohaʻahaʻa ʻana i ka pūpū i ka pō.

ʻOiai ʻaʻohe o Kubernetes i kēia mau hiʻohiʻona ma waho o ka pahu, hāʻawi ia i kahi API hiki iā ʻoe ke hoʻohana e hoʻoponopono i nā pilikia like. Ua hoʻomohala ʻia nā mea hana no ka hoʻolaha ʻana i ka Blue/Green a me ka hoʻonui ʻana i kahi pūʻulu Kubernetes ma ke ʻano he ʻāpana o ka papahana Cloud RTI, i hana ʻia ma muli o ka open-source.

ʻO kēia ʻatikala, kahi kope wikiō, e hōʻike ana iā ʻoe pehea e hoʻonohonoho ai i nā Kubernetes me nā ʻāpana kumu wehe ʻē aʻe e hana i kahi ʻenehana mākaukau hana e ʻae i ka code mai kahi git commit me ka ʻole o ka manawa hoʻomaha.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 1

No laila, i ka manawa e hiki ai iā ʻoe ke komo i kāu mau noi mai ka honua waho, hiki iā ʻoe ke hoʻomaka i ka hoʻonohonoho piha ʻana i ka automation, ʻo ia hoʻi, e lawe mai i ke kahua kahi e hiki ai iā ʻoe ke hana i kahi git commit a e hōʻoia i ka pau ʻana o kēia git commit i ka hana. Ma keʻano maʻamau, i ka wā e hoʻokō ai i kēia mau ʻanuʻu, i ka wā e hoʻokō ai i ka hoʻolaha ʻana, ʻaʻole mākou makemake e hālāwai i ka downtime. No laila, hoʻomaka kekahi automation ma Kubernetes me ka API.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻAʻole ʻo Kubernetes kahi mea hana hiki ke hoʻohana ʻia ma waho o ka pahu. ʻOiaʻiʻo, hiki iā ʻoe ke hana i kēlā, hoʻohana i ka kubectl a pēlā aku, akā naʻe ʻo ka API ka mea hoihoi a pono hoʻi e pili ana i kēia kahua. Ma ka hoʻohana ʻana i ka API ma ke ʻano he mau hana, hiki iā ʻoe ke komo i nā mea āpau āu e makemake ai e hana ma Kubernetes. Hoʻohana pū ʻo kubectl i ka REST API.

ʻO REST kēia, no laila hiki iā ʻoe ke hoʻohana i kekahi ʻōlelo a i ʻole mea hana e hana me kēia API, akā e maʻalahi loa kou ola e nā hale waihona puke maʻamau. Ua kākau kaʻu hui i ʻelua mau hale waihona puke: hoʻokahi no Java/OSGi a hoʻokahi no Go. ʻAʻole hoʻohana pinepine ʻia ka lua, akā i kēlā me kēia hihia, loaʻa iā ʻoe kēia mau mea pono i kāu makemake. He papahana wehe ʻia lākou. Nui nā hale waihona puke no nā ʻōlelo like ʻole, no laila hiki iā ʻoe ke koho i nā mea i kūpono iā ʻoe.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

No laila, ma mua o kou hoʻomaka ʻana i kāu hoʻoili ʻana, pono ʻoe e hōʻoia ʻaʻole e kau ʻia ke kaʻina hana i kekahi downtime. No ka laʻana, ke holo nei kā mākou hui i nā hoʻolaha hana i ka waena o ka lā ke hoʻohana nui nei nā kānaka i nā noi, no laila he mea nui e pale i ka lohi o ke kaʻina hana. I mea e pale aku ai i ka wā haʻahaʻa, hoʻohana ʻia nā ʻano hana 2: ka hoʻonohonoho ʻana i ka uliuli/'ōmaʻomaʻo a i ʻole ka hoʻololi ʻana. I ka hihia hope, inā loaʻa iā ʻoe he 5 replicas o ka noi e holo ana, e hoʻonui hou ʻia lākou ma hope o kekahi. Hana maikaʻi kēia ʻano hana, akā ʻaʻole kūpono inā loaʻa iā ʻoe nā mana like ʻole o ka noi e holo like ana i ka wā o ke kaʻina hana. I kēia hihia, hiki iā ʻoe ke hōʻano hou i ka mea hoʻohana i ka wā e holo ana ka backend i ka mana kahiko, a pau ka hana. No laila, mai ka manaʻo hoʻolālā, paʻakikī loa ka hana ʻana i ia mau kūlana.

ʻO kēia kekahi o nā kumu e makemake ai mākou e hoʻohana i ka waiho ʻana i ka polū/'ōmaʻomaʻo e hoʻokaʻawale i ka hoʻolaha ʻana o kā mākou mau noi. Me kēia ʻano hana, pono ʻoe e hōʻoia i hoʻokahi wale nō mana o ka noi i hana i ka manawa.

ʻO ke ʻano o ka ʻōnaehana hoʻolaha uliuli/'ōmaʻomaʻo me kēia. Loaʻa iā mākou nā kaʻa no kā mākou mau noi ma o ka ha-proxy, e hoʻouna iā ia i ka holo ʻana i nā kope o ka noi o ka mana like.

Ke hana ʻia kahi hoʻolālā hou, hoʻohana mākou i ka Deployer, ka mea i hāʻawi ʻia i nā ʻāpana hou a kau i ka mana hou. ʻO ka hoʻohana ʻana i kahi mana hou o kahi noi, ʻo ia ka mea e "hoʻokiʻekiʻe ʻia" kahi pūʻulu hou o nā replicas, ma hope o ka hoʻokuʻu ʻia ʻana o kēia mau kope o ka mana hou i kahi pod hou. Eia nō naʻe, ʻaʻole ʻike ʻo ha-proxy e pili ana iā lākou a ʻaʻole hoʻi e hoʻokau i nā haʻawina hana iā lākou.

No laila, ʻo ka mea mua, pono e hana i ka nānā hana o nā mana hou o ka nānā olakino e hōʻoia i ka mākaukau o nā replicas e lawelawe i ka ukana.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Pono nā ʻāpana hoʻonohonoho āpau e kākoʻo i kekahi ʻano o ka nānā olakino. Hiki i kēia ke maʻalahi loa i ka helu kelepona HTTP, ke loaʻa iā ʻoe kahi code me ke kūlana 200, a i ʻole kahi hōʻoia hohonu, kahi āu e nānā ai i ka pilina o nā replicas me ka waihona a me nā lawelawe ʻē aʻe, ke kūpaʻa o nā pilina pili honua. , a inā hoʻomaka a hana pono nā mea a pau. Hiki ke paʻakikī kēia kaʻina hana.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ma hope o ka hōʻoia ʻana o ka ʻōnaehana e hana ana nā replicas hou a pau, e hoʻopau ʻo Deployer i ka hoʻonohonoho ʻana a hāʻawi i ka confd kūpono, e hoʻonohonoho hou i ka ha-proxy.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ma hope wale nō e kuhikuhi ʻia ke kaʻa i ka pod me nā kope o ka mana hou, a e nalowale ka pod kahiko.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻAʻole kēia ʻano hana o nā Kubernetes. Ua lōʻihi loa ka manaʻo o ka hoʻolaha ʻana o Blue/green a ua hoʻohana mau ʻo ia i kahi mea kaulike ukana. ʻO ka mea mua, kuhikuhi ʻoe i nā kaʻa a pau i ka mana kahiko o ka noi, a ma hope o ka hoʻopou, hoʻololi ʻoe iā ia i ka mana hou. ʻAʻole hoʻohana ʻia kēia kumumanaʻo i nā Kubernetes wale nō.

I kēia manawa, e hoʻolauna wau iā ʻoe i kahi mea hoʻolaha hou - Deployer, e hana ana i nā loiloi olakino, reconfigures proxies, a pēlā aku. He manaʻo kēia i pili ʻole i ka honua o waho a aia i loko o Kubernetes. E hōʻike wau iā ʻoe pehea e hiki ai iā ʻoe ke hana i kāu manaʻo Deployer me ka hoʻohana ʻana i nā mea hana open-source.

No laila, ʻo ka mea mua a Deployer e hana ai i kahi mea hoʻoponopono hoʻopiʻi RC me ka hoʻohana ʻana i ka Kubernetes API. Hoʻokumu kēia API i nā pods a me nā lawelawe no ka hoʻouka hou ʻana, ʻo ia hoʻi, hana ia i kahi hui hou loa no kā mākou mau noi. Ke manaʻoʻiʻo ʻo RC ua hoʻomaka nā replicas, e hana ia i kahi nānā olakino i kā lākou hana. No ka hana ʻana i kēia, hoʻohana ʻo Deployer i ke kauoha GET / olakino. Holo ia i nā ʻāpana scan kūpono a nānā i nā mea āpau e kākoʻo i ka hana o ka pūʻulu.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ma hope o ka hōʻike ʻana o nā pods āpau i ko lākou olakino, hana ʻo Deployer i kahi mea hoʻonohonoho hou - etcd puʻupuʻu puʻupuʻu, i hoʻohana ʻia e Kubernetes i loko, me ka mālama ʻana i ka hoʻonohonoho hoʻonohonoho hoʻohālikelike. Kākau mākou i ka ʻikepili i etcd, a me kahi mea hana liʻiliʻi i kapa ʻia ʻo confd monitors etcd no ka ʻikepili hou.

Inā ʻike ʻo ia i nā loli i ka hoʻonohonoho mua, hana ia i kahi faila hoʻonohonoho hou a hoʻololi iā ia i ha-proxy. I kēia hihia, hoʻomaka hou ka ha-proxy me ka nalowale ʻole o nā pilina a hoʻopuka i ka ukana i nā lawelawe hou e hiki ai i ka mana hou o kā mākou mau noi ke hana.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

E like me kāu e ʻike ai, ʻoiai ka nui o nā ʻāpana, ʻaʻohe mea paʻakikī ma aneʻi. Pono ʻoe e uku hou aku i ka API a me etcd. Makemake wau e haʻi aku iā ʻoe e pili ana i ka mea hoʻopuka open-source a mākou e hoʻohana ai - Amdatu Kubernetes Deployer.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

He mea hana ia no ka hoʻonohonoho ʻana i nā hoʻolaha Kubernetes a loaʻa iā ia nā hiʻohiʻona aʻe:

  • Hoʻolaha ʻia ʻo Blue/Gama;
  • ka hoʻonohonoho ʻana i kahi mea hoʻohālikelike ukana waho;
  • hoʻolālā wehewehe wehewehe;
  • mālama i ka hoʻolaha maoli;
  • ka nānā ʻana i ka hana o nā nānā olakino i ka wā o ka hoʻolalelale ʻana;
  • ka hoʻokō ʻana i nā mea hoʻololi kaiapuni i loko o nā pods.

Kūkulu ʻia kēia Deployer ma luna o ka Kubernetes API a hāʻawi i kahi REST API no ka hoʻokele ʻana i nā lima a me nā hoʻoili ʻana, a me kahi Websocket API no ka hoʻoheheʻe ʻana i nā log i ka wā o ke kaʻina hana.

Hoʻokomo ia i ka ʻikepili hoʻonohonoho hoʻonohonoho haʻahaʻa i loko o etcd, no laila ʻaʻole pono ʻoe e hoʻohana i ka ha-proxy me ke kākoʻo o waho o ka pahu, akā e hoʻohana maʻalahi i kāu faila hoʻonohonoho hoʻonohonoho haʻahaʻa. Ua kākau ʻia ʻo Amdatu Deployer ma Go, e like me Kubernetes ponoʻī, a ua laikini ʻia e Apache.

Ma mua o koʻu hoʻomaka ʻana i ka hoʻohana ʻana i kēia mana o ka mea hoʻohana, ua hoʻohana wau i ka descriptor deployment aʻe, e kuhikuhi ana i nā ʻāpana aʻu e pono ai.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻO kekahi o nā ʻāpana koʻikoʻi o kēia code e hiki ai i ka hae "useHealthCheck". Pono mākou e wehewehe pono e hana ʻia kahi nānā sanity i ka wā o ke kaʻina hana. Hiki ke hoʻopau ʻia kēia hoʻonohonoho i ka wā e hoʻohana ai ka hoʻolaha ʻana i nā pahu ʻaoʻao ʻekolu ʻaʻole pono e hōʻoia. Hōʻike pū kēia mea wehewehe i ka helu o nā kope a me ka URL mua e pono ai ka ha-proxy. Ma ka hopena, aia ka hae kiko'ī pod "podspec", e kāhea iā Kubernetes no ka ʻike e pili ana i ka hoʻonohonoho awa, kiʻi, a pēlā aku. He mea wehewehe JSON maʻalahi kēia.

ʻO kekahi mea hana ʻē aʻe o ka papahana Amdatu open-source ʻo Deploymentctl. Loaʻa iā ia kahi UI no ka hoʻonohonoho ʻana i ka hoʻonohonoho ʻana, mālama i ka mōʻaukala hoʻolaha, a loaʻa nā webhooks no ka hoʻihoʻi ʻana mai nā mea hoʻohana a me nā mea hoʻomohala. ʻAʻole paha ʻoe e hoʻohana i ka UI ʻoiai ʻo Amdatu Deployer ponoʻī he REST API, akā hiki i kēia interface ke maʻalahi i ka hoʻopili ʻana iā ʻoe me ka ʻole o kekahi API. Ua kākau ʻia ʻo Deploymentctl ma OSGi/Vertx me ka hoʻohana ʻana i ka Angular 2.

E hōʻike wau i kēia ma luna ma ka pale me ka hoʻopaʻa ʻana i hoʻopaʻa ʻia no laila ʻaʻole pono ʻoe e kali. E hoʻolālā mākou i kahi polokalamu Go maʻalahi. Mai hopohopo inā ʻaʻole ʻoe i hoʻāʻo iā Go ma mua, he noi maʻalahi loa ia e hiki ai iā ʻoe ke noʻonoʻo.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Eia mākou e hana nei i kahi kikowaena HTTP e pane wale i / olakino, no laila ke hoʻāʻo nei kēia noi i ka nānā olakino a ʻaʻohe mea ʻē aʻe. Inā hala ka māka, hoʻohana ʻia ka ʻōnaehana JSON i hōʻike ʻia ma lalo nei. Loaʻa iā ia ka mana o ka noi e kau ʻia e ka mea hoʻopuka, ka memo āu e ʻike ai ma luna o ka faila, a me ke ʻano ʻikepili boolean - inā paha e hana ana kā mākou noi a ʻaʻole paha.

Ua hoʻopunipuni liʻiliʻi wau me ka laina hope loa, no ka mea, ua kau wau i kahi waiwai boolean paʻa ma ka piko o ka faila, i ka wā e hiki mai ana e kōkua iaʻu e kau i kahi noi "maikaʻi ʻole". E hana mākou i kēia ma hope.

No laila e hoʻomaka kākou. ʻO ka mea mua, nānā mākou no ka hiki ʻana mai o nā pods holo e hoʻohana ana i ke kauoha ~ kubectl loaʻa nā pods a, ma muli o ka loaʻa ʻole o kahi pane mai ka URL frontend, ʻike mākou ʻaʻole i hana ʻia i kēia manawa.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ma ka ʻaoʻao aʻe, ʻike ʻoe i ka interface Deploymentctl aʻu i ʻōlelo ai, kahi i hoʻonohonoho ʻia ai nā ʻāpana hoʻonohonoho: namespace, inoa noi, version deployment, helu o nā replicas, URL mua-hope, inoa pahu, kiʻi, nā palena waiwai, helu port no ka nānā olakino, etc. He mea koʻikoʻi nā palena waiwai, no ka mea e ʻae lākou iā ʻoe e hoʻohana i ka nui o nā lako lako. Maanei hiki iā ʻoe ke nānā i ka log Deployment.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Inā ʻoe e hana hou i ke kauoha ~ kubectl loaʻa i nā pods, hiki iā ʻoe ke ʻike i ka "freezes" o ka ʻōnaehana no 20 kekona, kahi i hoʻonohonoho hou ʻia ai ka ha-proxy. Ma hope o kēia, hoʻomaka ka pod, a ʻike ʻia kā mākou kope i ka log deployment.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ua ʻoki au i ka kali 20 kekona mai ka wikiō, a i kēia manawa hiki iā ʻoe ke ʻike ma ka pale ua kau ʻia ka mana mua o ka noi. Ua hana ʻia kēia me ka UI wale nō.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

I kēia manawa e hoʻāʻo kākou i ka mana lua. No ka hana ʻana i kēia, hoʻololi wau i ka memo o ka noi mai "Aloha, Kubernetes!" ma "Aloha, Deployer!", Hoʻokumu ka ʻōnaehana i kēia kiʻi a kau iā ia i ka papa inoa Docker, a laila kaomi wale mākou i ka pihi "Deploy" i ka puka makani Deploymentctl. I kēia hihia, hoʻokuʻu ʻia ka log deployment e like me ka mea i hana ʻia i ka wā e kau ana i ka mana mua o ka noi.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻO ke kauoha ~ kubectl get pods e hōʻike ana aia i kēia manawa he 2 mau mana o ka noi e holo nei, akā hōʻike ka frontend ke holo nei mākou i ka mana 1.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Ke kali nei ka mea kaulike hoʻoili no ka hoʻopau ʻana i ka nānā olakino ma mua o ka hoʻihoʻi ʻana i ke kaʻa i ka mana hou. Ma hope o 20 kekona, hoʻololi mākou i ka curl a ʻike iā mākou i kēia manawa ua loaʻa iā mākou ka mana 2 o ka noi i kau ʻia, a ua holoi ʻia ka mea mua.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻO kēia ka hoʻolaha ʻana o kahi noi "olaola". E ʻike kākou i ka hopena inā no kahi mana hou o ka noi ke hoʻololi au i ka ʻāpana Healthy mai ka ʻoiaʻiʻo i ka wahaheʻe, ʻo ia hoʻi, ke hoʻāʻo nei au e kau i kahi noi pono ʻole i hāʻule i ka nānā olakino. Hiki i kēia ke hana inā i hana ʻia kekahi mau hewa hoʻonohonoho i ka noi ma ka pae hoʻomohala, a ua hoʻouna ʻia i ka hana ma kēia ʻano.

E like me kāu e ʻike ai, hele ka deployment i nā ʻanuʻu āpau ma luna a ~kubectl loaʻa nā pods e hōʻike ana e holo ana nā pods ʻelua. Akā ʻaʻole like me ka hoʻolaha mua ʻana, hōʻike ka log i ke kūlana manawa. ʻO ia, ma muli o ka hāʻule ʻole o ka nānā olakino, ʻaʻole hiki ke kau ʻia ka mana hou o ka noi. ʻO ka hopena, ʻike ʻoe ua hoʻi hou ka ʻōnaehana i ka hoʻohana ʻana i ka mana kahiko o ka noi, a ua wehe wale ʻia ka mana hou.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻO ka mea maikaʻi e pili ana i kēia, ʻoiai inā loaʻa iā ʻoe ka nui o nā noi like ʻole e hele mai ana i ka noi, ʻaʻole lākou e ʻike i ka downtime i ka wā e hoʻokō ai i ke kaʻina hana. Inā ʻoe e hoʻāʻo i kēia noi me ka hoʻohana ʻana i ka framework Gatling, nāna e hoʻouna iā ia i nā noi he nui e like me ka hiki, a laila ʻaʻole e waiho ʻia kekahi o kēia mau noi. ʻO ia hoʻi, ʻaʻole e ʻike kā mākou mea hoʻohana i nā mana hou i ka manawa maoli. Inā hāʻule, e hoʻomau ka hana ma ka mana kahiko; inā kūleʻa, e hoʻololi nā mea hoʻohana i ka mana hou.

Hoʻokahi wale nō mea hiki ke hāʻule - inā kūleʻa ka nānā olakino, akā hāʻule ka noi i ka wā e hoʻopili ʻia ai ka haʻahaʻa hana, ʻo ia hoʻi, hiki ke hāʻule wale ma hope o ka hoʻopau ʻana. I kēia hihia, pono ʻoe e ʻōwili lima i ka mana kahiko. No laila, ua nānā mākou pehea e hoʻohana ai i nā Kubernetes me nā mea hana open-source i hoʻolālā ʻia no ia. E ʻoi aku ka maʻalahi o ke kaʻina hana inā kūkulu ʻoe i kēia mau mea hana i kāu Build/Deploy pipelines. I ka manawa like, e hoʻomaka i ka hoʻolaha ʻana, hiki iā ʻoe ke hoʻohana i ka mea hoʻohana a i ʻole e hoʻopiha piha i kēia kaʻina hana ma ka hoʻohana ʻana, no ka laʻana, hoʻohiki i ka haku.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Na kā mākou Build Server e hana i kahi kiʻi Docker, e hoʻokuʻu iā ia i Docker Hub a i ʻole nā ​​​​mea hoʻopaʻa inoa āu e hoʻohana ai. Kākoʻo ʻo Docker Hub i ka webhook, no laila hiki iā mākou ke hoʻomaka i ka hoʻokele mamao ma o Deployer ma ke ala i hōʻike ʻia ma luna. Ma kēia ala hiki iā ʻoe ke hoʻomaʻamaʻa piha i ka hoʻolaha ʻana o kāu noi i ka hana hiki.

E neʻe kākou i ke kumuhana aʻe - ka hoʻonui ʻana i ka pūʻulu Kubernetes. E hoʻomaopopo he kauoha scaling ke kauoha kubectl. Me ke kōkua hou aʻe, hiki iā mākou ke hoʻonui maʻalahi i ka helu o nā replicas i kā mākou pūʻulu e kū nei. Eia naʻe, ma ka hoʻomaʻamaʻa, makemake mākou e hoʻonui i ka helu o nā nodes ma mua o nā pods.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

I ka manawa like, i nā hola hana pono ʻoe e hoʻonui, a i ka pō, e hōʻemi i ke kumukūʻai o nā lawelawe Amazon, pono paha ʻoe e hōʻemi i ka helu o nā manawa noi e holo ana. ʻAʻole kēia manaʻo e lawa ka hoʻonui wale ʻana i ka helu o nā pods, no ka mea inā ʻaʻohe o nā nodes, pono ʻoe e uku iā Amazon no ia. ʻO ia hoʻi, me ka scaling i nā pods, pono ʻoe e hoʻonui i ka helu o nā mīkini i hoʻohana ʻia.

He mea paʻakikī kēia no ka mea inā mākou e hoʻohana iā Amazon a i ʻole nā ​​​​lawelawe ʻē aʻe, ʻaʻole ʻike ʻo Kubernetes i ka nui o nā mīkini i hoʻohana ʻia. Loaʻa iā ia kahi mea hana e hiki ai iā ʻoe ke hoʻonui i ka ʻōnaehana ma ka pae node.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

No laila pono mākou e mālama i nā nodes a me nā pods. Hiki iā mākou ke hoʻonui i ka hoʻomaka ʻana o nā node hou me ka hoʻohana ʻana i ka AWS API a me nā mīkini hui Scaling e hoʻonohonoho i ka helu o nā node limahana Kubernetes. Hiki iā ʻoe ke hoʻohana i ka cloud-init a i ʻole kahi palapala like e hoʻopaʻa inoa i nā nodes i ka hui Kubernetes.

Hoʻomaka ka mīkini hou i ka hui Scaling, hoʻomaka iā ia iho ma ke ʻano he node, hoʻopaʻa inoa i ka papa inoa o ka haku a hoʻomaka e hana. Ma hope o kēia, hiki iā ʻoe ke hoʻonui i ka helu o nā replicas no ka hoʻohana ʻana i nā nodes i loaʻa. Pono ka hoʻoikaika ʻana i ka hoʻohaʻahaʻa ʻana, no ka mea pono ʻoe e hōʻoia ʻaʻole e alakaʻi ʻia kēlā ʻano hana i ka luku ʻana i nā noi e holo nei ma hope o ka hoʻopau ʻana i nā mīkini "pono ​​ʻole". No ka pale ʻana i kēlā ʻano hiʻohiʻona, pono ʻoe e hoʻonohonoho i nā nodes i ke kūlana "unschedulable". ʻO ia ke ʻano, e haʻalele ka mea hoʻonohonoho paʻamau i kēia mau nodes i ka wā e hoʻonohonoho ai i nā pods DaemonSet. ʻAʻole e holoi ka mea hoʻonohonoho i kekahi mea mai kēia mau kikowaena, akā ʻaʻole e hoʻokuʻu i nā pahu hou ma laila. ʻO ka hana aʻe, ʻo ia ka hoʻokuʻu ʻana i ka node wai, ʻo ia hoʻi, e hoʻololi i nā pods e holo ana mai ia mea i kahi mīkini ʻē aʻe, a i ʻole nā ​​​​nodes ʻē aʻe i lawa ka mana no kēia. Ke hōʻoia ʻoe ʻaʻohe pahu ma kēia mau nodes, hiki iā ʻoe ke wehe iā lākou mai Kubernetes. Ma hope o kēia, e pau lākou i ka noho ʻana no Kubernetes. A laila, pono ʻoe e hoʻohana i ka AWS API e hoʻopau i nā nodes a i ʻole nā ​​mīkini pono ʻole.
Hiki iā ʻoe ke hoʻohana iā Amdatu Scalerd, kahi hāmeʻa scaling open-source like me ka AWS API. Hāʻawi ia i kahi CLI e hoʻohui a wehe paha i nā nodes i kahi hui. ʻO kāna hiʻohiʻona hoihoi ka hiki ke hoʻonohonoho i ka mea hoʻonohonoho me ka hoʻohana ʻana i ka faila json e hiki mai ana.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

ʻO ke code i hōʻike ʻia e hōʻemi ana i ka hikina puʻupuʻu i ka hapalua i ka wā pō. Hoʻonohonoho ia i ka helu o nā replicas i loaʻa a me ka mana makemake o ka hui Amazon. ʻO ka hoʻohana ʻana i kēia mea hoʻonohonoho e hoʻemi koke i ka helu o nā nodes i ka pō a hoʻonui iā lākou i ke kakahiaka, e mālama i ke kumukūʻai o ka hoʻohana ʻana i nā nodes mai kahi lawelawe kapuaʻi e like me Amazon. ʻAʻole i kūkulu ʻia kēia hiʻohiʻona i nā Kubernetes, akā me ka hoʻohana ʻana i ka Scalerd e ʻae iā ʻoe e hoʻonui i kēia paepae e like me kou makemake.

Makemake wau e kuhikuhi i ka nui o ka poʻe e haʻi mai iaʻu, "Maikaʻi a maikaʻi kēlā, akā pehea kaʻu waihona, ʻo ia ka mea maʻamau?" Pehea e hiki ai iā ʻoe ke holo i kahi mea e like me kēia i loko o kahi ʻano ikaika e like me Kubernetes? I koʻu manaʻo, ʻaʻole pono ʻoe e hana i kēia, ʻaʻole pono ʻoe e hoʻāʻo e holo i kahi waihona ʻikepili ma Kubernetes. Hiki i kēia ke ʻenehana, a aia nā kumu aʻo ma ka Pūnaewele e pili ana i kēia kumuhana, akā e hoʻopiʻi nui ia i kou ola.

ʻAe, aia kahi manaʻo o nā hale kūʻai hoʻomau ma Kubernetes, a hiki iā ʻoe ke hoʻāʻo e holo i nā hale kūʻai ʻikepili e like me Mongo a i ʻole MySQL, akā he hana koʻikoʻi kēia. ʻO kēia ma muli o ke kākoʻo piha ʻole o nā waihona ʻikepili i ka launa pū ʻana me kahi kaiapuni ikaika. Pono ka hapa nui o nā ʻikepili i ka hoʻonohonoho koʻikoʻi, me ka hoʻonohonoho manual o ka hui, ʻaʻole makemake i ka autoscaling a me nā mea like ʻole.
No laila, ʻaʻole pono ʻoe e paʻakikī i kou ola ma ka hoʻāʻo ʻana e holo i kahi waihona ʻikepili ma Kubernetes. E hoʻonohonoho i kā lākou hana ma ke ʻano kuʻuna me ka hoʻohana ʻana i nā lawelawe maʻamau a hāʻawi wale iā Kubernetes me ka hiki ke hoʻohana iā lākou.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

No ka hoʻopau ʻana i ke kumuhana, makemake wau e hoʻolauna iā ʻoe i ka Cloud RTI platform e pili ana iā Kubernetes, kahi e hana nei kaʻu hui. Hāʻawi ia i ka logging kikowaena, ka noi a me ka nānā ʻana i ka cluster, a me nā hiʻohiʻona pono ʻē aʻe e hiki mai ana. Hoʻohana ia i nā mea hana open-source e like me Grafana e hōʻike i ka nānā ʻana.

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

DEVOXX UK. Nā Kubernetes i ka hana: Blue/Green deployment, autoscaling and deployment automation. Mahele 2

Aia kekahi nīnau e pili ana i ke kumu e hoʻohana ai i ka ha-proxy load balancer me Kubernetes. Nīnau maikaʻi no ka mea aia i kēia manawa he 2 pae o ka hoʻopalike ʻana. Noho mau nā lawelawe Kubernetes ma nā helu IP virtual. ʻAʻole hiki iā ʻoe ke hoʻohana iā lākou no nā awa ma nā mīkini hoʻokipa waho no ka mea inā hoʻonui ʻo Amazon i kāna host cloud, e loli ka helu. ʻO ia ke kumu a mākou e kau ai i ka ha-proxy i mua o nā lawelawe - e hana i kahi hoʻolālā paʻa no ka hele ʻana e kamaʻilio maʻalahi me Kubernetes.

ʻO kahi nīnau maikaʻi ʻē aʻe pehea e hiki ai iā ʻoe ke mālama i nā loli schema database i ka wā e hana ana i ka hoʻolālā uliuli/'ōmaʻomaʻo? ʻO ka ʻoiaʻiʻo, ʻaʻole pili i ka hoʻohana ʻana iā Kubernetes, he hana paʻakikī ka hoʻololi ʻana i ka schema database. Pono ʻoe e hōʻoia i ka pili ʻana o ka schema kahiko a me ka hou, a laila hiki iā ʻoe ke hōʻano hou i ka waihona a laila hoʻololi i nā noi iā lākou iho. Hiki iā ʻoe ke hoʻololi wela i ka waihona a laila hoʻonui i nā noi. ʻIke au i ka poʻe i hoʻopaʻa i kahi pūʻulu waihona waihona hou loa me kahi schema hou, he koho kēia inā loaʻa iā ʻoe kahi waihona schemeless e like me Mongo, akā ʻaʻole ia he hana maʻalahi. Inā ʻaʻohe āu nīnau hou, mahalo no kou nānā ʻana!

Kekahi mau hoʻolaha 🙂

Mahalo no kou noho pū ʻana me mākou. Makemake ʻoe i kā mākou ʻatikala? Makemake ʻoe e ʻike i nā mea hoihoi hou aʻe? E kākoʻo iā mākou ma ke kau ʻana i kahi kauoha a i ʻole ka ʻōlelo ʻana i nā hoaaloha, cloud VPS no nā mea hoʻomohala mai $4.99, he analogue kū hoʻokahi o nā kikowaena hoʻokomo-level, i hana ʻia e mākou no ʻoe: ʻO ka ʻoiaʻiʻo holoʻokoʻa e pili ana iā VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai $ 19 a pehea e kaʻana like ai i kahi kikowaena? (loaʻa me RAID1 a me RAID10, a hiki i 24 cores a hiki i 40GB DDR4).

ʻO Dell R730xd 2 mau manawa maʻalahi ma Equinix Tier IV kikowaena data ma Amsterdam? Eia wale nō 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai $199 ma Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai $99! Heluhelu e pili ana Pehea e kūkulu ai i ka ʻoihana ʻoihana. papa me ka hoʻohana 'ana o Dell R730xd E5-2650 v4 kikowaena waiwai 9000 euros no ka peni?

Source: www.habr.com

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