ʻO 10 mau mea hoʻopunipuni a me nā ʻōlelo aʻoaʻo Kubernetes
Nui nā palapala kuhikuhi ma ka Pūnaewele, akā i kekahi manawa ʻo ka ʻōlelo aʻo maʻalahi ka mea waiwai loa. Hui Kubernetes aaS mai Mail.ru unuhi ʻia he koho o na maalea he umi a me na kokua, i hōʻiliʻili ʻia e ka mea kākau o ka ʻatikala ma hope o hoʻokahi makahiki o ka hana ʻana me Kubernetes. ʻAʻole hoʻokaʻawale ʻia nā ʻōlelo aʻoaʻo e ka mea nui, akā manaʻo mākou e loaʻa nā mea a pau i mea pono no lākou iho.
ʻO ke kauoha maʻalahi e hana pū me Kubernetes
I ka hoʻomaka ʻana, ʻo ia paha ka hana maʻalahi a maikaʻi loa i ka hana ʻana me Kubernetes. Hiki i kēia kauoha ke hoʻopau i ke kauoha kubectl ma ka bash shell:
Autofill kubectl e kākau ʻia i ka faila .bashrc a e hoʻāla ʻia i kēlā me kēia manawa e hoʻomaka ai ka pūpū. Hoʻoikaika kēia i ke kākau ʻana i nā kauoha lōʻihi a me nā ʻāpana e like me all-namespaces. Heluhelu hou aku ma Kōkua nā Kubernetes bash.
Hoʻomanaʻo paʻamau a me nā palena CPU ma kahi inoa inoa
Inā kākau pololei ʻia ka palapala noi, no ka laʻana, wehe ia i kahi pilina hou i ka waihona i kēlā me kēia kekona akā ʻaʻole i pani ʻia, a laila he leak hoʻomanaʻo ka puʻupuʻu. A inā ʻaʻohe palena hoʻomanaʻo o ka noi i hoʻonohonoho ʻia i ka wā o ka waiho ʻana, hiki i kēia ke alakaʻi i kahi hemahema node.
No ka pale ʻana i kēia, ʻae ʻo Kubernetes iā ʻoe e hoʻonohonoho i nā palena paʻamau ma ke kumu no kēlā me kēia inoa. Ua kākau ʻia lākou ma ka faila yaml no kahi inoa inoa kikoʻī. Eia kekahi laʻana o ia faila:
E hana i kēlā yaml a hoʻopili i kekahi inoa inoa. No ka laʻana, i ka namespace limit-example. I kēia manawa, loaʻa ka palena o 512Mi i kēlā me kēia pahu i kau ʻia ma kēia inoa inoa, ke ʻole e kau ʻia kahi palena ʻē aʻe no kēia ipu.
ʻOhi ʻōpala i nā mana kahiko o Kubernetes
Hoʻomaka ʻo Kubelet i ka hōʻiliʻili ʻōpala i ka wā var/lib/docker noho ʻo 90% o ka wahi disk i loaʻa. He mea maikaʻi kēia, akā naʻe, a hiki i ka Kubernetes 1.7 ʻaʻohe palena paʻamau i ka helu o nā inodes i hoʻohana ʻia, e pili ana i ka helu o nā faila i ka ʻōnaehana faila.
ʻO kāu pahu paha var/lib/docker hiki ke hoʻohana wale i 50% o ka disk space, akā hiki ke holo i waho o nā inodes, kahi e pilikia ai nā limahana.
I nā mana kahiko o kubelet mai 1.4 a i 1.6 pono ʻoe e hoʻohui i kēia hae:
ʻO ka hoʻopunipuni pehea e kūkulu ai i ka noi a holo ma ka ʻāina ma kēlā puʻupuʻu. Inā ʻaʻole i kuhikuhi ʻia, e kūkulu ʻia ke kiʻi Docker ma kāu kamepiula a ʻaʻole ma ka hui.
No ka koi ʻana iā Docker e pana i ke kiʻi i ka hui Kubernetes kūloko, hāʻawi ʻia ka mīkini docker i kēia kauoha:
eval $(minikube docker-env)
I kēia manawa hiki iā mākou ke kūkulu i nā noi ma kahi hui Kubernetes kūloko.
Mai hāʻawi iā kubectl i ke komo i nā mea a pau
ʻIke ʻia kēia, akā inā hoʻohana nā hui he nui i ka puʻupuʻu like no kā lākou mau noi (ʻo ia ka mea i hana ʻia ai ʻo Kubernetes), ʻaʻole pono ʻoe e hāʻawi i kēlā me kēia kanaka. kubectl. ʻOi aku ka maikaʻi o ka hoʻokaʻawale ʻana i nā kauoha, hāʻawi i kēlā me kēia o lākou i kona inoa ponoʻī a hoʻopaʻa i ke komo ʻana me nā kulekele RBAC.
Hiki iā ʻoe ke huikau ma ka hāʻawi ʻana i nā kuleana e komo, heluhelu, hana, holoi a me nā hana ʻē aʻe no kēlā me kēia pod. Akā ʻo ka mea nui e kaupalena i ke komo ʻana i nā mea huna, e ʻae wale i nā luna hoʻomalu. Ma kēia ala mākou e hoʻokaʻawale ai ma waena o ka poʻe hiki ke hoʻokele i ka pūʻulu a me ka poʻe hiki ke hoʻopili wale iā ia.
Hoʻoponopono i nā kālā Pod
Pehea e hōʻoia ai ʻaʻohe manawa hoʻomaha no kahi noi ma kahi pūʻulu Kubernetes? PodDisruptionBudget a me PodDisruptionBudget hou.
Hoʻonui ʻia nā pūʻulu i kēlā me kēia manawa a hoʻopau ʻia nā node. ʻAʻohe mea e kū mālie, ʻo ia ka ʻoiaʻiʻo. Pono e hoʻokomo i kēlā me kēia hoʻolālā me kahi ʻoi aku o hoʻokahi PDB (PodDisruptionBudget). Hana ʻia ia ma kahi faila yaml maʻalahi i hoʻopili ʻia i ka pūpū. Hoʻoholo ʻia ka wahi uhi o kahi PDB e nā mea koho lepili.
'Ōlelo Aʻo: E noʻonoʻo ʻia ka waihona kālā PDB inā hiki ke hoʻohuli ʻia ka uhaki kālā (hoohaunaele manawalea). I nā kūlana e like me ka hāʻule ʻana o ka hardware, ʻaʻole e hana ʻo PDB.
ʻO nā palena nui ʻelua matchLabels и minAvailable. Hōʻike ka ʻāpana mua i nā noi e pili ana ka waihona kālā. No ka laʻana, inā loaʻa iaʻu nā hoʻolaha me nā lepili app: app-a и app: app-b, a laila pili kēia PDB i ka mea mua.
ʻO ka pākuhi minAvailable noʻonoʻo ʻia i ka wā e hoʻokaʻawale ai (hoʻomaʻemaʻe) i ka node. No ka laʻana, i kā mākou laʻana, i ka wā o ka hoʻokaʻawale ʻana, ua kipaku ʻia nā manawa āpau app: app-a, koe elua.
ʻAe kēia iā ʻoe e hoʻomalu i ka nui o nā manawa o ka noi e holo i kēlā me kēia manawa.
Ka nānā 'ana i ke ola kino noi
Hiki ke nānā ʻia ma nā ʻano ʻelua: me ka hoʻohana ʻana i nā hoʻokolohua Readiness a Liveness.
ʻO ka ʻimi mua (mākaukau) e hoʻoholo i ka mākaukau o ka pahu e loaʻa i ke kaʻa.
Hōʻike ka lua (liveness) inā olakino ka pahu a pono e hoʻomaka hou.
Hoʻohui wale ʻia nā hoʻonohonoho kūpono i ka yaml no ka hoʻolaha ʻana. Ma laila hiki iā ʻoe ke kuhikuhi i nā manawa manawa, nā manawa lohi a me ka helu o nā hoʻokolokolo hou. E ʻike i nā kikoʻī hou aku e pili ana iā lākou Nā palapala Kubernetes.
Aia nā kaha ma nā wahi a pau
ʻO nā lepili kekahi o nā manaʻo kumu ma Kubernetes. Hāʻawi lākou i nā mea e kamaʻilio manuahi me kekahi, a me ka hana ʻana i nā nīnau e pili ana i nā lepili. Ma Kubernetes, hiki iā ʻoe ke hele i ka mea kūʻai aku a nānā i nā hanana no nā hōʻailona kikoʻī.
Hiki iā ʻoe ke hana i nā mea āpau me nā hōʻailona, akā, ʻo kahi laʻana maikaʻi ke hana ʻana i nā kaiapuni he nui e holo i nā papahana ma ka pūʻulu like.
E ʻōlelo kākou ua hoʻohana ʻoe i ka pūʻulu like no dev и qa. ʻO kēia ke ʻano hiki iā ʻoe ke loaʻa kahi noi app-a, e hana like ana ma nā wahi ʻelua qa и dev. I kēia hihia, hiki iā mākou ke komo kaʻawale i ka hiʻohiʻona noi i kahi kaiapuni kikoʻī ma ke kuhikuhi ʻana i ka palena kūpono environment. Eia kekahi laʻana app: app-a и environment: dev no ka puni hookahi, a app: app-a и environment: qa no ka lua.
Hiki iā ʻoe ke komo i nā manawa ʻelua o ka noi, no ka laʻana, e hana i ka hoʻāʻo ʻana i ka manawa like.
E hoʻonohonoho
He ʻōnaehana ikaika loa ʻo Kubernetes, akā hiki i kēlā me kēia ʻōnaehana ke hoʻopau i lalo me nā kaʻina hana he nui loa. E holo ana ka Kubelet i nā kaʻina hana a pau a me ka nānā ʻana āu i kuhikuhi ai, a me kāna ponoʻī.
ʻOiaʻiʻo, ʻaʻole e hoʻolōʻihi ka lawelawe keiki makua ʻole i ka ʻōnaehana, a ua hoʻolālā ʻia ʻo Kubernetes e hoʻonui i ka honua. Akā inā ma kahi o kahi lawelawe hoʻokahi miliona e ʻike ʻia, hoʻomaka ka kubelet e ʻoki.
Inā no kekahi kumu e hoʻopau ai ʻoe i kahi hoʻolaha (pahu, kiʻi, nā mea a pau), e hoʻomaʻemaʻe piha.
Hui iā Go
Ua mālama mākou i ka ʻōlelo aʻo nui no ka hope. E aʻo i ka ʻōlelo papahana Go.
Hoʻokumu ʻia ʻo Kubernetes ma Go, kākau ʻia nā hoʻonui a pau ma Go, a kākoʻo ʻia ka waihona mea kūʻai aku-go.
Hiki ke hoʻohana ʻia no nā mea like ʻole a hoihoi. No ka laʻana, e hoʻonui i ka ʻōnaehana Kubernetes i kou makemake. No laila, hiki iā ʻoe ke hoʻohana i kāu mau polokalamu ponoʻī e hōʻiliʻili i ka ʻikepili, hoʻolaha i nā noi, a i ʻole e hoʻomaʻemaʻe wale i nā ipu.
ʻO ke aʻo ʻana i ka ʻōlelo polokalamu Go a me ka haku ʻana i ka client-go ka ʻōlelo aʻoaʻo nui loa āu e hāʻawi ai i nā mea hoʻohana Kubernetes hou.