He maʻalahi a maʻalahi ka hoʻomākaukau ʻana i kahi pūʻulu Kubernetes? Hoʻolaha i ka addon-operator

He maʻalahi a maʻalahi ka hoʻomākaukau ʻana i kahi pūʻulu Kubernetes? Hoʻolaha i ka addon-operator

Mahope iho mea hoʻohana pūpū Hāʻawi mākou i kona kaikuaʻana - mea hoʻohana addon. He papahana Open Source kēia i hoʻohana ʻia e hoʻokomo i nā ʻāpana ʻōnaehana i loko o kahi pūʻulu Kubernetes, hiki ke kapa ʻia nā mea hoʻohui.

No ke aha i hoʻohui ʻia ai?

ʻAʻole ia he mea huna ʻaʻole ʻo Kubernetes kahi huahana āpau i hoʻomākaukau ʻia, a no ke kūkulu ʻana i kahi pūʻulu "ʻelemakule" pono ʻoe i nā mea hoʻohui like ʻole. E kōkua ʻo Addon-operator iā ʻoe e hoʻouka, hoʻonohonoho a mālama i kēia mau mea hoʻohui i ka lā.

Hōʻike ʻia ka pono o nā ʻāpana ʻē aʻe o ka hui hōʻike Nā hoa driusha. I ka pōkole, ʻo ke kūlana me Kubernetes i kēia manawa no kahi hoʻonohonoho maʻalahi "pāʻani a puni" hiki iā ʻoe ke loaʻa me nā ʻāpana o waho o ka pahu, no nā mea hoʻomohala a me nā hoʻāʻo hiki iā ʻoe ke hoʻohui i ka Ingress, akā no kahi hoʻonohonoho piha, e pili ana i ia. hiki iā ʻoe ke ʻōlelo "ua mākaukau kāu hana", pono ʻoe e hoʻohui me nā mea hoʻohui like ʻole: kahi mea no ka nānā ʻana, kahi mea no ka hoʻopaʻa inoa ʻana, mai poina i ka ingress a me ka mana-mana, koho i nā pūʻulu o nā nodes, hoʻohui i nā kulekele pūnaewele, kau. me nā hoʻonohonoho sysctl a me pod autoscaler...

He maʻalahi a maʻalahi ka hoʻomākaukau ʻana i kahi pūʻulu Kubernetes? Hoʻolaha i ka addon-operator

He aha nā kiko'ī o ka hana pū me lākou?

E like me ka hoʻomaʻamaʻa hōʻike, ʻaʻole i kaupalena ʻia ka mea i hoʻokahi hoʻonohonoho. No ka hana ʻoluʻolu me ka puʻupuʻu, pono e hoʻonui hou ʻia nā mea hoʻohui, hoʻopau ʻia (wehe ʻia mai ka pūʻulu), a makemake ʻoe e hoʻāʻo i kekahi ma mua o ka hoʻokomo ʻana iā lākou i ka pūʻulu hana.

No laila, lawa paha ʻo Ansible ma aneʻi? Malia paha. Akā Ma keʻano laulā, ʻaʻole ola nā add-on piha me ka ʻole o nā hoʻonohonoho. He ʻokoʻa paha kēia mau hoʻonohonoho ma muli o ka ʻano hui pū (aws, gce, azure, bare-metal, do, ...). ʻAʻole hiki ke kuhikuhi mua ʻia kekahi mau hoʻonohonoho; pono e kiʻi ʻia mai ka hui. A ʻaʻole paʻa ka puʻupuʻu: no kekahi mau hoʻonohonoho pono ʻoe e nānā i nā loli. A eia ua nalo nei ʻo Ansible: pono ʻoe i kahi papahana e noho ana i kahi pūpū, ʻo ia hoʻi. Mea hoʻohana Kubernetes.

Ka poe i hoao ma ka hana mea hoʻohana pūpū, e ʻōlelo lākou e hiki ke hoʻopau piha ʻia nā hana o ka hoʻokomo ʻana a me ka hoʻonui ʻana i nā mea hoʻohui a me ka nānā ʻana me ka hoʻohana ʻana. makau for shell-operator. Hiki iā ʻoe ke kākau i kahi palapala e hana i kahi kūlana kubectl apply a nānā, no ka laʻana, ConfigMap, kahi e mālama ʻia ai nā hoʻonohonoho. ʻO kēia ka mea i hoʻokō ʻia ma addon-operator.

Pehea e hoʻonohonoho ʻia ai kēia ma addon-operator?

I ka hana ʻana i kahi hoʻonā hou, ua hoʻomaka mākou mai kēia mau loina:

  • Pono e kākoʻo ka mea hoʻokomo hoʻohui ka hoʻolālā a me ka hoʻonohonoho hoʻolaha. ʻAʻole mākou e hana i nā palapala kilokilo e hoʻokomo i nā mea hoʻohui. Hoʻohana ʻo Addon-operator i ka Helm e hoʻokomo i nā mea hoʻohui. No ka hoʻouka ʻana, pono ʻoe e hana i kahi pakuhi a koho i nā waiwai e hoʻohana ʻia no ka hoʻonohonoho.
  • Hiki ke hoʻonohonoho hana ma ka hoʻokomo ʻana, hiki iā lākou kiʻi mai ka pūʻulu, aiʻole loaʻa nā mea hou, ka nānā ʻana i nā kumuwaiwai pūʻulu. Hiki ke hoʻokō ʻia kēia mau hana me ka hoʻohana ʻana i nā makau.
  • Hiki ke hoʻonohonoho hale kūʻai ma kahi hui. No ka mālama ʻana i nā hoʻonohonoho i loko o ka pūʻulu, hana ʻia kahi ConfigMap/addon-operator a hoʻololi ka Addon-operator i kēia ConfigMap. Hāʻawi ʻo Addon-operator i nā makau i nā hoʻonohonoho me ka hoʻohana ʻana i nā kuʻina maʻalahi.
  • Hoʻohui ʻia i nā hoʻonohonoho. Inā ua hoʻololi ʻia nā hoʻonohonoho, a laila hoʻopuka ka Addon-operator i ka pakuhi Helm me nā waiwai hou. Ua kapa mākou i ka hui pū ʻana o ka pakuhi Helm, nā waiwai no ia a me nā lou i kahi module (e ʻike i lalo no nā kikoʻī hou aku).
  • ʻO ke kau ʻana. ʻAʻohe palapala hoʻokuʻu kilokilo. Ua like ka hana hou me ka noi maʻamau - e hōʻiliʻili i nā mea hoʻohui a me nā addon-operators i kahi kiʻi, e kau iā lākou a ʻōwili iā lākou i waho.
  • Ka mana hopena. Hiki i ka Addon-operator ke hāʻawi i nā metric no Prometheus.

He aha ka padding i addon-operator?

Hiki ke noʻonoʻo ʻia kahi hoʻohui i kekahi mea e hoʻohui i nā hana hou i ka hui. No ka laʻana, ʻo ka hoʻokomo ʻana iā Ingress he kumu hoʻohālike maikaʻi loa ia o kahi add-on. Hiki i kēia ke lilo i mea hoʻokele a mea hoʻokele paha me kāna CRD ponoʻī: prometheus-operator, cert-manager, kube-controller-manager, etc. A i ʻole kekahi mea liʻiliʻi, akā maʻalahi ka hoʻohana ʻana - no ka laʻana, kope huna, nāna e kope i nā mea huna registry i nā inoa inoa hou, a i ʻole sysctl tuner, nāna e hoʻonohonoho i nā ʻāpana sysctl ma nā nodes hou.

No ka hoʻokō ʻana i nā mea hoʻohui, hāʻawi ʻo Addon-operator i kekahi mau manaʻo:

  • Papa kuhi helm hoʻohana ʻia e hoʻokomo i nā polokalamu like ʻole i loko o ka pūpū - no ka laʻana, Prometheus, Grafana, nginx-ingress. Inā he pakuhi Helm ka mea i makemake ʻia, a laila maʻalahi loa ka hoʻokomo ʻana me ka hoʻohana ʻana iā Addon-operator.
  • Waihona waiwai. He nui nā hoʻonohonoho ʻokoʻa i hiki ke hoʻololi i nā kiʻi Helm i ka manawa. Kākoʻo ʻo Addon-operator i ka mālama ʻana i kēia mau hoʻonohonoho a hiki ke nānā i kā lākou mau loli i mea e hoʻokomo hou ai i ka pakuhi Helm me nā waiwai hou.
  • Hooki he mau faila hiki ke holo ka Addon-operator ma nā hanana a hiki i ka hale kūʻai waiwai. Hiki i ka makau ke nānā i nā loli i ka hui a hoʻonui i nā waiwai i ka hale kūʻai waiwai. ʻO kēlā mau. Ke hoʻohana nei i nā makau, hiki iā ʻoe ke hana i ka ʻike e hōʻiliʻili i nā waiwai mai ka puʻupuʻu i ka hoʻomaka ʻana a i ʻole e like me ka papa kuhikuhi, a i ʻole hiki iā ʻoe ke hana i ka ʻike mau ʻana, e hōʻiliʻili i nā waiwai mai ka puʻupuʻu e pili ana i nā loli i ka hui.
  • Module he hui ia o kahi pakuhi Helm, hale kūʻai waiwai a me nā makau. Hiki ke hoʻohana a hoʻopau ʻia paha nā modula. ʻO ka hoʻopau ʻana i kahi module, ʻo ia ka holoi ʻana i nā hoʻokuʻu palapala Helm āpau. Hiki i nā modula ke hoʻoikaika iā lākou iho, no ka laʻana, inā hoʻohana ʻia nā modula āpau e pono ai a inā loaʻa ka ʻike i nā ʻāpana kūpono i nā makau - hana ʻia kēia me ka hoʻohana ʻana i kahi hōʻailona kōkua.
  • Hooki honua. ʻO kēia nā makau "ma kā lākou iho", ʻaʻole lākou i hoʻokomo ʻia i loko o nā modula a loaʻa i kahi hale kūʻai waiwai honua, nā waiwai i loaʻa i nā makau āpau i nā modules.

Pehea e hana like ai kēia mau ʻāpana? E nānā kākou i ke kiʻi mai ka palapala.

He maʻalahi a maʻalahi ka hoʻomākaukau ʻana i kahi pūʻulu Kubernetes? Hoʻolaha i ka addon-operator

ʻElua mau hiʻohiʻona hana:

  1. Hoʻomaka ʻia ka makau honua e kekahi hanana - no ka laʻana, ke hoʻololi ʻia kahi kumuwaiwai i loko o ka pūʻulu. Hoʻoponopono kēia makau i nā loli a kākau i nā waiwai hou i ka hale kūʻai waiwai honua. Hoʻomaopopo ka Addon-operator ua loli ka mālama honua a hoʻomaka i nā modula āpau. ʻO kēlā me kēia module, me ka hoʻohana ʻana i kāna mau makau, e hoʻoholo inā pono ia e hoʻā a hoʻonui i kāna hale kūʻai waiwai. Inā ʻae ʻia ka module, hoʻomaka ka Addon-operator i ka hoʻokomo ʻana i ka pakuhi Helm. I kēia hihia, hiki i ka pakuhi Helm ke komo i nā waiwai mai ka mālama ʻana i nā module a mai ka mālama honua.
  2. ʻOi aku ka maʻalahi o ka lua o ka hiʻohiʻona: hoʻomaka ʻia kahi makau module e kahi hanana a hoʻololi i nā waiwai i ka hale kūʻai waiwai o ka module. Hoʻomaopopo ʻo Addon-operator i kēia a hoʻomaka i ka pakuhi Helm me nā waiwai hou.

Hiki ke hoʻokō ʻia ka hoʻohui ʻana ma ke ʻano he makau hoʻokahi, a i ʻole he palapala Helm hoʻokahi, a i ʻole ʻoiai e like me kekahi mau modula hilinaʻi - pili kēia i ka paʻakikī o ka mea i hoʻokomo ʻia i loko o ka pūʻulu a me ka pae i makemake ʻia o ka hiki ke hoʻonohonoho. No ka laʻana, i loko o ka waihona (/ nā laʻana) aia kahi hoʻohui sysctl-tuner, i hoʻokō ʻia ma ke ʻano he module maʻalahi me kahi makau a me kahi pakuhi Helm, a me ka hoʻohana ʻana i ka hale kūʻai waiwai, kahi e hiki ai ke hoʻohui i nā hoʻonohonoho ma ka hoʻoponopono ʻana i ka ConfigMap.

Hāʻawi i nā mea hou

ʻO kekahi mau huaʻōlelo e pili ana i ka hoʻonohonoho ʻana i nā mea hou i hoʻokomo ʻia e Addon-operator.

No ka holo ʻana i Addon-operator i kahi hui, pono ʻoe kūkulu i kiʻi me nā mea hoʻohui ma ke ano o ka hook a me ka Helm kiʻi waihona, e hoʻohui i kahi waihona binary addon-operator a me nā mea a pau āu e pono ai no nā makau: bash, kubectl, jq, python etc. A laila hiki ke ʻōwili ʻia kēia kiʻi i ka pūʻulu ma ke ʻano he noi maʻamau, a makemake paha ʻoe e hoʻonohonoho i hoʻokahi a i ʻole kekahi papa kuhikuhi. Inā he liʻiliʻi nā puʻupuʻu, kūpono ke ala like me nā noi: hoʻokuʻu hou, mana hou, hele i nā pūʻulu āpau a hoʻoponopono i ke kiʻi o nā Pods. Eia nō naʻe, ma ke ʻano o ka ʻōwili ʻia ʻana i kahi helu nui o nā puʻupuʻu, ʻoi aku ka maikaʻi o ka manaʻo o ka hoʻonui ʻana iā ia iho mai kahi kahawai.

Penei kā mākou hana ʻana:

  • ʻO ke ala he mea hōʻike i hiki ke hoʻonohonoho ʻia i kekahi mea (e laʻa, dev/stage/ea/stable).
  • ʻO ka inoa o ke kahawai ka hōʻailona kiʻi. I ka wā e pono ai ʻoe e ʻōwili i nā mea hou i kahi kahawai, ʻākoakoa ʻia kahi kiʻi hou a kau ʻia me ka inoa o ke kahawai.
  • Ke ʻike ʻia kahi kiʻi hou i ka papa inoa, hoʻomaka hou ʻo Addon-operator a hoʻomaka me ke kiʻi hou.

ʻAʻole kēia he hana maikaʻi loa, e like me ka mea i kākau ʻia ma Nā palapala Kubernetes. ʻAʻole ʻōlelo ʻia e hana i kēia, akā ke kamaʻilio nei mākou he palapala noi maʻamau e noho ana i loko o ka pūʻulu like. I ka hihia o Addon-operator, he noi ka nui o nā Deployments i hoʻopuehu ʻia ma nā pūʻulu, a ʻo ka hoʻomaikaʻi ʻana iā ia iho e kōkua nui a hoʻomāmā i ke ola.

Kōkua nā alahele a ma ka hoao ana: inā he pūʻulu kōkua, hiki iā ʻoe ke hoʻonohonoho iā ia i ke kahawai stage a ʻōwili i nā mea hou i loko o ia mea ma mua o ka ʻōwili ʻana i waho i nā kahawai ea и stable. Inā me kahi hui ma ke kahawai ea ua hewa, hiki iā ʻoe ke hoʻololi iā ia i stable, ʻoiai ke noiʻi ʻia nei ka pilikia o kēia pūʻulu. Inā lawe ʻia ka puʻupuʻu mai ke kākoʻo ikaika, hoʻololi ʻo ia i kāna kahawai "hau" - no ka laʻana, freeze-2019-03-20.

Ma waho aʻe o ka hoʻonui ʻana i nā makau a me nā palapala Helm, pono paha ʻoe hōʻano hou a me ka ʻaoʻao ʻekolu. No ka laʻana, ʻike ʻoe i kahi bug i ka node-exporter conditional a noʻonoʻo ʻoe pehea e hoʻopili ai. Ma hope aʻe, ua wehe ʻoe i ka PR a ke kali nei i ka hoʻokuʻu hou e hele i nā pūʻulu āpau a hoʻonui i ka mana o ke kiʻi. I ʻole e kali mau ʻole, hiki iā ʻoe ke kūkulu i kāu node-exporter a hoʻololi iā ia ma mua o ka ʻae ʻana i ka PR.

Ma keʻano laulā, hiki ke hana i kēia me ka ʻole o Addon-operator, akā me Addon-operator e ʻike ʻia ka module no ka hoʻokomo ʻana i ka node-exporter i hoʻokahi waihona, hiki ke mālama ʻia ka Dockerfile no ke kūkulu ʻana i kāu kiʻi ma laila, lilo ia i mea maʻalahi no ka poʻe komo i loko. ke kaʻina hana e hoʻomaopopo i ka mea e hana nei ... A inā he nui nā pūʻulu, a laila e maʻalahi ka hoʻāʻo ʻana i kāu PR a ʻōwili i kahi mana hou!

Ke hana maikaʻi nei kēia hui o ka hoʻonui ʻana i nā ʻāpana iā mākou, akā hiki ke hoʻokō ʻia kekahi papahana kūpono - ma hope o nā mea āpau i kēia hihia ʻo Addon-operator kahi faila binary maʻalahi.

hopena

ʻO nā loina i hoʻokō ʻia ma Addon-operator e ʻae iā ʻoe e kūkulu i kahi kaʻina hana akaka no ka hana ʻana, hoʻāʻo, hoʻokomo a hoʻonui i nā mea hoʻohui i loko o kahi pūʻulu, e like me nā kaʻina hana o nā noi maʻamau.

Hiki ke hoʻolaha ʻia nā mea hoʻohui no Addon-operator ma ke ʻano module (Helm chart + hooks). Hoʻolālā mākou, ʻo ka hui ʻo Flant, e hoʻolaha i kā mākou mau hoʻomohala ma ke ʻano o ia mau mea hoʻohui i ke kauwela. E hui pū i ka hoʻomohala ʻana ma GitHub (mea hoʻohana pūpū, mea hoʻohana addon), e ho'āʻo e hana i kāu hoʻohui ponoʻī ma muli o nā hiʻohiʻona и palapala, e kali no ka nūhou ma Habré a me kā mākou Kaila YouTube!

PS

E heluhelu pū ma kā mākou blog:

Source: www.habr.com

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