Kubernetes: kumu wehe vs. mea kūʻai aku

Aloha ʻoe, ʻo Dmitry Krasnov koʻu inoa. ʻOi aku ma mua o ʻelima mau makahiki aʻu e lawelawe nei i nā pūʻulu Kubernetes a me ke kūkulu ʻana i nā hale hana microservice paʻakikī. I ka hoʻomaka ʻana o kēia makahiki, ua hoʻomaka mākou i kahi lawelawe no ka mālama ʻana i nā pūʻulu Kubernetes e pili ana i ka Containerum. Ma ka lawe ʻana i kēia manawa, e haʻi aku wau iā ʻoe i ke ʻano o Kubernetes a pehea ka ʻokoʻa o ka hoʻohui ʻana me kahi mea kūʻai aku mai ka open source.

E hoʻomaka me, he aha Kubernetes. He ʻōnaehana kēia no ka hoʻokele ʻana i nā ipu ma kahi nui o nā pūʻali. Mai ka Helene, ma ke ala, ua unuhi ʻia ʻo "pilot" a i ʻole "helmsman." Hoʻokumu mua ʻia e Google a laila hāʻawi ʻia ma ke ʻano he haʻawina ʻenehana i ka Cloud Native Computing Foundation, he hui waiwai ʻole o ka honua e hui pū ana i nā mea hoʻomohala koʻikoʻi o ka honua, nā mea hoʻohana hope a me nā mea hoʻolako ʻenehana pahu.

Kubernetes: kumu wehe vs. mea kūʻai aku

E mālama i ka nui o nā pahu

I kēia manawa e noʻonoʻo kākou i ke ʻano o kēia mau ipu. He noi kēia me kona kaiapuni holoʻokoʻa - ʻo ka nui o nā hale waihona puke kahi e hilinaʻi ai ka papahana. Hoʻopiliʻia kēia mau mea a pau i loko o nā waihona a hōʻikeʻia ma keʻano o kahi kiʻi e hiki ke holo me ka nānāʻole i ka'ōnaehana hana, ho'āʻo aʻoi aku. Akā aia kahi pilikia - paʻakikī loa ka mālama ʻana i nā ipu ma ka nui o nā mea hoʻokipa. ʻO ia ke kumu i hana ʻia ai ʻo Kubernetes.

Hōʻike ke kiʻi pahu i kahi noi me kona mau hilinaʻi. Aia ka palapala noi, kona mau hilinaʻi, a me ke kiʻi ʻōnaehana faila OS ma nā ʻāpana like ʻole o ke kiʻi, i kapa ʻia nā papa. Hiki ke hoʻohana hou ʻia nā papa no nā pahu like ʻole. No ka laʻana, hiki i nā noi āpau i kahi hui ke hoʻohana i ka papa base Ubuntu. I ka holo ʻana i nā ipu, ʻaʻohe pono e mālama i nā kope he nui o kahi papa kumu hoʻokahi ma ka host. ʻAe kēia iā ʻoe e hoʻopaʻa i nā kiʻi a me ka lawe ʻana.

Ke makemake mākou e holo i kahi noi mai kahi pahu, hoʻopaʻa ʻia nā papa e pono ai kekahi i kekahi a hoʻokumu ʻia kahi ʻōnaehana file overlay. Hoʻonoho ʻia kahi papa hoʻopaʻa leo ma luna, kahi e wehe ʻia ke kū ka ipu. Hōʻoia kēia i ka wā e holo ai ka pahu, e loaʻa mau i ka noi ke kaiapuni like, ʻaʻole hiki ke hoʻololi. Hōʻoia kēia i ka reproducibility o ke kaiapuni ma nā OS hoʻokipa like ʻole. Inā ʻo Ubuntu a i ʻole CentOS, e like mau ke kaiapuni. Eia kekahi, hoʻokaʻawale ʻia ka pahu mai ka mea hoʻokipa me ka hoʻohana ʻana i nā mīkini i kūkulu ʻia i loko o ka kernel Linux. ʻAʻole ʻike nā noi i loko o kahi pahu i nā faila, nā kaʻina hana o ka host a me nā ipu kokoke. Hāʻawi kēia hoʻokaʻawale ʻana i nā noi mai ka host OS i kahi papa o ka palekana.

Nui nā mea hana i loaʻa no ka mālama ʻana i nā ipu ma kahi hoʻokipa. ʻO ka mea kaulana loa o lākou ʻo Docker. Hāʻawi ia iā ʻoe e hāʻawi i ke ola holoʻokoʻa o nā ipu. Eia naʻe, hana wale ia ma kahi hoʻokipa. Inā pono ʻoe e hoʻokele i nā ipu ma waena o nā pūʻali lehulehu, hiki iā Docker ke hana i ke ola Gehena no nā ʻenekinia. ʻO ia ke kumu i hana ʻia ai ʻo Kubernetes.

ʻO ke koi no Kubernetes ma muli o ka hiki ke hoʻokele i nā pūʻulu o nā ipu ma nā pūʻali lehulehu e like me ke ʻano o ka hui hoʻokahi. Hāʻawi ka kaulana o ka ʻōnaehana i ka manawa e kūkulu ai i nā DevOps a i ʻole Development Operations, kahi i hoʻohana ʻia ai ʻo Kubernetes e holo i nā kaʻina hana o kēia DevOps.

Kubernetes: kumu wehe vs. mea kūʻai aku

Kiʻi 1. Hōʻike kikoʻī o ka hana ʻana o Kubernetes

ʻOmomi piha

ʻO DevOps ke kumu o ka automation o ke kaʻina hana. ʻO ka ʻōlelo maʻamau, kākau nā mea hoʻomohala i nā code i hoʻouka ʻia i ka waihona. A laila hiki ke hōʻiliʻili koke ʻia kēia code i loko o kahi pahu me nā hale waihona puke a pau, hoʻāʻo ʻia a "roll out" i ka pae aʻe - Stging, a laila koke i Production.

Me nā Kubernetes, ʻae ʻo DevOps iā ʻoe e hoʻokaʻawale i kēia kaʻina hana i hiki ʻole ke komo ʻole mai nā mea hoʻomohala. Ma muli o kēia, ʻoi aku ka wikiwiki o ke kūkulu ʻana, no ka mea ʻaʻole pono ka mea hoʻomohala e hana i kēia ma kāna kamepiula - kākau wale ʻo ia i kahi ʻāpana code, hoʻokuʻu i ke code i ka waihona, a laila hoʻomaka ka pipeline, hiki ke komo i ke kaʻina. ke kūkulu ʻana, ka hoʻāʻo ʻana, a me ka ʻōwili ʻana. A hiki kēia i kēlā me kēia hana, no laila e hoʻomau mau ka hoʻāʻo.

I ka manawa like, me ka hoʻohana ʻana i kahi pahu e hiki ai iā ʻoe ke hōʻoia e hoʻokuʻu ʻia ke kaiapuni holoʻokoʻa o kēia papahana i ka hana ma ke ʻano i hoʻāʻo ʻia ai. ʻO ia hoʻi, ʻaʻohe pilikia e like me "aia kekahi mau mana i ka hoʻāʻo, nā mea ʻē aʻe i ka hana ʻana, akā i ka wā i hoʻokomo ai mākou iā lākou, hāʻule nā ​​​​mea āpau." A mai kēia lā ke ʻano nei mākou i ka hoʻolālā microservice, inā ma kahi o kahi noi nui he mau haneli o nā mea liʻiliʻi, i mea e hoʻokele lima ai iā lākou, e koi ʻia kahi limahana nui o nā limahana. ʻO ia ke kumu e hoʻohana ai mākou i nā Kubernetes.

Pono, pono, pono


Inā mākou e kamaʻilio e pili ana i nā pono o Kubernetes ma ke ʻano he kahua, a laila loaʻa iā ia nā pōmaikaʻi nui mai ka manaʻo o ka hoʻokele ʻana i kahi hoʻolālā microservice.

  • Ka mālama ʻana i nā kope he nui. ʻO ka mea nui ka mālama ʻana i nā ipu ma waena o nā pūʻali lehulehu. ʻO ka mea nui, e hoʻokele i nā replicas noi he nui i loko o nā pahu ma ke ʻano hoʻokahi. Mahalo i kēia, ʻaʻole hopohopo nā ʻenekini i kēlā me kēia pahu. Inā hāʻule kekahi o nā ipu, ʻike ʻo Kubernetes i kēia a hoʻomaka hou.
  • Pūnaehana hui. Loaʻa iā Kubernetes kahi pūnaewele hui pū me kona wahi kikoʻī ponoʻī. Mahalo i kēia, loaʻa i kēlā me kēia pod kona wahi ponoʻī. Hoʻomaopopo ʻia ka subpod ʻo ia ka liʻiliʻi liʻiliʻi o ka ʻāpana o kahi hui kahi e hoʻokuʻu pololei ʻia ai nā ipu. Eia kekahi, he hana ko Kubernetes e hoʻohui i kahi mea kaulike ukana a me Service Discovery. ʻAe kēia iā ʻoe e kāpae i ka hoʻokele IP address manual a hāʻawi i kēia hana iā Kubernetes. A ʻo nā loiloi olakino maʻalahi e kōkua i ka ʻike ʻana i nā pilikia a hoʻohuli hou i nā kaʻa i nā pods hana.
  • Hoʻoponopono hoʻonohonoho. Ke hoʻokele nei i ka nui o nā noi, lilo ia i mea paʻakikī i ka hoʻokele ʻana i ka hoʻonohonoho noi. No kēia kumu, loaʻa iā Kubernetes nā kumuwaiwai ConfigMap kūikawā. Hāʻawi lākou iā ʻoe e mālama i nā kikowaena kikowaena a hōʻike iā lākou i nā pods i ka wā e holo ana i nā noi. Hāʻawi kēia ʻenehana iā mākou e hōʻoia i ka kūlike o ka hoʻonohonoho ʻana ma ka liʻiliʻi he ʻumi a i ʻole hoʻokahi haneli replika noi.
  • Nā Volume Hoʻomau. ʻAʻole hiki ke hoʻololi ʻia nā pahu a ke pani ʻia ka ipu, e luku ʻia nā ʻikepili a pau i kākau ʻia i ka ʻōnaehana faila. Akā mālama kekahi mau polokalamu i ka ʻikepili ma ka disk. No ka hoʻoponopono ʻana i kēia pilikia, loaʻa iā Kubernetes kahi hana hoʻokele disk storage - Persistent Volumes. Ke hoʻohana nei kēia mīkini i kahi waiho waho no ka ʻikepili a hiki ke hoʻololi i ka waiho mau, poloka a faila paha, i loko o nā pahu. Hāʻawi kēia hāʻina iā ʻoe e mālama i ka ʻikepili i kahi kaʻawale mai nā limahana, e mālama iā lākou inā e haki kēia mau limahana.
  • Mea Kaulike. ʻOiai ma Kubernetes mākou e hoʻokele i nā mea abstract e like me Deployment, StatefulSet, etc., i ka hopena, holo nā ipu ma ke ʻano maʻamau nā mīkini uila A i ʻole nā ​​kikowaena metala ʻōlohelohe. ʻAʻole lākou hemolele a hiki ke hāʻule i kēlā me kēia manawa. E ʻike ʻo Kubernetes i kēia a hoʻohuli i ke kaʻa kūloko i nā kope ʻē aʻe. Akā pehea e pili ana i ke kaʻa kūwaho? ʻO ke kuhikuhi wale ʻana i ke kaʻa i hoʻokahi limahana ʻo ia hoʻi e lilo ka lawelawe i mea hiki ʻole ke loaʻa inā hāʻule. No ka hoʻoponopono ʻana i kēia pilikia, hāʻawi ʻo Kubernetes i nā lawelawe e like me Load Balancer. Ua hoʻolālā ʻia lākou e hoʻonohonoho ponoʻī i kahi mea kaulike ukana ao waho no nā limahana āpau i loko o ka hui. Hoʻokele kēia mea kaulike ukana waho i ke kaʻa o waho i nā limahana a nānā i ko lākou kūlana. Inā loaʻa ʻole kekahi a ʻoi aku paha nā limahana, e hoʻohuli ʻia ke kaʻa i nā poʻe ʻē aʻe. Hiki iā ʻoe ke hana i nā lawelawe i loaʻa nui me ka hoʻohana ʻana iā Kubernetes.

ʻOi aku ka maikaʻi o nā Kubernetes i ka wā e holo ana i nā hale hana microservice. Hiki ke hoʻokō i ka ʻōnaehana i loko o ka hoʻolālā kuʻuna, akā he mea ʻole. Inā ʻaʻole hiki i kahi noi ke holo ma nā replicas he nui, a laila he aha ka ʻokoʻa - ma Kubernetes a i ʻole?

E wehe i ke kumu Kubernetes


He mea maikaʻi loa ka Open Source Kubernetes: Ua hoʻokomo wau a hana ia. Hiki iā ʻoe ke kau iā ia ma kāu mau kikowaena lako ponoʻī, ma kāu ʻoihana ponoʻī, e hoʻokomo i nā haku a me nā limahana kahi e holo ai nā noi āpau. A ʻo ka mea nui loa, manuahi kēia mau mea a pau. Eia naʻe, aia nā nuances.

  • ʻO ka mea mua ka koi no ka ʻike a me ka ʻike o nā luna hoʻomalu a me nā mea ʻenekinia e hoʻokau a kākoʻo i kēia mau mea āpau. Ma muli o ka loaʻa ʻana o ke kūʻokoʻa holoʻokoʻa o ka mea kūʻai aku i ka pūʻulu, nona ke kuleana no ka hana ʻana o ka pūʻulu iā ia iho. A he mea maʻalahi loa ka wāwahi i nā mea āpau ma aneʻi.
  • ʻO ka lua ka nele o nā hoʻohui. Inā holo ʻoe i nā Kubernetes me ka ʻole o kahi kahua virtualization kaulana, ʻaʻole e loaʻa iā ʻoe nā pono āpau o ka papahana. E like me ka hoʻohana ʻana i ka Persistent Volumes a me Load balancer lawelawe.

Kubernetes: kumu wehe vs. mea kūʻai aku

Kiʻi 2. k8s hoʻolālā

Kubernetes mai ka mea kūʻai aku


ʻO ka hoʻohui ʻana me kahi mea hāʻawi kapua e hāʻawi i ʻelua mau koho:

  • ʻO ka mea mua, hiki i ke kanaka ke kaomi i ka pihi "create cluster" a loaʻa i kahi hui i hoʻonohonoho ʻia a mākaukau no ka hoʻohana.
  • ʻO ka lua, hoʻokomo ka mea kūʻai aku i ka hui a hoʻonohonoho i ka hoʻohui ʻana me ke ao.

Pehea ka hana ʻana ma ʻaneʻi. Hoʻomaopopo ka ʻenekinia nāna i hoʻomaka i ka pūʻulu i ka nui o nā limahana āna e pono ai a me nā ʻāpana (e laʻa, 5 mau limahana, kēlā me kēia me 10 CPUs, 16 GB o RAM a, e ʻōlelo, 100 GB o ka disk). Ma hope o ka loaʻa ʻana o ke komo i ka pūʻulu i hana mua ʻia. I kēia hihia, ua hoʻoili piha ʻia nā limahana i hoʻokuʻu ʻia i ka mea kūʻai aku, akā noho ka mokulele hoʻokele holoʻokoʻa ma lalo o ke kuleana o ka mea kūʻai aku (inā hāʻawi ʻia ka lawelawe e like me ke ʻano lawelawe lawelawe mālama).

Eia naʻe, aia kēia papahana i kona mau hemahema. Ma muli o ka noho ʻana o ka mokulele hoʻokele me ka mea kūʻai aku, ʻaʻole hāʻawi ka mea kūʻai aku i ke komo piha i ka mea kūʻai aku, a hoʻemi kēia i ka maʻalahi i ka hana ʻana me Kubernetes. I kekahi manawa, makemake ka mea kūʻai aku e hoʻohui i kekahi mau hana kikoʻī i nā Kubernetes, no ka laʻana, ka hōʻoia ʻana ma o LDAP, akā ʻaʻole ʻae ka hoʻonohonoho hoʻokele mokulele i kēia.

Kubernetes: kumu wehe vs. mea kūʻai aku

Kiʻi 3. Ka laʻana o kahi pūʻulu Kubernetes mai kahi mea hāʻawi kapua

He aha e koho ai: open source a mea kūʻai paha


No laila, ʻo Kubernetes kahi kumu wehe a mea kūʻai aku paha? Inā mākou e lawe i ka Kubernetes kumu wehe, a laila hana ka mea hoʻohana i kāna makemake me ia. Akā aia kahi manawa nui e pana iā ʻoe iho i ka wāwae. Me ka mea kūʻai aku ʻoi aku ka paʻakikī, no ka mea ua noʻonoʻo ʻia a hoʻonohonoho ʻia nā mea āpau no ka ʻoihana. ʻO ka hemahema nui o ka open source Kubernetes ka koi no nā loea. Me kahi koho mea kūʻai aku, ua hoʻokuʻu ʻia ka ʻoihana mai kēia poʻo, akā pono ia e hoʻoholo inā e uku i kāna mau loea a i ʻole ka mea kūʻai aku.

Kubernetes: kumu wehe vs. mea kūʻai aku

Kubernetes: kumu wehe vs. mea kūʻai aku

ʻAe, ʻike ʻia nā mea maikaʻi, ʻike ʻia nā mea ʻino. Hoʻokahi mea mau: Hoʻoponopono ʻo Kubernetes i nā pilikia he nui ma o ka hoʻoponopono ʻana i nā pahu he nui. A ʻo wai ka mea e koho ai, open source a mea kūʻai paha - e hana nā kānaka a pau i kā lākou hoʻoholo ponoʻī.

Ua hoʻomākaukau ʻia ka ʻatikala e Dmitry Krasnov, ke alakaʻi alakaʻi o ka lawelawe Containerum o ka mea lawelawe #CloudMTS

Source: www.habr.com

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