ʻO ka mea Helm a me kāna mau lua

ʻO ka mea Helm a me kāna mau lua
ʻO ka manaʻo o Typhon freight hauler, Anton Swanepoel

ʻO Dmitry Sugrobov koʻu inoa, he mea hoʻomohala wau ma Leroy Merlin. Ma kēia ʻatikala e haʻi aku wau iā ʻoe i ke kumu e pono ai ʻo Helm, pehea e maʻalahi ai ka hana ʻana me Kubernetes, ka mea i hoʻololi ʻia i ke kolu o ka mana, a pehea e hoʻohana ai e hoʻonui i nā noi i ka hana ʻana me ka ʻole o ka downtime.

He hōʻuluʻulu kēia e pili ana i kahi haʻiʻōlelo ma kahi hālāwai kūkā @Kubernetes Hui by Mail.ru Cloud Solutions - inā ʻaʻole ʻoe makemake e heluhelu, e nānā i ke wikiō.

No ke aha mākou e hoʻohana ai i nā Kubernetes i ka hana

He alakaʻi ʻo Leroy Merlin i ka mākeke kūʻai DIY ma Rūsia a me ʻEulopa. ʻOi aku ka nui o kā mākou hui ma mua o hoʻokahi haneli mau mea hoʻomohala, 33 mau limahana kūloko a me kahi helu nui o ka poʻe e kipa ana i nā hypermarkets a me ka pūnaewele. I mea e hauʻoli ai lākou a pau, ua hoʻoholo mākou e hahai i nā ala maʻamau o ka ʻoihana. E hoʻomohala i nā noi hou me ka hoʻohana ʻana i ka hoʻolālā microservice; e hoʻohana i nā pahu e hoʻokaʻawale i nā kaiapuni a e hōʻoia i ka lawe pono ʻana; a hoʻohana i nā Kubernetes no ka hoʻokani pila. ʻO ke kumu kūʻai o ka hoʻohana ʻana i nā mea hoʻokani pila ke ʻoi aku ka liʻiliʻi: ke ulu nei ka nui o nā ʻenekinia akamai i ka ʻenehana ma ka mākeke, a ke ʻike ʻia nei nā mea hoʻolako e hāʻawi iā Kubernetes ma ke ʻano he lawelawe.

ʻO nā mea a pau a Kubernetes e hana ai, ʻoiaʻiʻo, hiki ke hana ʻia ma nā ʻano ʻē aʻe, no ka laʻana, ma ka uhi ʻana i kekahi mau Jenkins a docker-compose me nā palapala, akā no ke aha e hoʻopili ai i ke ola inā aia kahi hoʻonā mākaukau a hilinaʻi? ʻO ia ke kumu i hele mai ai mākou i Kubernetes a ua hoʻohana mākou iā ia i ka hana ʻana no hoʻokahi makahiki i kēia manawa. Loaʻa iā mākou i kēia manawa he iwakāluakūmāhā mau pūʻulu Kubernetes, ʻo ka mea kahiko loa i ʻoi aku ma mua o hoʻokahi makahiki, me ʻelua haneli poʻo.

ʻO ka hōʻino o nā faila YAML nui ma Kubernetes

No ka hoʻomaka ʻana i kahi microservice ma Kubernetes, e hana mākou i ʻelima mau faila YAML: no Deployment, Service, Ingress, ConfigMap, Secrets - a hoʻouna iā lākou i ka hui. No ka palapala aʻe e kākau mākou i ka pūʻolo o nā jambs, me ke kolu e kākau mākou i kekahi, a pēlā aku. Inā mākou e hoʻonui i ka helu o nā palapala me ka helu o nā kaiapuni, e loaʻa iā mākou he mau haneli o nā faila, ʻaʻole kēia e noʻonoʻo i nā kaiapuni ikaika.

ʻO ka mea Helm a me kāna mau lua
Ua hoʻokomo ʻo Adam Reese, ka mea mālama nui o Helm, i ka manaʻo o "ʻO ka pōʻai hoʻomohala ma Kubernetes", e like me kēia:

  1. Kopi YAML - kope i kahi faila YAML.
  2. Hoʻopili iā YAML - hoʻopili iā ia.
  3. Fix Indents - hoʻoponopono i nā indents.
  4. E hana hou - e hana hou.

Hiki ke koho, akā pono ʻoe e kope i nā faila YAML i nā manawa he nui. No ka hoʻololi ʻana i kēia pōʻai, ua hana ʻia ʻo Helm.

He aha ka Helm

ʻO ka mea mua, Helm - luna pūʻolo, e kōkua iā ʻoe e ʻimi a hoʻokomo i nā polokalamu āu e pono ai. No ka hoʻouka ʻana, no ka laʻana, MongoDB, ʻaʻole pono ʻoe e hele i ka pūnaewele mana a hoʻoiho i nā binaries, e holo wale i ke kauoha helm install stable/mongodb.

ʻO ka lua, Helm - mīkini hoʻohālike, kōkua i ka hoʻohālikelike ʻana i nā faila. E hoʻi kākou i ke kūlana me nā faila YAML ma Kubernetes. ʻOi aku ka maʻalahi o ke kākau ʻana i ka faila YAML like, e hoʻohui i kekahi mau wahi i laila, kahi e hoʻololi ai ʻo Helm i nā waiwai. ʻO ia hoʻi, ma kahi o kahi hoʻonohonoho nui o nā scaffolds, e loaʻa kahi hoʻonohonoho o nā templates kahi e hoʻololi ʻia ai nā waiwai i makemake ʻia i ka manawa kūpono.

ʻO ke kolu, Helm - haku hoʻolaha. Me ia hiki iā ʻoe ke hoʻouka, rollback a hoʻonui i nā noi. E noʻonoʻo kākou pehea e hana ai i kēia.

ʻO ka mea Helm a me kāna mau lua

Pehea e hoʻohana ai iā Helm e kau i kāu mau noi ponoʻī

E hoʻokomo i ka mea kūʻai Helm ma kāu kamepiula, ma muli o ka mana nā kuhikuhi. A laila, e hana mākou i kahi hoʻonohonoho o nā faila YAML. Ma kahi o ka wehewehe ʻana i nā waiwai kikoʻī, e haʻalele mākou i nā mea paʻa, kahi e hoʻopiha ai ʻo Helm i ka ʻike i ka wā e hiki mai ana. Ua kapa ʻia kahi pūʻulu o ia mau faila he pakuhi Helm. Hiki ke hoʻouna ʻia i ka mea kūʻai aku ʻo Helm console ma ʻekolu ala:

  • hōʻike i kahi waihona me nā mamana;
  • e hoʻopili i ka waihona i loko o kahi .tar a kuhikuhi iā ia;
  • e hoʻokomo i ka laʻana ma kahi waihona mamao a hoʻohui i kahi loulou i ka waihona i ka mea kūʻai Helm.

Pono ʻoe i kahi faila me nā waiwai - values.yaml. E hoʻokomo ʻia ka ʻikepili mai laila mai i loko o ka template. E hana pū kākou.

ʻO ka mea Helm a me kāna mau lua
ʻO ka lua o ka Helm he noi kikowaena hou - Tiller. Kau ʻo ia ma waho o Kubernetes a kali i nā noi mai ka mea kūʻai Helm, a ke kāhea ʻia, hoʻololi i nā waiwai i koi ʻia i loko o ka template a hoʻouna iā Kubernetes.

ʻO ka mea Helm a me kāna mau lua
ʻOi aku ka maʻalahi o ka Helm 3: ma kahi o ka hoʻoponopono ʻana i nā mamana ma ke kikowaena, ua hana ʻia ka ʻike ma ka ʻaoʻao mea kūʻai aku Helm a hoʻouna pololei ʻia i ka Kubernetes API. Hoʻonui kēia maʻalahi i ka palekana cluster a hoʻomaʻamaʻa i ka hoʻolālā rollout.

Pehea ka hana a pau

Holo i ke kauoha helm install. E hōʻike i ka inoa o ka hoʻokuʻu noi a hāʻawi i ke ala i values.yaml. I ka hopena, e hōʻike mākou i ka waihona kahi i loaʻa ai ka pakuhi a me ka inoa o ka pakuhi. Ma ka laʻana, ʻo ia nā "lmru" a me "bestchart", kēlā me kēia.

helm install --name bestapp --values values.yaml lmru/bestchart

Hiki ke hoʻokō ʻia ke kauoha i hoʻokahi wale nō, ke hoʻokō hou ʻia install pono e hoohana upgrade. No ka maʻalahi, ma kahi o nā kauoha ʻelua, hiki iā ʻoe ke holo i ke kauoha upgrade me ke kī hou --install. Ke hoʻokō ʻia no ka manawa mua, e hoʻouna ʻo Helm i kahi kauoha e hoʻokomo i ka hoʻokuʻu ʻana, a e hōʻano hou ia i ka wā e hiki mai ana.

helm upgrade --install bestapp --values values.yaml lmru/bestchart

Nā pōʻino o ka lawe ʻana i nā mana hou o kahi noi me Helm

I kēia manawa o ka moʻolelo, ke pāʻani nei au i ka Who Wants to Be a Millionaire me ka lehulehu, a ke noʻonoʻo nei mākou pehea e loaʻa ai iā Helm e hōʻano hou i ka mana o ka app. E nānā i ka wikiō.

I koʻu aʻo ʻana i ka hana ʻana o Helm, ua pūʻiwa wau i ka ʻano ʻano ʻē i ka wā e hoʻāʻo ai e hoʻonui i nā mana o nā noi holo. Ua hōʻano hou au i ke code noi, hoʻouka i kahi kiʻi hou i ka Docker registry, hoʻouna i ke kauoha hoʻolālā - ʻaʻohe mea i hana. Aia ma lalo kekahi mau ala holomua ʻole e hoʻopou i nā noi. Ma ke aʻo ʻana i kēlā me kēia o lākou i nā kikoʻī hou aku, hoʻomaka ʻoe e hoʻomaopopo i ke ʻano o loko o ka mea kani a me nā kumu o kēia ʻano ʻike ʻole.

Ke Kaʻina Hana 1. Mai hoʻololi i ka ʻike mai ka hoʻomaka hope ʻana

E like me ka olelo ana kahua pūnaewele Helm, "He nui a paʻakikī paha nā palapala Kubernetes, no laila e hoʻāʻo ʻo Helm e hoʻopā ʻole i kekahi mea." No laila, inā hōʻano hou ʻoe i ka mana hou loa o ke kiʻi noi ma ka papa inoa docker a holo i ke kauoha helm upgrade, a laila ʻaʻohe mea e hiki mai. Manaʻo ʻo Helm ʻaʻohe mea i loli a ʻaʻohe pono e hoʻouna i kahi kauoha iā Kubernetes e hoʻonui i ka noi.

Ma ʻaneʻi a ma lalo, hōʻike ʻia ka hōʻailona hou loa ma ke ʻano he laʻana. Ke kuhikuhi ʻoe i kēia hōʻailona, ​​​​e hoʻoiho ʻo Kubernetes i ke kiʻi mai ka papa inoa docker i kēlā me kēia manawa, me ka nānā ʻole i ke ʻano o ka imagePullPolicy. ʻAʻole makemake ʻia ka hoʻohana ʻana i nā mea hou i ka hana a ke kumu i nā hopena ʻaoʻao.

Hana 2. Hoʻohou LABEL ma ke kiʻi

E like me ka mea i kākau ʻia ma ka like palapala, "E hōʻano hou ʻo Helm i kahi noi inā ua loli ia mai ka hoʻokuʻu hope ʻana." ʻO kahi koho kūpono no kēia mea e hoʻonui ana i ka LABEL i ke kiʻi docker ponoʻī. Eia naʻe, ʻaʻole nānā ʻo Helm i nā kiʻi noiʻi a ʻaʻohe manaʻo e pili ana i nā loli iā lākou. No laila, i ka wā e hoʻonui ai i nā lepili ma ke kiʻi, ʻaʻole ʻike ʻo Helm e pili ana iā lākou, a ʻaʻole e hoʻouna ʻia ke kauoha hoʻopono noi iā Kubernetes.

Kaʻina 3: E hoʻohana i kahi kī --force

ʻO ka mea Helm a me kāna mau lua
E huli kākou i nā manuale a e ʻimi i ke kī i makemake ʻia. ʻO ke kī ka manaʻo nui loa --force. ʻOiai ka inoa maopopo, ʻokoʻa ke ʻano mai ka mea i manaʻo ʻia. Ma kahi o ka hoʻoikaika ʻana i kahi noi noi, ʻo kāna kumu maoli ka hoʻihoʻi ʻana i kahi hoʻokuʻu i ke kūlana FAILED. Inā ʻaʻole ʻoe e hoʻohana i kēia kī, pono ʻoe e hoʻokō i nā kauoha i ka sequentially helm delete && helm install --replace. Manaʻo ʻia e hoʻohana i ke kī --force, ka mea e hoʻokaʻawale i ka hoʻokō ʻana i kēia mau kauoha. ʻIke hou aku ma kēia noi huki. I mea e haʻi aku ai iā Helm e hōʻano hou i ka mana noi, akā, ʻaʻole e hana kēia kī.

Kaʻina 4. Hoʻololi pololei i nā lepili ma Kubernetes

ʻO ka mea Helm a me kāna mau lua
Ke hoʻololi pololei nei i ka lepili ma ka pūʻulu me ke kauoha kubectl edit - manaʻo maikaʻi ʻole. E alakaʻi ana kēia hana i ka like ʻole o ka ʻike ma waena o ka noi holo ʻana a me ka mea i hoʻouna mua ʻia no ka waiho ʻana. ʻOkoʻa ka ʻano o Helm i ka wā e hoʻoili ʻia ai i kēia hihia: ʻAʻole e hana ʻo Helm 2 i kekahi mea, a e kau ʻo Helm 3 i ka mana hou o ka noi. No ka hoʻomaopopo ʻana i ke kumu, pono ʻoe e hoʻomaopopo i ka hana ʻana o Helm.

Pehea ka hana o Helm?

No ka hoʻoholo ʻana inā ua loli kahi noi mai kona hoʻokuʻu hope ʻana, hiki iā Helm ke hoʻohana:

  • e holo ana i ka palapala noi ma Kubernetes;
  • nā waiwai hou.yaml a me ka pakuhi o kēia manawa;
  • ʻIke hoʻokuʻu kūloko o Helm.

No ka ʻike hou aku: ma hea kahi e mālama ai ʻo Helm i ka ʻike kūloko e pili ana i nā hoʻokuʻu?Ma ka hoʻokō ʻana i ke kauoha helm history, e loaʻa iā mākou ka ʻike āpau e pili ana i nā mana i hoʻokomo ʻia me ka hoʻohana ʻana iā Helm.

ʻO ka mea Helm a me kāna mau lua
Aia kekahi ʻike kikoʻī e pili ana i nā mamana i hoʻouna ʻia a me nā waiwai. Hiki iā mākou ke noi:

ʻO ka mea Helm a me kāna mau lua
Ma ka ʻaoʻao ʻelua o Helm, aia kēia ʻike ma ka inoa inoa like kahi e holo ai ʻo Tiller (kube-system ma ka paʻamau), ma ka ConfigMap, i kaha ʻia me ka lepili "OWNER=TILLER":

ʻO ka mea Helm a me kāna mau lua
I ka puka ʻana mai o ka mana ʻekolu o Helm, ua neʻe ka ʻike i nā mea huna, a i ka inoa inoa like kahi e holo ai ka noi. Mahalo i kēia, ua hiki ke holo i kekahi mau noi i ka manawa like ma nā inoa inoa like ʻole me ka inoa hoʻokuʻu like. Ma ka ʻaoʻao ʻelua, he maʻi poʻo koʻikoʻi ke hoʻokaʻawale ʻia nā inoa inoa akā hiki ke hoʻoikaika kekahi i kekahi.

ʻO ka mea Helm a me kāna mau lua

ʻO ka Helm ʻelua, i ka wā e hoʻāʻo ai e hoʻomaopopo inā makemake ʻia kahi mea hou, hoʻohana i ʻelua mau kumu o ka ʻike: ka mea i hāʻawi ʻia iā ia i kēia manawa, a me ka ʻike kūloko e pili ana i nā hoʻokuʻu, aia ma ka ConfigMap.

ʻO ka mea Helm a me kāna mau lua
Hoʻohana ka Helm ʻekolu i kahi hoʻolālā hoʻohui ʻekolu ala: ma waho aʻe o kēlā ʻike, e noʻonoʻo pū i ka noi e holo nei i kēia manawa ma Kubernetes.

ʻO ka mea Helm a me kāna mau lua
No kēia kumu, ʻaʻole e hana ka mana kahiko o Helm, no ka mea, ʻaʻole ia e noʻonoʻo i ka ʻike noi i loko o ka pūʻulu, akā e loaʻa iā Helm 3 nā loli a hoʻouna i ka noi hou no ka waiho ʻana.

Kaʻina 5. E hoʻohana i ka hoʻololi --recreate-pods

Me kahi kī --recreate-pods hiki iā ʻoe ke hoʻokō i ka mea āu i hoʻolālā mua ai e hoʻokō me ke kī --force. E hoʻomaka hou nā ipu a, e like me ke kiʻiPullPolicy: Ke kulekele mau no ka hōʻailona hou loa (ʻoi aku ma kēia ma ka footnote ma luna), e hoʻoiho ʻo Kubernetes a hoʻomaka i kahi mana hou o ke kiʻi. ʻAʻole e hana ʻia kēia ma ke ala maikaʻi loa: me ka ʻole e noʻonoʻo i ka StrategyType of deployment, e hoʻopau koke ia i nā manawa noi kahiko a hoʻomaka e hoʻomaka i nā mea hou. I ka hoʻomaka hou ʻana, ʻaʻole e hana ka ʻōnaehana, pilikia nā mea hoʻohana.

Ma Kubernetes pono'ī, ua lōʻihi kekahi pilikia like. A i kēia manawa, 4 mau makahiki ma hope o ka wehe ʻana pukana, ua hoʻoponopono ʻia ka pilikia, a hoʻomaka me ka mana 1.15 o Kubernetes, ʻike ʻia ka hiki ke ʻōwili hou i nā pods.

Hoʻopau wale ʻo Helm i nā noi āpau a hoʻokuʻu i nā ipu hou ma kahi kokoke. ʻAʻole hiki iā ʻoe ke hana i kēia i ka hana ʻana, i ʻole e hoʻoiho i ka manawa hoʻohana. Pono wale kēia no nā pono hoʻomohala a hiki ke hana ʻia ma nā wahi kaiapuni.

Pehea e hoʻonui ai i ka mana noi me ka hoʻohana ʻana iā Helm?

E hoʻololi mākou i nā waiwai i hoʻouna ʻia iā Helm. ʻO ka maʻamau, he mau waiwai kēia i hoʻololi ʻia ma kahi o ka tag kiʻi. I ka hihia o nā mea hou loa, i hoʻohana pinepine ʻia no nā kaiapuni unproductive, he annotation ka ʻike hoʻololi, he mea ʻole ia no Kubernetes ponoʻī, a no Helm e hana ia i hōʻailona no ka pono e hoʻonui i ka noi. Nā koho no ka hoʻopiha ʻana i ka waiwai hōʻike:

  1. Waiwai random hoʻohana i ka hana maʻamau - {{ randAlphaNum 6 }}.
    Aia kahi hoʻopaʻa: ma hope o kēlā me kēia kau ʻana me ka hoʻohana ʻana i kahi pakuhi me kēlā ʻano hoʻololi, ʻokoʻa ka waiwai o ka hōʻike, a manaʻo ʻo Helm he mau loli. ʻIke ʻia e hoʻomaka hou mākou i ka noi, ʻoiai inā ʻaʻole mākou i hoʻololi i kāna ʻano. ʻAʻole koʻikoʻi kēia, no ka mea, ʻaʻohe manawa hoʻomaha, akā maikaʻi ʻole ia.
  2. Hoʻopili i kēia manawa lā a me ka manawa - {{ .Release.Date }}.
    Ua like ka ʻokoʻa me ka waiwai kūpilikiʻi me ka loli kū hoʻokahi.
  3. ʻO kahi ala kūpono e hoʻohana helu helu. ʻO kēia ka SHA o ke kiʻi a i ʻole ka SHA o ka hana hope loa i ka git - {{ .Values.sha }}.
    Pono lākou e helu ʻia a hoʻouna ʻia i ka mea kūʻai aku Helm ma ka ʻaoʻao kelepona, no ka laʻana ma Jenkins. Inā ua loli ka noi, a laila e loli ka checksum. No laila, e hōʻano hou ʻo Helm i ka noi inā pono.

E hōʻuluʻulu mākou i kā mākou ho'āʻo

  • Hoʻololi ʻo Helm i nā ala liʻiliʻi loa, no laila ʻaʻole e hoʻololi ʻia kahi hoʻololi i ka pae kiʻi noi ma ka Docker Registry: ʻaʻohe mea e hana ma hope o ka hoʻokō ʻia ʻana o ke kauoha.
  • Kaomi --force hoʻohana ʻia e hoʻihoʻi i nā hoʻokuʻu pilikia a ʻaʻole pili pū me nā hoʻopiʻi koi.
  • Kaomi --recreate-pods e hōʻano hou i nā noi, akā e hana ia ma kahi ala ʻino: e hoʻopau koke ia i nā pahu āpau. E pilikia nā mea hoʻohana i kēia; ʻaʻole pono ʻoe e hana i kēia i ka hana.
  • E hoʻololi pololei i ka pūʻulu Kubernetes me ke kauoha kubectl edit ʻaʻole: e uhaki mākou i ke kūlike, a ʻokoʻa ka ʻano ma muli o ka mana o Helm.
  • Me ka hoʻokuʻu ʻana o ka mana hou o Helm, ua ʻike ʻia nā nuances he nui. Hōʻike ʻia nā pilikia ma ka waihona Helm ma ka ʻōlelo maopopo, e kōkua lākou iā ʻoe e hoʻomaopopo i nā kikoʻī.
  • ʻO ka hoʻohui ʻana i kahi hōʻike hoʻoponopono i ka pakuhi e maʻalahi ia. E ʻae kēia iā ʻoe e ʻōwili pololei i ka noi, me ka ʻole o ka downtime.

ʻO ka manaʻo "maluhia honua" e hana ana ma nā wahi āpau o ke ola: heluhelu i nā kuhikuhi ma mua o ka hoʻohana ʻana, ʻaʻole ma hope. Me ka ʻike piha wale nō e hiki ai ke kūkulu i nā ʻōnaehana hilinaʻi a hauʻoli i nā mea hoʻohana.

Nā loulou pili ʻē aʻe:

  1. kamaaina me Helm 3
  2. Helm punaewele official
  3. Helm waihona ma GitHub
  4. 25 Mea Pono Kubernetes: Hoʻolālā a Hoʻokele

Ua hoike mua ia keia hoike ma @Kubernetes Hui na Mail.ru Cloud Solutions. Nānā wikiō nā hana ʻē aʻe a kau inoa i nā hoʻolaha hanana ma Telegram A puni nā Kubernetes ma Mail.ru Group.

Source: www.habr.com

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