Kubernetes පොකුරක් සකස් කිරීම පහසු සහ පහසු ද? addon-operator නිවේදනය කරමින්

Kubernetes පොකුරක් සකස් කිරීම පහසු සහ පහසු ද? addon-operator නිවේදනය කරමින්

පසු shell-operator අපි ඔහුගේ වැඩිමහල් සහෝදරයා ඉදිරිපත් කරමු - addon-operator. මෙය විවෘත මූලාශ්‍ර ව්‍යාපෘතියක් වන අතර එය ඇඩෝන ලෙස හැඳින්විය හැකි Kubernetes පොකුරකට පද්ධති සංරචක ස්ථාපනය කිරීමට භාවිතා කරයි.

කොහෙත්ම එකතු කිරීම් ඇයි?

Kubernetes සූදානම් කළ සියල්ලෙන් එක නිෂ්පාදනයක් නොවන බව රහසක් නොවේ, සහ "වැඩිහිටි" පොකුරක් තැනීමට ඔබට විවිධ එකතු කිරීම් අවශ්ය වනු ඇත. ඇඩෝන-ක්‍රියාකරු ඔබට මෙම ඇඩෝන ස්ථාපනය කිරීමට, වින්‍යාස කිරීමට සහ යාවත්කාලීනව තබා ගැනීමට උදවු කරයි.

පොකුරේ අතිරේක සංරචක සඳහා අවශ්යතාවය අනාවරණය වේ වාර්තාව සගයන් ඩ්රියුෂා. කෙටියෙන් කිවහොත්, මේ මොහොතේ Kubernetes සමඟ ඇති තත්වය නම්, සරල “සෙල්ලම් කරන්න” ස්ථාපනය සඳහා ඔබට කොටුවෙන් පිටත සංරචක සමඟින් ලබා ගත හැකිය, සංවර්ධකයින් සහ පරීක්ෂණ සඳහා ඔබට ඇතුල්වීම එකතු කළ හැකිය, නමුත් සම්පූර්ණ ස්ථාපනය සඳහා, ඒ ගැන ඔබට “ඔබේ නිෂ්පාදනය සූදානම්” යැයි පැවසිය හැකිය, ඔබට විවිධ ඇඩෝන දුසිමක් සමඟ එකතු කළ යුතුය: නිරීක්ෂණ සඳහා යමක්, ලොග් වීම සඳහා යමක්, ඇතුල්වීම සහ සහතික කළමණාකරු අමතක නොකරන්න, නෝඩ් කණ්ඩායම් තෝරන්න, ජාල ප්‍රතිපත්ති එකතු කරන්න, වාරය sysctl සහ pod autoscaler සැකසුම් සමඟ...

Kubernetes පොකුරක් සකස් කිරීම පහසු සහ පහසු ද? addon-operator නිවේදනය කරමින්

ඔවුන් සමඟ වැඩ කිරීමේ විශේෂතා මොනවාද?

ප්රායෝගිකව පෙන්නුම් කරන පරිදි, කාරණය එක් ස්ථාපනයකට සීමා නොවේ. පොකුර සමඟ සැපපහසු ලෙස වැඩ කිරීමට, ඇඩෝන යාවත්කාලීන කිරීමට, අක්‍රිය කිරීමට (පොකුරෙන් ඉවත් කිරීමට) අවශ්‍ය වනු ඇත, සහ නිෂ්පාදන පොකුරේ ඒවා ස්ථාපනය කිරීමට පෙර ඒවා පරීක්ෂා කිරීමට ඔබට අවශ්‍ය වනු ඇත.

ඉතින්, සමහර විට Ansible මෙහි ප්රමාණවත් වනු ඇත? සමහර විට. එහෙත් පොදුවේ ගත් කල, සම්පූර්ණ ඇඩෝන සැකසීම් නොමැතිව ජීවත් නොවේ. මෙම සිටුවම් පොකුරු ප්‍රභේදය අනුව වෙනස් විය හැක (aws, gce, azure, bare-metal, do, ...). සමහර සැකසුම් කල්තියා සඳහන් කළ නොහැක; ඒවා පොකුරෙන් ලබා ගත යුතුය. තවද පොකුර ස්ථිතික නොවේ: සමහර සැකසුම් සඳහා ඔබට වෙනස්කම් නිරීක්ෂණය කිරීමට සිදුවනු ඇත. තවද මෙහි Ansible දැනටමත් අතුරුදහන් වී ඇත: ඔබට පොකුරක් තුළ ජීවත් වන වැඩසටහනක් අවශ්ය වේ, i.e. Kubernetes ක්රියාකරු.

රැකියාවේදී එය උත්සාහ කළ අය shell-operator, ඇඩෝන ස්ථාපනය සහ යාවත්කාලීන කිරීමේ කාර්යයන් සහ අධීක්ෂණ සැකසුම් භාවිතයෙන් සම්පූර්ණයෙන්ම විසඳිය හැකි බව ඔවුන් පවසනු ඇත. කොකු shell-operator සඳහා. ඔබට කොන්දේසි සහිත පිටපතක් ලිවිය හැකිය kubectl apply සහ අධීක්ෂණය, උදාහරණයක් ලෙස, සැකසුම් ගබඩා කරනු ලබන ConfigMap. ඇඩෝන-ක්‍රියාකරු තුළ ක්‍රියාත්මක වන්නේ ආසන්න වශයෙන් මෙයයි.

addon-operator තුළ මෙය සංවිධානය වන්නේ කෙසේද?

නව විසඳුමක් නිර්මාණය කිරීමේදී, අපි පහත සඳහන් මූලධර්ම වලින් ඉදිරියට ගියෙමු:

  • ඇඩෝන ස්ථාපකය සහාය විය යුතුය සැකිලි සහ ප්රකාශන වින්යාසය. අපි ඇඩෝන ස්ථාපනය කරන මැජික් ස්ක්‍රිප්ට් සාදන්නේ නැත. ඇඩෝන ස්ථාපනය කිරීමට ඇඩෝන-ක්‍රියාකරු හෙල්ම් භාවිතා කරයි. ස්ථාපනය කිරීමට, ඔබට ප්‍රස්ථාරයක් සාදා වින්‍යාසය සඳහා භාවිතා කරන අගයන් තෝරා ගත යුතුය.
  • සැකසුම් විය හැක ස්ථාපනය මත උත්පාදනය කරන්න, ඔවුන්ට පුළුවන් පොකුරෙන් ලබා ගන්න, හෝ යාවත්කාලීන ලබා ගන්න, පොකුරු සම්පත් අධීක්ෂණය. මෙම මෙහෙයුම් කොකු භාවිතයෙන් ක්රියාත්මක කළ හැකිය.
  • සැකසුම් විය හැක පොකුරක් තුළ ගබඩා කරන්න. පොකුරේ සිටුවම් ගබඩා කිරීම සඳහා, ConfigMap/addon-operator එකක් සාදනු ලබන අතර Addon-operator මෙම ConfigMap වෙත වෙනස්කම් නිරීක්ෂණය කරයි. ඇඩෝන-ක්‍රියාකරු සරල සම්මුතීන් භාවිතයෙන් කොකුවලට සිටුවම් වෙත ප්‍රවේශය ලබා දෙයි.
  • එකතු කිරීම සැකසුම් මත රඳා පවතී. සැකසුම් වෙනස් වී ඇත්නම්, ඇඩෝන-ක්‍රියාකරු නව අගයන් සමඟ හෙල්ම් ප්‍රස්ථාරය නිකුත් කරයි. අපි හෙල්ම් ප්‍රස්ථාරයේ සංයෝජනය, ඒ සඳහා අගයන් සහ මොඩියුලය කොකු ලෙස හැඳින්වුවෙමු (වැඩිදුර විස්තර සඳහා පහත බලන්න).
  • වේදිකාගත කිරීම. මැජික් මුදා හැරීමේ පිටපත් නොමැත. යාවත්කාලීන යාන්ත්‍රණය සාමාන්‍ය යෙදුමකට සමාන වේ - ඇඩෝන සහ ඇඩෝන-ක්‍රියාකරුවන් රූපයකට එකතු කර, ඒවා ටැග් කර ඒවා රෝල් කරන්න.
  • ප්රතිඵල පාලනය. ඇඩෝන-ක්‍රියාකරුට ප්‍රොමිතියස් සඳහා ප්‍රමිතික සැපයිය හැක.

addon-operator හි padding යනු කුමක්ද?

එකතු කිරීමක් පොකුරට නව කාර්යයන් එකතු කරන ඕනෑම දෙයක් ලෙස සැලකිය හැකිය. උදාහරණයක් ලෙස, Ingress ස්ථාපනය කිරීම ඇඩෝනයක විශිෂ්ට උදාහරණයකි. මෙය තමන්ගේම CRD සහිත ඕනෑම ක්‍රියාකරුවෙකු හෝ පාලකයෙකු විය හැක: prometheus-operator, cert-manager, kube-controller-manager, ආදිය. හෝ කුඩා, නමුත් භාවිතා කිරීමට පහසු දෙයක් - උදාහරණයක් ලෙස, නව නාම අවකාශයන් වෙත රෙජිස්ට්‍රි රහස් පිටපත් කරන රහස් පිටපත් කරන්නා, හෝ නව නෝඩ් මත sysctl පරාමිති වින්‍යාස කරන sysctl සුසරකය.

ඇඩෝන ක්‍රියාත්මක කිරීම සඳහා, ඇඩෝන-ක්‍රියාකරු සංකල්ප කිහිපයක් සපයයි:

  • හෙල්ම් ප්‍රස්ථාරය විවිධ මෘදුකාංග පොකුරට ස්ථාපනය කිරීමට භාවිතා කරයි - උදාහරණයක් ලෙස, Prometheus, Grafana, nginx-ingress. අවශ්‍ය සංරචකයේ හෙල්ම් ප්‍රස්ථාරයක් තිබේ නම්, එය Addon-operator භාවිතයෙන් ස්ථාපනය කිරීම ඉතා සරල වනු ඇත.
  • වටිනාකම් ගබඩා කිරීම. හෙල්ම් ප්‍රස්ථාරවල සාමාන්‍යයෙන් කාලයත් සමඟ වෙනස් විය හැකි විවිධ සැකසුම් ඇත. ඇඩෝන-ක්‍රියාකරු මෙම සිටුවම් ගබඩා කිරීමට සහය දක්වන අතර හෙල්ම් ප්‍රස්ථාරය නව අගයන් සමඟ නැවත ස්ථාපනය කිරීම සඳහා ඒවායේ වෙනස්කම් නිරීක්ෂණය කළ හැක.
  • කොකු ඇඩෝන-ක්‍රියාකරු සිදුවීම් මත ක්‍රියාත්මක වන සහ අගයන් ගබඩාවට ප්‍රවේශ වන ක්‍රියාත්මක කළ හැකි ගොනු වේ. කොක්කෙන් පොකුරේ වෙනස්කම් නිරීක්ෂණය කළ හැකි අතර අගයන් ගබඩාවේ අගයන් යාවත්කාලීන කළ හැකිය. එම. කොකු භාවිතා කරමින්, ඔබට ආරම්භයේදී හෝ කාලසටහනකට අනුව පොකුරෙන් අගයන් එකතු කිරීමට සොයා ගැනීමක් කළ හැකිය, නැතහොත් ඔබට අඛණ්ඩ සොයාගැනීම් කළ හැකිය, පොකුරේ වෙනස්කම් මත පදනම්ව පොකුරෙන් අගයන් එකතු කරන්න.
  • මොඩියුලය හෙල්ම් ප්‍රස්ථාරය, අගයන් ගබඩාව සහ කොකු වල එකතුවකි. මොඩියුල සක්රිය හෝ අක්රිය කළ හැක. මොඩියුලයක් අක්‍රිය කිරීම යනු සියලුම හෙල්ම් ප්‍රස්ථාර නිකුත් කිරීම් මකා දැමීමයි. මොඩියුලවලට ගතිකව සක්‍රීය කළ හැක, නිදසුනක් ලෙස, එයට අවශ්‍ය සියලුම මොඩියුල සක්‍රීය කර ඇත්නම් හෝ සොයාගැනීම් කොකුවල අවශ්‍ය පරාමිති සොයාගෙන තිබේ නම් - මෙය සිදු කරනු ලබන්නේ සහායක සක්‍රීය ස්ක්‍රිප්ට් භාවිතා කරමිනි.
  • ගෝලීය කොකු. මේවා “තමන්ගේම” කොකු, ඒවා මොඩියුලවලට ඇතුළත් කර නැති අතර ගෝලීය අගයන් ගබඩාවකට ප්‍රවේශය ඇත, ඒවායේ අගයන් මොඩියුලවල ඇති සියලුම කොකු සඳහා ලබා ගත හැකිය.

මෙම කොටස් එකට වැඩ කරන්නේ කෙසේද? ලේඛනයෙන් පින්තූරය දෙස බලමු:

Kubernetes පොකුරක් සකස් කිරීම පහසු සහ පහසු ද? addon-operator නිවේදනය කරමින්

වැඩ අවස්ථා දෙකක් තිබේ:

  1. ගෝලීය කොක්කක් සිදුවීමක් මගින් අවුලුවනු ලැබේ - උදාහරණයක් ලෙස, පොකුරේ ඇති සම්පතක් වෙනස් වන විට. මෙම කොක්කය වෙනස්කම් සකසන අතර ගෝලීය අගයන් ගබඩාවට නව අගයන් ලියයි. ඇඩෝන-ක්‍රියාකරු ගෝලීය ආචයනය වෙනස් වී ඇති බව දැනුම් දෙන අතර සියලුම මොඩියුල ආරම්භ කරයි. සෑම මොඩියුලයක්ම, එහි කොකු භාවිතයෙන්, එය සක්‍රීය කළ යුතුද යන්න තීරණය කර එහි අගය ගබඩාව යාවත්කාලීන කරයි. මොඩියුලය සක්රිය කර ඇත්නම්, ඇඩෝන-ක්රියාකරු හෙල්ම් ප්රස්ථාරය ස්ථාපනය කිරීම ආරම්භ කරයි. මෙම අවස්ථාවෙහිදී, හෙල්ම් ප්‍රස්ථාරයට මොඩියුල ගබඩාවෙන් සහ ගෝලීය ගබඩාවෙන් අගයන් වෙත ප්‍රවේශය ඇත.
  2. දෙවන අවස්ථාව සරල ය: මොඩියුලයේ කොක්කක් සිදුවීමක් මගින් අවුලුවන අතර මොඩියුලයේ අගයන් ගබඩාවේ අගයන් වෙනස් කරයි. ඇඩෝන-ක්‍රියාකරු මෙය නිරීක්ෂණය කර යාවත්කාලීන කළ අගයන් සහිත හෙල්ම් ප්‍රස්ථාරය දියත් කරයි.

එකතු කිරීම එක් තනි කොක්කක් ලෙස හෝ එක් හෙල්ම් ප්‍රස්ථාරයක් ලෙස හෝ ක්‍රියාත්මක කළ හැකිය යැපෙන මොඩියුල කිහිපයක් ලෙස පවා - මෙය පොකුරේ ස්ථාපනය කර ඇති සංරචකයේ සංකීර්ණත්වය සහ අපේක්ෂිත මානකරන නම්‍යශීලී මට්ටම මත රඳා පවතී. උදාහරණයක් ලෙස, ගබඩාවේ (/උදාහරණ) sysctl-tuner add-on එකක් ඇත, එය කොක්කක් සහ හෙල්ම් ප්‍රස්ථාරයක් සහිත සරල මොඩියුලයක් ලෙස ක්‍රියාත්මක වන අතර අගයන් ගබඩාව භාවිතා කරයි, එමඟින් ConfigMap සංස්කරණය කිරීමෙන් සැකසුම් එකතු කිරීමට හැකි වේ.

යාවත්කාලීන බෙදා හැරීම

Addon-operator ස්ථාපනය කරන සංරචක යාවත්කාලීන සංවිධානය කිරීම ගැන වචන කිහිපයක්.

ඇඩෝන-ක්‍රියාකරු පොකුරක් තුළ ක්‍රියාත්මක කිරීමට, ඔබට අවශ්‍ය වේ එකතු කිරීම් සමඟ රූපයක් සාදන්න hook සහ Helm ප්‍රස්ථාර ගොනු ආකාරයෙන්, ද්විමය ගොනුවක් එක් කරන්න addon-operator සහ කොකු සඳහා ඔබට අවශ්ය සියල්ල: bash, kubectl, jq, python ආදිය එවිට මෙම රූපය සාමාන්‍ය යෙදුමක් ලෙස පොකුරට ගෙන යා හැකි අතර, බොහෝ විට ඔබට එක් හෝ තවත් ටැග් කිරීමේ ක්‍රමයක් සංවිධානය කිරීමට අවශ්‍ය වනු ඇත. පොකුරු කිහිපයක් තිබේ නම්, යෙදුම් සමඟ ඇති ප්‍රවේශය සුදුසු විය හැකිය: නව නිකුතුව, නව අනුවාදය, සියලුම පොකුරු වෙත ගොස් පොඩ්ස් වල රූපය නිවැරදි කරන්න. කෙසේ වෙතත්, සැලකිය යුතු පොකුරු ගණනකට පෙරළීමකදී, නාලිකාවකින් ස්වයං යාවත්කාලීන කිරීමේ සංකල්පය අපට වඩාත් සුදුසු විය.

මෙන්න අපි එය කරන්නේ කෙසේද:

  • නාලිකාවක් යනු ඕනෑම දෙයකට සැකසිය හැකි හඳුනාගැනීමකි (උදාහරණයක් ලෙස, dev/stage/ea/stable).
  • නාලිකාවේ නම රූප ටැගයයි. ඔබට නාලිකාවකට යාවත්කාලීන කිරීමට අවශ්‍ය වූ විට, නව රූපයක් එකලස් කර නාලිකා නාමය සමඟ ටැග් කරනු ලැබේ.
  • රෙජිස්ට්රි තුළ නව රූපයක් දිස්වන විට, Addon-operator නැවත ආරම්භ කර නව රූපය සමඟ දියත් කරනු ලැබේ.

ලියා ඇති පරිදි මෙය හොඳම භාවිතය නොවේ Kubernetes ලියකියවිලි. මෙය සිදු කිරීම නිර්දේශ නොකරයි, නමුත් අපි කතා කරන්නේ එකම පොකුරේ ජීවත් වන නිත්‍ය යෙදුමකි. ඇඩෝන-ක්‍රියාකරු සම්බන්ධයෙන් ගත් කල, යෙදුමක් යනු පොකුරු හරහා විසිරී ඇති යෙදවුම් රාශියක් වන අතර ස්වයං-යාවත්කාලීන කිරීම බොහෝ සෙයින් උපකාරී වන අතර ජීවිතය පහසු කරයි.

නාලිකා උදව් සහ පරීක්ෂා කිරීමේදී: සහායක පොකුරක් තිබේ නම්, ඔබට එය නාලිකාවට වින්‍යාසගත කළ හැක stage සහ එය නාලිකා වෙත පෙරළීමට පෙර එයට යාවත්කාලීනයන් රෝල් කරන්න ea и stable. නාලිකාවේ පොකුරක් සමඟ නම් ea දෝෂයක් සිදුවී ඇත, ඔබට එය මාරු කළ හැකිය stable, මෙම පොකුරේ ඇති ගැටළුව විමර්ශනය කරමින් පවතින අතරතුර. පොකුර ක්‍රියාකාරී ආධාරකයෙන් ඉවත් කර ඇත්නම්, එය එහි "ශීත කළ" නාලිකාවට මාරු වේ - උදාහරණයක් ලෙස, freeze-2019-03-20.

කොකු සහ හෙල්ම් ප්‍රස්ථාර යාවත්කාලීන කිරීමට අමතරව, ඔබට අවශ්‍ය විය හැකිය යාවත්කාලීන කිරීම සහ තෙවන පාර්ශවීය සංරචකය. උදාහරණයක් ලෙස, ඔබ කොන්දේසි සහිත node-exporter හි දෝෂයක් දුටු අතර එය පැච් කරන්නේ කෙසේදැයි සොයා ගත්තේය. ඊළඟට, ඔබ PR විවෘත කර නව නිකුතුව සියලු පොකුරු හරහා ගොස් රූපයේ අනුවාදය වැඩි කිරීමට බලා සිටී. දින නියමයක් නොමැතිව බලා නොසිටීම සඳහා, ඔබට ඔබේ නෝඩ්-අපනයනය ගොඩනඟා PR පිළිගැනීමට පෙර එයට මාරු විය හැකිය.

සාමාන්‍යයෙන්, මෙය ඇඩෝන-ක්‍රියාකරු නොමැතිව කළ හැකිය, නමුත් ඇඩෝන-ක්‍රියාකරු සමඟ නෝඩ්-අපනයනය ස්ථාපනය කිරීමේ මොඩියුලය එක් ගබඩාවක දෘශ්‍යමාන වනු ඇත, ඔබේ ප්‍රතිරූපය ගොඩනැගීම සඳහා ඩොකර්ෆයිල් එහි තබා ගත හැකිය, එය සියලුම සහභාගිවන්නන්ට පහසු වේ සිදුවන්නේ කුමක්ද යන්න තේරුම් ගැනීමේ ක්‍රියාවලිය... තවද පොකුරු කිහිපයක් තිබේ නම්, ඔබගේ PR පරීක්ෂා කිරීම සහ නව අනුවාදයක් නිකුත් කිරීම යන දෙකටම පහසු වේ!

සංරචක යාවත්කාලීන කිරීමේ මෙම සංවිධානය අප වෙනුවෙන් සාර්ථකව ක්‍රියා කරයි, නමුත් වෙනත් සුදුසු යෝජනා ක්‍රමයක් ක්‍රියාත්මක කළ හැකිය - සියල්ලට පසු මෙම අවස්ථාවේදී Addon-operator යනු සරල ද්විමය ගොනුවකි.

නිගමනය

ඇඩෝන-ක්‍රියාකරු තුළ ක්‍රියාත්මක වන මූලධර්ම මඟින් සාමාන්‍ය යෙදුම්වල සංවර්ධන ක්‍රියාවලීන්ට සමාන පොකුරක් තුළ ඇඩෝන සෑදීම, පරීක්ෂා කිරීම, ස්ථාපනය කිරීම සහ යාවත්කාලීන කිරීම සඳහා විනිවිද පෙනෙන ක්‍රියාවලියක් ගොඩනැගීමට ඔබට ඉඩ සලසයි.

ඇඩෝන-ක්‍රියාකරු සඳහා මොඩියුල ආකෘතියේ ඇඩෝන (Helm chart + hooks) ප්‍රසිද්ධියේ ලබා ගත හැක. අපි, Flant සමාගම, අපගේ වර්ධනයන් ගිම්හානයේදී එවැනි එකතු කිරීම් ආකාරයෙන් ප්‍රකාශයට පත් කිරීමට සැලසුම් කරමු. GitHub හි සංවර්ධනයට සම්බන්ධ වන්න (shell-operator, addon-operator), මත පදනම්ව ඔබේම එකතු කිරීමක් කිරීමට උත්සාහ කරන්න උදාහරණ и ලියකියවිලි, Habré සහ අපගේ පුවත් සඳහා රැඳී සිටින්න YouTube නාලිකාව!

ප්රාදේශීය සභා

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න