Palekana Helm

Hiki ke hōʻike ʻia ke ʻano o ka moʻolelo e pili ana i ka luna pūʻolo kaulana loa no Kubernetes me ka hoʻohana ʻana i kahi emoji:

  • ʻo Helm ka pahu (ʻo ia ka mea kokoke loa i ka hoʻokuʻu hou ʻana o Emoji);
  • laka - palekana;
  • ʻo ke kanaka liʻiliʻi ka hopena o ka pilikia.

Palekana Helm

ʻOiaʻiʻo, e paʻakikī iki nā mea a pau, a piha ka moʻolelo i nā kikoʻī loea e pili ana Pehea e palekana ai i ka Helm.

  • ʻO ka Helm pōkole inā ʻaʻole ʻoe i ʻike a poina paha. He aha nā pilikia e hoʻoponopono ai a ma hea ia i loko o ka kaiaola.
  • E nānā kākou i ka hoʻolālā Helm. ʻAʻohe kamaʻilio e pili ana i ka palekana a pehea e hana ai i kahi hāmeʻa a i ʻole ka hoʻonā ʻoi aku ka palekana me ka ʻole o ka hoʻomaopopo ʻana i ka hoʻolālā ʻana o ka mea.
  • E kūkākūkā kākou i nā mea Helm.
  • ʻO ka nīnau wela loa ka wā e hiki mai ana - ka mana hou o Helm 3. 

Pili nā mea a pau o kēia ʻatikala iā Helm 2. Ke hana ʻia nei kēia mana a ʻo ia ka mea āu e hoʻohana nei i kēia manawa, a ʻo ia ka mana i loaʻa nā pilikia palekana.


E pili ana i ka mea haʻiʻōlelo: Alexander Khayorov (alexx) ke ulu nei no 10 mau makahiki, e kōkua ana i ka hoʻomaikaʻi ʻana i ka ʻike Moscow Python Conf++ a komo i ke komite Helm Summit. Ke hana nei ʻo ia ma Chainstack ma ke ʻano he alakaʻi hoʻomohala - he hui kēia ma waena o kahi luna hoʻomohala a me ke kanaka nāna ke kuleana no ka hoʻopuka ʻana i nā hoʻokuʻu hope. ʻO ia hoʻi, aia ma ke kahua kaua, kahi e hana ai nā mea a pau mai ka hana ʻana i kahi huahana a hiki i kāna hana.

ʻO Chainstack kahi mea hoʻomaka liʻiliʻi, e ulu ikaika ana ka mea e hiki ai i nā mea kūʻai ke hoʻopoina e pili ana i nā ʻōnaehana a me nā paʻakikī o ka hana ʻana i nā noi decentralized; aia ka hui hoʻomohala ma Singapore. Mai noi iā Chainstack e kūʻai aku a kūʻai mai i ka cryptocurrency, akā hāʻawi e kamaʻilio e pili ana i nā ʻoihana blockchain frameworks, a e pane lākou iā ʻoe.

Helm

He pūʻolo (papa) manakia kēia no Kubernetes. ʻO ke ala intuitive a me ke ao holoʻokoʻa e lawe i nā noi i kahi hui Kubernetes.

Palekana Helm

ʻO kaʻoiaʻiʻo, ke kamaʻilio nei mākou e pili ana i kahi ala ʻoi aku ka hoʻolālā a me ka ʻoihana ma mua o ka hana ʻana i kāu hōʻike YAML ponoʻī a kākau i nā pono liʻiliʻi.

ʻO ka Helm ka mea maikaʻi loa i loaʻa i kēia manawa a kaulana.

Helm no ke aha? ʻO ka mea nui no ke kākoʻo ʻia e ka CNCF. He hui nui ʻo Cloud Native a ʻo ia ka hui makua no nā papahana Kubernetes, etcd, Fluentd a me nā mea ʻē aʻe.

ʻO kekahi mea koʻikoʻi ʻo Helm kahi papahana kaulana loa. I koʻu hoʻomaka ʻana e kamaʻilio e pili ana i ka hoʻopaʻa ʻana iā Helm i Ianuali 2019, ua loaʻa i ka papahana hoʻokahi kaukani hōkū ma GitHub. Ma Mei he 12 tausani o lakou.

Nui ka poʻe i hoihoi iā Helm, no laila inā ʻaʻole ʻoe e hoʻohana iā ia, e pōmaikaʻi ʻoe i ka ʻike e pili ana i kona palekana. He mea nui ka palekana.

Kākoʻo ʻia ka hui Helm nui e Microsoft Azure a no laila he papahana kūpaʻa, ʻaʻole like me nā mea ʻē aʻe. ʻO ka hoʻokuʻu ʻia ʻana o Helm 3 Alpha 2 i ka waena o Iulai e hōʻike ana he nui ka poʻe e hana ana i ka papahana, a loaʻa iā lākou ka makemake a me ka ikaika e hoʻomohala a hoʻomaikaʻi iā Helm.

Palekana Helm

Hoʻoponopono ʻo Helm i nā pilikia kumu o ka hoʻokele noi ma Kubernetes.

  • Hoʻopili palapala noi. ʻO kahi noi e like me "Hello, World" ma WordPress ua loaʻa i nā lawelawe he nui, a makemake ʻoe e hoʻopili pū iā lākou.
  • Ka mālama ʻana i ka paʻakikī e hele mai me ka mālama ʻana i kēia mau noi.
  • He pōʻaiapuni ola ʻaʻole i pau ma hope o ka hoʻokomo ʻia ʻana a i ʻole ke kau ʻia ʻana o ka noi. Ke hoʻomau nei ʻo ia e ola, pono e hoʻonui ʻia, a kōkua ʻo Helm me kēia a hoʻāʻo e lawe i nā ana kūpono a me nā kulekele no kēia.

ʻeke ʻeke ua hoʻonohonoho ʻia ma kahi ʻano maopopo: aia nā metadata e like me ka hana a kahi luna hoʻonohonoho maʻamau no Linux, Windows a i ʻole MacOS. ʻO ia hoʻi, kahi waihona, hilinaʻi ma nā ʻāpana like ʻole, ʻike meta no nā noi, nā hoʻonohonoho, nā hiʻohiʻona hoʻonohonoho, ka ʻike kuhikuhi, a pēlā aku.

Hoʻoponopono Paʻakikī. Inā loaʻa iā ʻoe nā noi he nui o ka ʻano like, a laila pono ka parameterization. Mai kēia mai nā templates, akā i mea e pale aku ai i ka hana ʻana i kāu ala ponoʻī o ka hana ʻana i nā templates, hiki iā ʻoe ke hoʻohana i ka mea a Helm i hāʻawi ai mai ka pahu.

Hoʻokele Lifecycle Application - i koʻu manaʻo, ʻo kēia ka nīnau hoihoi loa a hoʻoholo ʻole ʻia. ʻO ia ke kumu i hele mai ai au i Helm i ka lā. Pono mākou e makaʻala i ke ola o ka noi a makemake mākou e neʻe i kā mākou CI / CD a me nā pōʻai noi i kēia paradigm.

Helm hiki iā ʻoe ke:

  • mālama i nā hoʻolālā, hoʻolauna i ka manaʻo o ka hoʻonohonoho a me ka hoʻoponopono;
  • hoʻokō pono i ka rollback;
  • hoʻohana i nā makau no nā hanana like ʻole;
  • hoʻohui i nā loiloi noi hou a pane i kā lākou hopena.

Eia kekahi mea Loaʻa i ka Helm nā "pāʻani" - ka nui o nā mea ʻono i hiki ke hoʻohui ʻia i ke ʻano o nā plugins, e hoʻomaʻamaʻa i kou ola. Hiki ke kākau kūʻokoʻa nā plugins, kaʻawale loa lākou a ʻaʻole koi i kahi hoʻolālā kūlike. Inā makemake ʻoe e hoʻokō i kekahi mea, manaʻo wau e hana ia ma ke ʻano he plugin, a laila hiki ke hoʻokomo i ka upstream.

Hoʻokumu ʻia ka Helm i ʻekolu manaʻo nui:

  • Palapala Repo - ka wehewehe ʻana a me ke ʻano o ka hoʻohālikelike ʻana i hiki i kāu hōʻike. 
  • Hōʻuluʻulu —ʻo ia hoʻi, nā waiwai e hoʻopili ʻia (kikokikona, helu helu, etc.).
  • Release hōʻiliʻili i nā ʻāpana luna ʻelua, a hui pū lākou i ka Release. Hiki ke hoʻololi ʻia nā hoʻokuʻu, a laila e loaʻa ai kahi pōʻai ola i hoʻonohonoho ʻia: liʻiliʻi i ka manawa o ka hoʻokomo ʻana a nui i ka manawa o ka hoʻomaikaʻi ʻana, hoʻohaʻahaʻa a i ʻole rollback.

Hoʻolālā Helm

Hōʻike manaʻo ke kiʻikuhi i ka hoʻolālā kiʻekiʻe o Helm.

Palekana Helm

E hoʻomanaʻo wau iā ʻoe he mea pili ʻo Helm iā Kubernetes. No laila, ʻaʻole hiki iā mākou ke hana me ka ʻole o kahi hui Kubernetes (rectangle). Aia ka ʻāpana kube-apiserver ma ka haku. Me ka Helm iā mākou ʻo Kubeconfig. Lawe mai ʻo Helm i hoʻokahi binary liʻiliʻi, inā hiki iā ʻoe ke kapa iā ia, Helm CLI pono, i hoʻokomo ʻia ma ke kamepiula, kamepiula, mainframe - ma kekahi mea.

Akā ʻaʻole lawa kēia. He mea kikowaena ko Helm i kapa ʻia ʻo Tiller. Hōʻike ia i nā pono o Helm i loko o ka pūʻulu; he noi ia i loko o ka pūʻulu Kubernetes, e like me nā mea ʻē aʻe.

ʻO ka mea aʻe o Chart Repo he waihona me nā pakuhi. Aia kahi waihona kūhelu, a aia paha kahi waihona pilikino o kahi hui a papahana paha.

Pākuʻi

E nānā kākou i ka pili ʻana o nā ʻāpana hoʻolālā ke makemake mākou e hoʻokomo i kahi noi me ka hoʻohana ʻana iā Helm.

  • Ke kamaʻilio nei mākou Helm install, e kiʻi i ka waihona (Chart Repo) a loaʻa i kahi pakuhi Helm.

  • Hoʻopili ka mea hoʻohana Helm (Helm CLI) me Kubeconfig i mea e ʻike ai i ka hui e hoʻopili ai. 
  • I ka loaʻa ʻana o kēia ʻike, pili ka pono iā Tiller, aia i loko o kā mākou hui, ma ke ʻano he noi. 
  • Kāhea ʻo Tiller iā Kube-apiserver e hana i nā hana ma Kubernetes, hana i kekahi mau mea (lawelawe, pods, replicas, huna, etc.).

Ma hope aʻe, e hoʻopili mākou i ke kiʻikuhi e ʻike i ka vector hoʻouka i hiki ke ʻike ʻia ka hale hoʻolālā Helm holoʻokoʻa. A laila e hoʻāʻo mākou e pale iā ia.

Hoʻouka kaua

ʻO ka wahi nāwaliwali hiki mua pono API-mea hoʻohana. Ma ke ʻano he ʻāpana o ka hoʻolālā, he hacker kēia i loaʻa i ke komo admin i ka Helm CLI.

Mea hoʻohana API pono ʻole hiki nō ke hoʻopilikia inā aia ma kahi kokoke. E loaʻa i kēlā mea hoʻohana kahi ʻano ʻokoʻa, no ka laʻana, hiki ke hoʻopaʻa ʻia i loko o kahi inoa cluster ma nā hoʻonohonoho Kubeconfig.

ʻO ka mea hoʻouka kaua hoihoi loa paha he kaʻina hana e noho ana i loko o kahi pūʻulu ma kahi kokoke i Tiller a hiki ke komo iā ia. Hiki i kēia ke kikowaena pūnaewele a i ʻole microservice e ʻike i ke kaiapuni pūnaewele o ka pūpū.

ʻO kahi ʻano hoʻouka ʻē aʻe, akā ke kaulana nei, pili i ka Chart Repo. Hiki ke loaʻa i kahi pakuhi i hana ʻia e ka mea kākau hewa ʻole, a e hoʻopau ʻoe ma ka lawe ʻana iā ia ma ka manaʻoʻiʻo. A i ʻole hiki iā ia ke hoʻololi i ka pakuhi āu e hoʻoiho ai mai ka waihona kūhelu a, no ka laʻana, hana i kahi kumuwaiwai ma ke ʻano o nā kulekele a hoʻonui i kona komo.

Palekana Helm

E hoʻāʻo kākou e pale aku i nā hoʻouka kaua mai kēia mau ʻaoʻao ʻehā a e ʻike i nā pilikia i loko o ka hoʻolālā Helm, a ma hea paha, ʻaʻohe.

E hoʻonui i ke kiʻikuhi, e hoʻohui i nā mea hou aʻe, akā mālama i nā ʻāpana kumu āpau.

Palekana Helm

Kūkākūkā ka Helm CLI me ka Chart Repo, launa pū me Kubeconfig, a hoʻoili ʻia ka hana i ka hui i ka ʻāpana Tiller.

Hōʻike ʻia ʻo Tiller e nā mea ʻelua:

  • Tiller-deploy svc, e hōʻike ana i kekahi lawelawe;
  • Tiller-deploy pod (ma ke kiʻikuhi i hoʻokahi kope i hoʻokahi kope), kahi e holo ai ka ukana holoʻokoʻa, kahi e komo ai i ka hui.

Hoʻohana ʻia nā protocols a me nā hoʻolālā like ʻole no ka launa pū ʻana. Mai kahi ʻike palekana, makemake nui mākou i:

  • ʻO ka mīkini e komo ai ka Helm CLI i ka repo o ka pakuhi: he aha ka protocol, aia ka hōʻoia a me ka mea hiki ke hana me ia.
  • ʻO ka protocol e kamaʻilio ai ʻo Helm CLI, me ka kubectl, me Tiller. He kikowaena RPC kēia i hoʻokomo ʻia i loko o ka pūʻulu.
  • Hiki ke loaʻa iā Tiller ponoʻī i nā microservices e noho ana i ka pūʻulu a hui pū me ka Kube-apiserver.

Palekana Helm

E kūkākūkā kākou i kēia mau māhele a pau.

RBAC

ʻAʻohe mea e kamaʻilio e pili ana i kahi palekana no Helm a i ʻole kekahi lawelawe ʻē aʻe i loko o ka puʻupuʻu ke ʻole ʻo RBAC.

Me he mea lā ʻaʻole kēia ka ʻōlelo aʻoaʻo hou loa, akā maopopo iaʻu he nui ka poʻe i hiki ʻole i ka RBAC i ka hana ʻana, no ka mea he nui ka haunaele a he nui nā mea e pono e hoʻonohonoho. Eia naʻe, paipai wau iā ʻoe e hana i kēia.

Palekana Helm

https://rbac.dev/ - loio pūnaewele no RBAC. Loaʻa iā ia ka nui o nā mea hoihoi e kōkua iā ʻoe e hoʻonohonoho i ka RBAC, e hōʻike i ke kumu o ka maikaʻi a pehea e ola ai me ia i ka hana ʻana.

E ho'āʻo wau e wehewehe i ka hana ʻana o Tiller a me RBAC. Hana ʻo Tiller i loko o ka pūʻulu ma lalo o kekahi moʻokāki lawelawe. ʻO ka maʻamau, inā ʻaʻole i hoʻonohonoho ʻia ʻo RBAC, ʻo ia ka superuser. Ma ka hoʻonohonoho kumu, e lilo ʻo Tiller i luna. ʻO ia ke kumu i ʻōlelo pinepine ʻia ai ʻo Tiller kahi tunnel SSH i kāu puʻupuʻu. ʻOiaʻiʻo, he ʻoiaʻiʻo kēia, no laila hiki iā ʻoe ke hoʻohana i kahi moʻokāki lawelawe hoʻolaʻa ʻokoʻa ma mua o ka Pūnaewele lawelawe Default ma ke kiʻi ma luna.

Ke hoʻomaka ʻoe iā Helm a hoʻokomo iā ia ma ke kikowaena no ka manawa mua, hiki iā ʻoe ke hoʻonohonoho i ka moʻokāki lawelawe me ka hoʻohana ʻana --service-account. E ʻae kēia iā ʻoe e hoʻohana i kahi mea hoʻohana me ka palena liʻiliʻi o nā kuleana. ʻOiaʻiʻo, pono ʻoe e hana i kahi "garland": Role a RoleBinding.

Palekana Helm

ʻO ka mea pōʻino, ʻaʻole e hana ʻo Helm i kēia no ʻoe. Pono ʻoe a i ʻole kāu luna pūʻulu Kubernetes e hoʻomākaukau i kahi pūʻulu o nā Role a me RoleBindings no ka moʻokāki lawelawe ma mua i mea e hala ai iā Helm.

Kū mai ka nīnau - he aha ka ʻokoʻa ma waena o Role a me ClusterRole? ʻO ka ʻokoʻa, hana ʻo ClusterRole no nā inoa inoa āpau, ʻaʻole like me nā Roles maʻamau a me RoleBindings, e hana wale ana no kahi inoa inoa kūikawā. Hiki iā ʻoe ke hoʻonohonoho i nā kulekele no ka puʻupuʻu holoʻokoʻa a me nā inoa inoa āpau, a i ʻole pilikino no kēlā me kēia inoa inoa.

Pono e haʻi ʻia e hoʻoponopono ʻo RBAC i kekahi pilikia nui. He nui ka poʻe e hoʻopiʻi nei ʻo Helm, ʻaʻole naʻe he multitenancy (ʻaʻole kākoʻo i ka multitenancy). Inā ʻai kekahi mau hui i kahi hui a hoʻohana iā Helm, ʻaʻole hiki ke hoʻonohonoho i nā kulekele a kaupalena i ko lākou komo ʻana i loko o kēia puʻupuʻu, no ka mea aia kekahi moʻokāki lawelawe ma lalo o ka holo ʻana o Helm, a hana ia i nā kumuwaiwai āpau i loko o ka pūʻulu mai lalo ona. , ka mea hiki ole i kekahi manawa. He ʻoiaʻiʻo kēia - e like me ka faila binary ponoʻī, e like me ke kaʻina hana, ʻAʻohe manaʻo o Helm Tiller no ka multitenancy.

Eia nō naʻe, aia kahi ala maikaʻi loa e hiki ai iā ʻoe ke holo iā Tiller i nā manawa he nui i kahi hui. ʻAʻohe pilikia me kēia, hiki ke hoʻokuʻu ʻia ʻo Tiller i kēlā me kēia inoa inoa. No laila, hiki iā ʻoe ke hoʻohana iā RBAC, Kubeconfig ma ke ʻano he pōʻaiapili, a kaupalena i ke komo ʻana i kahi Helm kūikawā.

E like me kēia.

Palekana Helm

No ka laʻana, aia ʻelua Kubeconfigs me ka pōʻaiapili no nā hui like ʻole (ʻelua inoa inoa): X Team no ka hui hoʻomohala a me ka pūʻulu admin. Loaʻa i ka pūʻulu alakaʻi kāna Tiller ākea, aia ma ka inoa ʻo Kube-system, kahi moʻokāki lawelawe holomua. A he inoa kaʻawale no ka hui hoʻomohala, hiki iā lākou ke kau i kā lākou lawelawe i kahi inoa inoa kūikawā.

He ala kūpono kēia, ʻaʻole pōloli loa ʻo Tiller e hoʻopilikia nui i kāu kālā. ʻO kēia kekahi o nā hoʻonā wikiwiki.

E ʻoluʻolu e hoʻonohonoho ʻo Tiller i kahi kaʻawale a hāʻawi iā Kubeconfig me ka pōʻaiapili no ka hui, no kahi mea hoʻomohala kikoʻī a i ʻole no ke kaiapuni: Dev, Staging, Production (he kanalua paha nā mea āpau ma ka hui like, akā naʻe, hiki ke hana ʻia).

Ke hoʻomau nei i kā mākou moʻolelo, e hoʻololi kākou mai RBAC a kamaʻilio e pili ana i ka ConfigMaps.

ConfigMaps

Hoʻohana ʻo Helm i ka ConfigMaps ma kāna hale kūʻai ʻikepili. I ko mākou kamaʻilio ʻana e pili ana i ka hoʻolālā, ʻaʻohe ʻikepili ma nā wahi āpau e mālama i ka ʻike e pili ana i ka hoʻokuʻu ʻana, nā hoʻonohonoho, rollbacks, etc. Hoʻohana ʻia ʻo ConfigMaps no kēia.

ʻIke ʻia ka pilikia nui me ConfigMaps - ʻaʻole palekana lākou ma ke kumu; hiki ʻole ke mālama i nā ʻikepili koʻikoʻi. Ke kamaʻilio nei mākou e pili ana i nā mea āpau ʻaʻole pono e hele ma mua o ka lawelawe, no ka laʻana, nā ʻōlelo huna. ʻO ke ala maoli no Helm i kēia manawa ʻo ka hoʻololi ʻana mai ka hoʻohana ʻana i ka ConfigMaps i nā mea huna.

Hana ʻia kēia me ka maʻalahi loa. Hoʻopau i ka hoʻonohonoho Tiller a hoʻomaopopo he mea huna ka waiho ʻana. A laila no kēlā me kēia kau ʻana ʻaʻole ʻoe e loaʻa i kahi ConfigMap, akā he mea huna.

Palekana Helm

Hiki iā ʻoe ke hoʻopaʻapaʻa ʻo nā mea huna iā lākou iho he manaʻo ʻē a ʻaʻole paʻa loa. Eia nō naʻe, pono e hoʻomaopopo ʻo nā mea hoʻomohala Kubernetes ke hana nei lākou. E hoʻomaka ana mai ka mana 1.10, i.e. No kekahi manawa i kēia manawa, ua hiki, ma ka liʻiliʻi ma nā ao ākea, e hoʻopili i ka waihona kūpono e mālama i nā mea huna. Ke hana nei ka hui i nā ala e hoʻohele maikaʻi ai i nā mea huna, nā pods a i ʻole nā ​​​​mea ʻē aʻe.

ʻOi aku ka maikaʻi o ka hoʻoili ʻana i ka Helm Storage i nā mea huna, a ʻo lākou hoʻi, ua paʻa i ke kikowaena.

ʻOiaʻiʻo e mau ana ka palena o ka mālama ʻana i ka ʻikepili o 1 MB. Hoʻohana ʻo Helm ma ʻaneʻi i ka etcd ma ke ʻano he waihona puʻupuʻu no ConfigMaps. A ma laila lākou i manaʻo ai he puʻupuʻu ʻikepili kūpono kēia no ka hana hou ʻana, etc. Aia kahi kūkākūkā hoihoi e pili ana i kēia ma Reddit, manaʻo wau e ʻimi i kēia heluhelu ʻakaʻaka no ka hopena pule a heluhelu paha i ka extract maanei.

Palapala Papa

ʻO nā pakuhi ka mea pilikia loa i ka pilikanaka a hiki ke lilo i kumu no "Man in the middle", ʻoiai inā ʻoe e hoʻohana i kahi hoʻonā waiwai. ʻO ka mea mua, ke kamaʻilio nei mākou e pili ana i nā repositories i hōʻike ʻia ma o HTTP.

Pono ʻoe e hōʻike iā Helm Repo ma luna o HTTPS - ʻo kēia ke koho maikaʻi loa a ʻaʻohe kumu kūʻai.

e hoʻolohe ʻōnaehana pūlima palapala. He maʻalahi ka ʻenehana e like me ke ahi. ʻO kēia ka mea like āu e hoʻohana ai ma GitHub, kahi mīkini PGP maʻamau me nā kī ākea a pilikino. E hoʻonohonoho a hōʻoia, me ka loaʻa ʻana o nā kī pono a me ke kau inoa ʻana i nā mea āpau, ʻo ia kāu pakuhi.

Eia hou, Kākoʻo ka mea kūʻai Helm iā TLS (ʻaʻole i ka manaʻo HTTP ʻaoʻao server, akā ʻo TLS like). Hiki iā ʻoe ke hoʻohana i nā kī kikowaena a me nā mea kūʻai aku i mea e kamaʻilio ai. ʻO kaʻoiaʻiʻo, ʻaʻole wau e hoʻohana i kēlā ʻano hana no ka mea ʻaʻole wau makemake i nā palapala hōʻoia. ma ke kumu, hale hōʻikeʻike palapala - ka mea hana nui no ka hoʻonohonoho ʻana i ka Helm Repo no ka Helm 2 - kākoʻo pū kekahi i ka ʻōlelo kumu. Hiki iā ʻoe ke hoʻohana i ka ʻōlelo kumu inā ʻoi aku ka maʻalahi a me ka mālie.

Aia kekahi plugin helm-gcs, hiki iā ʻoe ke hoʻokipa iā Chart Repos ma Google Cloud Storage. He mea maʻalahi kēia, hana maikaʻi a palekana loa, no ka mea, ua hana hou ʻia nā mīkini i wehewehe ʻia.

Palekana Helm

Inā hiki iā ʻoe ke hoʻohana i ka HTTPS a i ʻole TLS, e hoʻohana i ka mTLS, a hiki i ka ʻōlelo kumu kumu ke hōʻemi hou i nā pilikia, e loaʻa iā ʻoe kahi ala kamaʻilio paʻa me Helm CLI a me Chart Repo.

API gRPC

He mea koʻikoʻi ka hana aʻe - e hoʻopaʻa iā Tiller, aia i loko o ka pūʻulu a, ma kekahi ʻaoʻao, he kikowaena, ma ka ʻaoʻao ʻē aʻe, ʻo ia iho e komo i nā ʻāpana ʻē aʻe a hoʻāʻo e hoʻohālike i kekahi.

E like me kaʻu i ʻōlelo ai, ʻo Tiller kahi lawelawe e hōʻike ana i ka gRPC, hele mai ka mea kūʻai Helm iā ia ma o gRPC. Ma ka paʻamau, ʻoiaʻiʻo, ua pio ʻo TLS. No ke aha i hana ʻia ai kēia he nīnau hoʻopaʻapaʻa, me he mea lā iaʻu e hoʻomaʻamaʻa i ka hoʻonohonoho i ka hoʻomaka.

No ka hana ʻana a me ka hoʻonohonoho ʻana, manaʻo wau e hiki iā TLS ma gRPC.

I koʻu manaʻo, ʻaʻole like me ka mTLS no nā pakuhi, kūpono kēia ma ʻaneʻi a hana maʻalahi loa - hana i kahi ʻōnaehana PQI, hana i kahi palapala hōʻoia, hoʻomaka ʻo Tiller, hoʻololi i ka palapala hōʻoia i ka wā hoʻomaka. Ma hope o kēia, hiki iā ʻoe ke hoʻokō i nā kauoha Helm āpau, e hōʻike ana iā ʻoe iho me ka palapala i hana ʻia a me ke kī pilikino.

Palekana Helm

Ma kēia ala e pale ai ʻoe iā ʻoe iho mai nā noi āpau iā Tiller mai waho o ka hui.

No laila, ua hoʻopaʻa mākou i ke ala pili iā Tiller, ua kūkākūkā mākou i ka RBAC a hoʻoponopono i nā kuleana o ka apiserver Kubernetes, e hōʻemi ana i ka domain e hiki ai iā ia ke launa.

Helm Palekana

E nānā kākou i ke kiʻikuhi hope. ʻO ka hoʻolālā like me nā pua like.

Palekana Helm

Hiki ke huki pono ʻia nā pilina a pau me ka ʻōmaʻomaʻo:

  • no Chart Repo hoʻohana mākou i ka TLS a i ʻole mTLS a me ka mana kumu;
  • mTLS no Tiller, a ua hōʻike ʻia ma ke ʻano he lawelawe gRPC me TLS, hoʻohana mākou i nā palapala hōʻoia;
  • hoʻohana ka pūʻulu i kahi moʻokāki lawelawe kūikawā me Role a me RoleBinding. 

Ua hoʻopaʻa maikaʻi mākou i ka puʻupuʻu, akā ua ʻōlelo kekahi kanaka akamai:

"He hoʻokahi wale nō ka hopena palekana - kahi kamepiula i hoʻopau ʻia, aia i loko o kahi pahu pahu a kiaʻi ʻia e nā koa."

Aia nā ʻano like ʻole e hoʻopunipuni i ka ʻikepili a loaʻa i nā vectors hoʻouka hou. Eia naʻe, ke hilinaʻi nei au e loaʻa ana kēia mau ʻōlelo paipai i kahi kūlana ʻoihana kumu no ka palekana.

Bonus

ʻAʻole pili pono kēia ʻāpana i ka palekana, akā e pono pū kekahi. E hōʻike aku au iā ʻoe i kekahi mau mea hoihoi a kakaʻikahi ka poʻe i ʻike. No ka laʻana, pehea e ʻimi ai i nā palapala kiʻi - kūhelu a kū ʻole.

Ma ka waihona github.com/helm/charts I kēia manawa aia ma kahi o 300 mau palapala a me nā kahawai ʻelua: paʻa a me ka incubator. ʻO ka mea hāʻawi kālā, ʻike maopopo i ka paʻakikī o ka loaʻa ʻana mai ka incubator a i ka hale paʻa, a me ka maʻalahi o ka lele ʻana i waho o ka hale paʻa. Eia nō naʻe, ʻaʻole kēia ka mea hana maikaʻi loa e ʻimi ai i nā pakuhi no Prometheus a me nā mea ʻē aʻe āu e makemake ai, no kahi kumu maʻalahi - ʻaʻole ia he puka e hiki ai iā ʻoe ke ʻimi maʻalahi i nā pūʻolo.

Akā aia kahi lawelawe hub.helm.sh, ʻoi aku ka maʻalahi o ka ʻimi ʻana i nā pakuhi. ʻO ka mea nui loa, he nui nā waihona waho waho a kokoke i 800 mau mea hoʻonani i loaʻa. Eia hou, hiki iā ʻoe ke hoʻohui i kāu waihona inā no kekahi kumu ʻaʻole ʻoe makemake e hoʻouna i kāu mau palapala i ka paʻa.

E hoʻāʻo iā hub.helm.sh a e hoʻomohala pū kāua. Aia kēia lawelawe ma lalo o ka papahana Helm, a hiki iā ʻoe ke hāʻawi i kāna UI inā he mea hoʻomohala mua ʻoe a makemake wale e hoʻomaikaʻi i ka helehelena.

Makemake au e huki i kou noonoo Open Service Broker API hoʻohui. He paʻakikī a maopopo ʻole ia, akā hoʻoponopono ia i nā pilikia e kū nei nā mea a pau. E wehewehe au me kahi laʻana maʻalahi.

Palekana Helm

Aia kahi pūʻulu Kubernetes kahi e makemake ai mākou e holo i kahi noi maʻamau - WordPress. ʻO ka maʻamau, pono kahi waihona no ka hana piha. Nui nā hoʻonā like ʻole, no ka laʻana, hiki iā ʻoe ke hoʻomaka i kāu lawelawe statefull ponoʻī. ʻAʻole maʻalahi kēia, akā nui ka poʻe e hana.

ʻO nā poʻe ʻē aʻe, e like me mākou ma Chainstack, hoʻohana i nā ʻikepili hoʻokele e like me MySQL a PostgreSQL no kā lākou mau kikowaena. ʻO ia ke kumu i loaʻa ai kā mākou waihona ma kahi o ke ao.

Akā ke kū mai nei kahi pilikia: pono mākou e hoʻopili i kā mākou lawelawe me kahi waihona, hana i kahi ʻono waihona, hoʻoili i ka hōʻoia a mālama ʻia. Hoʻohana lima ʻia kēia mau mea āpau e ka luna hoʻonohonoho a i ʻole ka mea hoʻomohala. A ʻaʻohe pilikia inā liʻiliʻi nā noi. Ke nui o lākou, pono ʻoe i kahi hui. Aia kekahi mea ʻohi - ʻo ia ka Service Broker. Hiki iā ʻoe ke hoʻohana i kahi plugin kūikawā no kahi puʻupuʻu kapuaʻi lehulehu a kauoha i nā kumuwaiwai mai ka mea hoʻolako ma o Broker, me he mea lā he API. No ka hana ʻana i kēia, hiki iā ʻoe ke hoʻohana i nā mea hana Kubernetes maoli.

He maʻalahi loa. Hiki iā ʻoe ke nīnau, no ka laʻana, Managed MySQL ma Azure me kahi pae kumu (hiki ke hoʻonohonoho ʻia kēia). Ke hoʻohana nei i ka Azure API, e hana ʻia ka waihona a hoʻomākaukau no ka hoʻohana. ʻAʻole pono ʻoe e hoʻopilikia i kēia, na ka plugin ke kuleana no kēia. No ka laʻana, e hoʻihoʻi ka OSBA (Azure plugin) i ka hōʻoia i ka lawelawe a hāʻawi iā Helm. Hiki iā ʻoe ke hoʻohana i ka WordPress me ke ao MySQL, ʻaʻole pili i nā ʻikepili i mālama ʻia a ʻaʻole hopohopo e pili ana i nā lawelawe statefull i loko.

Hiki iā mākou ke ʻōlelo he hana ʻo Helm ma ke ʻano he glue, ma kekahi ʻaoʻao, e ʻae iā ʻoe e kau i nā lawelawe, a ma kekahi ʻē aʻe, e hoʻopau i nā kumuwaiwai o nā mea hoʻolako kapua.

Hiki iā ʻoe ke kākau i kāu plugin ponoʻī a hoʻohana i kēia moʻolelo holoʻokoʻa ma ka hale. A laila e loaʻa iā ʻoe kāu plugin ponoʻī no ka mea hoʻolako Cloud hui. Manaʻo wau e hoʻāʻo i kēia ala, ʻoi aku ka nui inā he nui kāu a makemake ʻoe e hoʻonohonoho koke i ka dev, staging, a i ʻole ka ʻōnaehana holoʻokoʻa no kahi hiʻohiʻona. E maʻalahi kēia i ke ola no kāu mau hana a i ʻole DevOps.

ʻO kekahi ʻike aʻu i ʻōlelo mua ai helm-gcs plugin, hiki iā ʻoe ke hoʻohana i nā ʻeke Google (mea mālama mea) e mālama i nā palapala Helm.

Palekana Helm

Pono ʻoe i ʻehā mau kauoha e hoʻomaka ai e hoʻohana iā ia:

  1. hoʻokomo i ka plugin;
  2. hoʻomaka;
  3. hoʻonoho i ke ala i ka bākeke, aia ma gcp;
  4. hoʻopuka i nā palapala kiʻi ma ke ʻano maʻamau.

ʻO ka nani, e hoʻohana ʻia ke ʻano gcp maoli no ka ʻae. Hiki iā ʻoe ke hoʻohana i kahi moʻokāki lawelawe, kahi moʻokāki hoʻomohala, nā mea āu e makemake ai. He kūpono loa a ʻaʻohe kumu kūʻai no ka hana. Inā ʻoe, e like me aʻu, e hoʻolaha i ka philosophy opsless, a laila e maʻalahi kēia, ʻoi aku hoʻi no nā hui liʻiliʻi.

Nā meaʻokoʻa

ʻAʻole ʻo Helm wale nō ka hoʻoponopono lawelawe lawelawe. Nui nā nīnau e pili ana iā ia, ʻo ia paha ke kumu i ʻike koke ʻia ai ke kolu o ka mana. ʻOiaʻiʻo aia kekahi mau koho.

Hiki iā ia ke hoʻonā kūikawā, no ka laʻana, Ksonnet a i ʻole Metaparticle. Hiki iā ʻoe ke hoʻohana i kāu mau mea hana hoʻokele waiwai maʻamau (Ansible, Terraform, Chef, etc.) no nā kumu like aʻu i kamaʻilio ai.

ʻO ka hope loa he hoʻonā Ka Papa Hana, ke ulu nei ka kaulana.

ʻO ka Operator Framework ka mea koho Helm kiʻekiʻe e noʻonoʻo ai.

ʻOi aku ia i ka CNCF a me Kubernetes, akā, ʻoi aku ka kiʻekiʻe o ka pale i ke komo ʻana, pono ʻoe e hoʻolālā i nā mea hou aʻe a wehewehe liʻiliʻi i nā hōʻike.

Aia nā mea hoʻohui like ʻole, e like me Draft, Scaffold. Maʻalahi lākou i ke ola, no ka laʻana, hoʻomaʻamaʻa lākou i ka pōʻai o ka hoʻouna ʻana a me ka hoʻokuʻu ʻana i ka Helm no nā mea hoʻomohala e kau i kahi ʻano hoʻāʻo. E kapa au iā lākou he mau mana.

Eia kahi pakuhi ʻike o kahi o nā mea a pau.

Palekana Helm

Aia ma ka axis-x ka pae o kou mana pilikino i ka mea e hana nei, ma ka axis-y ka pae o ka ʻōiwi o Kubernetes. Hāʻule ka Helm version 2 ma waena. Ma ka mana 3, ʻaʻole nui, akā ua hoʻomaikaʻi ʻia ka mana a me ka pae o ka ʻōiwi. ʻOi aku ka haʻahaʻa o nā hopena ma ka pae Ksonnet a hiki i ka Helm 2. Eia naʻe, pono lākou e nānā e ʻike i nā mea ʻē aʻe o kēia ao. ʻOiaʻiʻo, aia kāu mana hoʻonohonoho ma lalo o kou mana, akā ʻaʻole maoli ia no Kubernetes.

He kama'āina maoli ka Operator Framework iā Kubernetes a hiki iā ʻoe ke hoʻokele iā ia me ka nani a me ka nānā pono (akā e hoʻomanaʻo e pili ana i ka pae komo). Akā, kūpono kēia no kahi noi kūikawā a me ka hoʻokumu ʻana i ka hoʻokele no ia, ma mua o kahi ʻohi nui no ka hoʻopili ʻana i kahi helu nui o nā noi me ka hoʻohana ʻana iā Helm.

Hoʻomaikaʻi liʻiliʻi nā mea hoʻonui i ka mana, hoʻopiha i ke kahe hana, a ʻoki ʻoki paha i nā kihi ma nā paipu CI/CD.

ʻO ka wā e hiki mai ana o Helm

ʻO ka nūhou maikaʻi e hiki mai ana ʻo Helm 3. Ua hoʻokuʻu ʻia ka mana alpha o Helm 3.0.0-alpha.2, hiki iā ʻoe ke hoʻāʻo. Paʻa loa ia, akā ua kaupalena ʻia ka hana.

No ke aha ʻoe e pono ai i ka Helm 3? ʻO ka mea mua, he moʻolelo kēia e pili ana nalowale ana o Tiller, ma ke ʻano he ʻāpana. ʻO kēia, e like me kāu i hoʻomaopopo mua ai, he hana nui i mua, no ka mea, mai ka ʻike o ka palekana o ka hale hoʻolālā, ua maʻalahi nā mea a pau.

I ka wā i hana ʻia ai ʻo Helm 2, ʻo ia ka manawa o Kubernetes 1.8 a i ʻole ma mua, ʻaʻole i oʻo ka nui o nā manaʻo. No ka laʻana, ke hoʻokō ikaika ʻia nei ka manaʻo CRD, a e hana ʻo Helm hoʻohana i ka CRDe mālama i nā hale. Hiki ke hoʻohana wale i ka mea kūʻai aku a ʻaʻole mālama i ka ʻāpana kikowaena. No laila, e hoʻohana i nā kauoha Kubernetes maoli e hana me nā hale a me nā kumuwaiwai. He ʻanuʻu nui kēia i mua.

E hōʻike ʻia kākoʻo no nā waihona waihona OCI maoli (Open Container Initiative). He hana nui kēia, a makemake nui ʻo Helm e kau i kāna mau palapala. Ua hiki mai i kahi, no ka laʻana, kākoʻo ʻo Docker Hub i nā kūlana OCI he nui. ʻAʻole wau e manaʻo, akā e hoʻomaka ana nā mea hoʻolako waihona Docker maʻamau e hāʻawi iā ʻoe i ka manawa e hoʻokipa ai i kā lākou mau palapala Helm.

ʻO ka moʻolelo hoʻopaʻapaʻa iaʻu Kākoʻo ʻo Lua, ma ke ʻano he ʻenekini hoʻohālike no ke kākau ʻana i nā palapala. ʻAʻole wau makemake nui iā Lua, akā he hiʻohiʻona koho loa kēia. Ua nānā au i kēia 3 manawa - ʻaʻole pono ka hoʻohana ʻana iā Lua. No laila, ʻo ka poʻe makemake e hoʻohana iā Lua, ka poʻe makemake iā Go, e hui pū me kā mākou kahua hoʻomoana nui a hoʻohana i ka go-tmpl no kēia.

ʻO ka mea hope loa, ʻo kaʻu mea i nalowale loa ka puka ʻana o ka schema a me ka hōʻoia ʻano ʻikepili. ʻAʻohe pilikia hou me ka int a i ʻole ke kaula, ʻaʻole pono e hoʻopili i ka zero i nā huaʻōlelo pālua. E ʻike ʻia kahi schema JSONS e ʻae iā ʻoe e wehewehe i kēia no nā waiwai.

E hana hou ʻia kumu hoʻohālike hanana. Ua wehewehe mua ʻia i ka manaʻo. E nānā i ka lālā Helm 3, a ʻike ʻoe i ka nui o nā hanana a me nā makau a me nā mea ʻē aʻe i hoʻohui ʻia, e maʻalahi loa a, ma kekahi ʻaoʻao, e hoʻohui i ka mana ma luna o nā kaʻina hana a me nā hopena iā lākou.

E maʻalahi ka Helm 3, palekana, a ʻoi aku ka leʻaleʻa, ʻaʻole no ka makemake ʻole iā Helm 2, akā no ka ulu ʻana o Kubernetes. No laila, hiki iā Helm ke hoʻohana i ka hoʻomohala ʻana o Kubernetes a hana i nā mana maikaʻi loa no nā Kubernetes ma luna.

ʻO kekahi nūhou maikaʻi ʻo ia DevOpsConf E haʻi aku ʻo Alexander Khayorov iā ʻoe, hiki ke paʻa nā pahu? E hoʻomanaʻo mākou iā ʻoe e mālama ʻia ka ʻaha kūkā e pili ana i ka hoʻohui ʻana o ka hoʻomohala ʻana, nā hoʻokolohua a me nā kaʻina hana ma Moscow ʻO Kepakemapa 30 a me ʻOkakopa 1. Hiki iā ʻoe ke hana a hiki i ʻAukake 20th waiho i ka hoike a haʻi mai iā mākou e pili ana i kāu ʻike me ka hoʻonā kekahi o na mea he nui nā hana o ke ala DevOps.

E hahai i nā mākaʻikaʻi hālāwai kūkā a me nā nūhou ma papa inoa leka и kaila telegrama.

Source: www.habr.com

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