Kubernetes Operator ku Python opanda ma framework ndi SDK
Go pano ali ndi ufulu wolamulira zilankhulo zomwe anthu amasankha kulemba mawu a Kubernetes. Pali zifukwa zomveka za izi, monga:
Pali chikhazikitso champhamvu chopangira opangira mu Go - Othandizira SDK.
Mapulogalamu osintha masewera monga Docker ndi Kubernetes amalembedwa mu Go. Kulemba opareshoni yanu mu Go kumatanthauza kulankhula chinenero chomwecho ndi chilengedwe.
Kuchita kwakukulu kwa mapulogalamu a Go ndi zida zosavuta zogwirira ntchito ndi concurrency kunja kwa bokosi.
NB: Mwa njira, momwe mungalembere mawu anu mu Go, ife zafotokozedwa kale m'modzi mwa zomasulira zathu ndi olemba akunja.
Kulumikizana ndi opareshoni kumachitika pogwiritsa ntchito Tanthauzo la Custom Resource (pamenepa amatchedwa CRD).
Wothandizira akhoza kukhazikitsidwa. Kuti tichite izi, tidzagwiritsa ntchito mbendera za mzere wa malamulo ndi zosintha zachilengedwe.
Kumanga kwa chidebe cha Docker ndi tchati cha Helm kudapangidwa kuti ogwiritsa ntchito azitha (kwenikweni ndi lamulo limodzi) kukhazikitsa woyendetsa mu gulu lawo la Kubernetes.
CRD
Kuti wogwiritsa ntchitoyo adziwe zomwe angayang'ane komanso komwe angayang'ane, tiyenera kumuikira lamulo. Lamulo lililonse lidzayimiridwa ngati chinthu chimodzi cha CRD. Kodi CRD iyi iyenera kukhala ndi magawo otani?
Ndipo tidzapanga nthawi yomweyo lamulo losavuta β kusaka mu malo a mayina ndi dzina default onse ConfigMap okhala ndi zilembo ngati copyrator: "true":
Tiyeni tipitirire ku kasinthidwe ka woyendetsa wamkulu. Pali njira ziwiri zoyambira kukhazikitsa mapulogalamu:
gwiritsani ntchito zosankha za mzere wamalamulo;
gwiritsani ntchito zosintha zachilengedwe.
Zosankha za mzere wamalamulo zimakulolani kuti muwerenge zosintha mosavuta, mothandizidwa ndi mtundu wa data ndikutsimikizira. Laibulale yokhazikika ya Python ili ndi gawo argparser, zomwe tidzagwiritse ntchito. Tsatanetsatane ndi zitsanzo za kuthekera kwake zilipo zolemba zovomerezeka.
Kwa ife, izi ndi zomwe chitsanzo chokhazikitsa mizere yowerengera chimawoneka ngati:
Kumbali ina, pogwiritsa ntchito zosintha zachilengedwe ku Kubernetes, mutha kusamutsa zambiri zautumiki za pod mkati mwa chidebecho. Mwachitsanzo, titha kudziwa zambiri za malo omwe pod ikugwira ntchito ndi mapangidwe awa:
Mfundo yaikulu ndi yokonzeka! Tsopano tiyenera kuyika zonsezi mu phukusi limodzi la Python. Timakonza fayilo setup.py, lembani zambiri zokhudza polojekitiyi:
from sys import version_info
from setuptools import find_packages, setup
if version_info[:2] < (3, 5):
raise RuntimeError(
'Unsupported python version %s.' % '.'.join(version_info)
)
_NAME = 'copyrator'
setup(
name=_NAME,
version='0.0.1',
packages=find_packages(),
classifiers=[
'Development Status :: 3 - Alpha',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
],
author='Flant',
author_email='[email protected]',
include_package_data=True,
install_requires=[
'kubernetes==9.0.0',
],
entry_points={
'console_scripts': [
'{0} = {0}.cli:main'.format(_NAME),
]
}
)
NB: Makasitomala a kubernetes a Python ali ndi mawonekedwe ake. Zambiri zokhudzana ndi kuyanjana pakati pamitundu yamakasitomala ndi mitundu ya Kubernetes zitha kupezeka mkati matrices ogwirizana.
Umu ndi momwe, popanda mantha, chitonzo, kapena kuphunzira Go, tinatha kupanga athu opangira Kubernetes ku Python. Inde, ikadali ndi malo oti ikule: m'tsogolomu idzatha kukonza malamulo angapo, kugwira ntchito mu ulusi wambiri, kuyang'anira pawokha kusintha kwa ma CRD ake ...