Nui nā ala e hoʻonohonoho ai i ka mālama ʻikepili no nā noi e holo ana ma kahi pūʻulu Kubernetes. Ua kahiko ʻia kekahi o lākou, ua ʻike hou ʻia kekahi. Ma kēia ʻatikala, e nānā mākou i ka manaʻo o ʻekolu mau koho no ka hoʻopili ʻana i nā ʻōnaehana mālama, me ka mea hou loa - hoʻopili ʻia ma o ka Container Storage Interface.
Hanana 1: E wehewehe i ka PV ma ka hōʻike pod
ʻO kahi hōʻike maʻamau e wehewehe ana i kahi pod ma kahi pūʻulu Kubernetes:
ʻO nā ʻāpana o ka hōʻike e wehewehe ana i ka leo i hoʻopili ʻia a me kahi i hōʻike ʻia i ke kala.
pauku volumeMounts hōʻike i nā helu mauna (mountPath) - kahi papa kuhikuhi i loko o ka pahu e kau ʻia ai ka leo mau loa, a me ka inoa o ka leo.
pauku x papa inoa i nā puke a pau i hoʻohana ʻia ma ka pod. E wehewehe i ka inoa o kēlā me kēia leo, a me ke ʻano (ma kā mākou hihia: awsElasticBlockStore) a me nā ʻāpana pili. ʻO nā ʻāpana i helu ʻia ma ka hōʻike ma muli o ke ʻano leo.
Hiki ke kau ʻia ka leo like i ka manawa like i loko o nā pahu pod he nui. Ma kēia ala, hiki i nā kaʻina hana noiʻi ke komo i ka ʻikepili like.
Ua hoʻokumu ʻia kēia ʻano pili i ka hoʻomaka ʻana, i ka wā o Kubernetes i kona wā kamaliʻi, a i kēia lā ua pau ke ʻano.
Nui nā pilikia i ka hoʻohana ʻana:
- Pono e hana lima nā puke a pau, ʻaʻole hiki i nā Kubernetes ke hana i kekahi mea no mākou;
- ʻokoʻa nā ʻāpana komo no kēlā me kēia leo, a pono e kuhikuhi ʻia i nā hōʻike o nā pods āpau e hoʻohana ana i ka leo;
- e hoʻololi i ka ʻōnaehana mālama (no ka laʻana, neʻe mai AWS i Google Cloud), pono ʻoe e hoʻololi i nā hoʻonohonoho a me ke ʻano o nā puke i kau ʻia ma nā hōʻike āpau.
He mea maʻalahi kēia mau mea a pau, no laila, ʻoiaʻiʻo, hoʻohana ʻia kēia ʻano hana e hoʻopili ai i kekahi mau ʻano kikoʻī wale nō: configMap, huna, emptyDir, hostPath:
-
configMap a me nā mea huna nā puke lawelawe e hiki ai iā ʻoe ke hana i kahi leo me nā faila mai nā Kubernetes i hōʻike ʻia i loko o ka ipu.
-
ʻO emptyDir kahi leo pōkole, i hana ʻia no ke ola o ka pod. Maʻalahi e hoʻohana no ka hoʻāʻo ʻana a mālama ʻana i ka ʻikepili no ka manawa pōkole. Ke holoi ʻia kahi pod, holoi ʻia ka leo emptyDir a nalowale nā ʻikepili āpau.
-
hostPath - hiki iā ʻoe ke kau i kekahi papa kuhikuhi ma ka diski kūloko o ka kikowaena kahi e holo ai ka noi i loko o ka pahu me ka noi, me /etc/kubernetes. He hiʻohiʻona palekana kēia, no laila, pāpā pinepine nā kulekele palekana i ka hoʻohana ʻana i nā puke o kēia ʻano. A i ʻole, hiki i ka mea hoʻopiʻi ke kau i ka papa kuhikuhi HTC Kubernetes i loko o kāna pahu a ʻaihue i nā palapala hōʻailona cluster. ʻO ka maʻamau, ʻae ʻia nā puke hostPath e hoʻohana ʻia e nā polokalamu ʻōnaehana e holo ana ma ka inoa inoa kube-system.
Hana 2. Hoʻohui i nā kapuahi SC/PVC/PV
ʻO kahi ala pili ʻē aʻe ka manaʻo o ka papa Storage, PersistentVolumeClaim, PersistentVolume.
Papa mālama mālama i nā palena pili i ka ʻōnaehana mālama ʻikepili.
HoʻomauVolumeClaim wehewehe i nā koi no ka mea e pono ai ka noi.
HoʻomauVolume hale kūʻai i nā ʻāpana komo a me ke kūlana leo.
ʻO ke kumu o ka manaʻo: i loko o ka pod manifest ke hōʻike nei lākou i kahi leo o ke ʻano PersistentVolumeClaim a hōʻike i ka inoa o kēia mea i ka ʻāpana claimName.
Hōʻike ka PersistentVolumeClaim i nā koi no ka nui o ka ʻikepili i koi ʻia e ka noi. me:
- nui diski;
- ke ala komo: ReadWriteOnce a i ʻole ReadWriteMany;
- loulou i ka papa waihona - kahi ʻōnaehana mālama ʻikepili a mākou e makemake ai e hana i ka leo.
Mālama ka papa Hōʻike Hōʻike i ke ʻano a me nā ʻāpana o ka pilina i ka ʻōnaehana mālama. Pono ka cubelet e kau i ka leo ma kona node.
Hōʻike nā hōʻike PersistentVolume i ka papa Storage a me nā ʻāpana komo no kahi leo kikoʻī (volume ID, ala, etc.).
I ka hana ʻana i PVC, nānā ʻo Kubernetes i ka nui o ka nui a me ka papa Storage e pono ai, a koho i kahi PersistentVolume manuahi.
Inā ʻaʻole loaʻa ia mau PV, hiki i nā Kubernetes ke hoʻomaka i kahi papahana kūikawā - Provisioner (hōʻike ʻia kona inoa ma ka papa Storage). Hoʻopili kēia polokalamu i ka ʻōnaehana mālama, hana i kahi leo o ka nui i makemake ʻia, loaʻa i kahi mea hōʻike a hana i kahi hōʻike PersistentVolume i ka hui Kubernetes, i pili pū me ka PersistentVolumeClaim.
ʻO kēia pūʻulu abstractions āpau e hiki ai iā ʻoe ke wehe i ka ʻike e pili ana i ka ʻōnaehana mālama e hana nei ka palapala noi mai ka pae hōʻike palapala a hiki i ka pae hoʻokele.
Aia nā ʻāpana āpau no ka hoʻopili ʻana i ka ʻōnaehana mālama ʻikepili i loko o ka papa Storage, nona ke kuleana o nā hui pūʻulu. ʻO nā mea a pau āu e hana ai i ka neʻe ʻana mai AWS a i Google Cloud ʻo ka hoʻololi ʻana i ka inoa o ka papa Storage i PVC ma nā hōʻike noi. E hana ʻia ka Volume Persistance no ka mālama ʻana i ka ʻikepili i loko o ka pūpū me ka hoʻohana ʻana i ka polokalamu Provisioner.
Keʻano 3: Keʻena mālama waihona
ʻO nā code āpau e launa pū me nā ʻōnaehana mālama like ʻole he ʻāpana o ka kumu Kubernetes. Hoʻopili ʻia ka hoʻokuʻu ʻana o nā hoʻoponopono bug a i ʻole nā hana hou i nā hoʻokuʻu hou; pono e hoʻololi ke code no nā mana kākoʻo āpau o Kubernetes. Paʻakikī kēia mau mea a pau e mālama a hoʻohui i nā hana hou.
No ka hoʻoponopono ʻana i ka pilikia, ua hana nā mea hoʻomohala mai Cloud Foundry, Kubernetes, Mesos a me Docker i ka Container Storage Interface (CSI) - kahi maʻalahi i hui pū ʻia e wehewehe ana i ka pilina o ka ʻōnaehana hoʻokele ipu a me kahi mea hoʻokele kūikawā (CSI Driver) e hana pū me kahi kikoʻī. ʻōnaehana mālama. Ua hoʻoneʻe ʻia nā code āpau no ka launa pū ʻana me nā ʻōnaehana mālama mai ke kumu Kubernetes i kahi ʻōnaehana kaʻawale.
ʻO ka maʻamau, ʻelua mau ʻāpana CSI Driver: Node Plugin a me Controller plugin.
Holo ʻo Node Plugin ma kēlā me kēia node a nona ke kuleana no ke kau ʻana i nā leo a me ka hana ʻana i nā hana ma luna o lākou. Hoʻopili ka plugin Controller me ka ʻōnaehana mālama: hana a hoʻopau paha i nā puke, hāʻawi i nā kuleana komo, etc.
I kēia manawa, noho nā mea hoʻokele kahiko i ka kernel Kubernetes, akā ʻaʻole lākou e ʻōlelo ʻia e hoʻohana ʻia a ʻōlelo ʻia nā mea a pau e hoʻokomo i ka CSI Driver no ka ʻōnaehana e hana ai lākou.
Hiki i ka mea hou ke hoʻoweliweli i ka poʻe i maʻa mua i ka hoʻonohonoho ʻana i ka mālama ʻikepili ma o ka papa Storage, akā ʻoiaʻiʻo, ʻaʻohe mea weliweli. No nā polokalamu polokalamu, ʻaʻohe mea e loli maoli - ua hana lākou me ka inoa ʻo Storage class, a e hoʻomau lākou e hana pēlā. No nā luna hoʻoponopono, ua hoʻohui ʻia ka hoʻokomo ʻana i ka pakuhi helm a ua loli ke ʻano o nā hoʻonohonoho. Inā ma mua ua hoʻokomo pololei ʻia nā hoʻonohonoho i ka papa Storage, i kēia manawa pono e hoʻonohonoho mua ʻia i ka pakuhi helm, a laila ma ka papa Storage. Inā ʻoe e nānā, ʻaʻohe mea ʻino.
E lawe i kekahi laʻana e nānā i nā pōmaikaʻi āu e loaʻa ai ma ka hoʻololi ʻana i ka hoʻopili ʻana i nā ʻōnaehana mālama Ceph me ka hoʻohana ʻana i ka mea hoʻokele CSI.
Ke hana pū me Ceph, hāʻawi ka CSI plugin i nā koho hou aku no ka hana ʻana me nā ʻōnaehana mālama ma mua o nā mea hoʻokele i kūkulu ʻia.
- Ka hana ʻana i ka disk dynamic. Hoʻohana maʻamau nā disks RBD ma ke ʻano RWO wale nō, akā ʻo CSI no Ceph e ʻae iā lākou e hoʻohana ʻia ma ke ʻano RWX. Hiki i kekahi mau pods ma nā node like ʻole ke kau i ka disk RDB like ma ko lākou mau nodes a hana pū me lākou i ka like. No ka pololei, ʻaʻole ʻālohilohi nā mea āpau - hiki ke hoʻopili ʻia kēia disk ma ke ʻano he poloka poloka, ʻo ia hoʻi, pono ʻoe e hoʻololi i ka noi e hana pū me ia ma ke ʻano he nui.
- Ke hana nei i nā kiʻi paʻi kiʻi. Ma kahi pūʻulu Kubernetes, hiki iā ʻoe ke hana i kahi hōʻike me ke koi e hana i kahi kiʻi. E ʻike ka plugin CSI a lawe i kahi kiʻi mai ka disk. Ma muli o ia, hiki iā ʻoe ke hana i kahi kope a i ʻole kope o PersistentVolume.
- Hoʻonui i ka nui diski ma ka waiho ʻana a me PersistentVolume i ka hui Kubernetes.
- ʻO nā helu helu. ʻAʻole kākoʻo nā mea hoʻokele CephFS i kūkulu ʻia i loko o Kubernetes i nā quota, akā hiki i nā plugins CSI hou me nā Ceph Nautilus hou loa ke hiki ke hoʻohana i nā quota ma nā ʻāpana CephFS.
- Nā ana. Hiki i ka plugin CSI ke hāʻawi iā Prometheus me nā ʻano metric e pili ana i nā volumes e pili ana, he aha nā kamaʻilio e hana nei, etc.
- ʻIke ʻo Topology. Hāʻawi iā ʻoe e wehewehe i nā hōʻike pehea e hoʻohele ʻia ai ka puʻupuʻu, a pale i ka hoʻopili ʻana i kahi ʻōnaehana mālama i Amsterdam i nā pods e holo ana ma Lākana.
Pehea e hoʻopili ai iā Ceph i kahi hui Kubernetes ma CSI, ʻike
Ka mea kākau o ka ʻatikala: Sergey Bondarev, e hoʻomaʻamaʻa ana i ka hale kiʻi ma Southbridge, Certified Kubernetes Administrator, kekahi o nā mea hoʻomohala o kubespray.
ʻAʻole kahi Post Scriptum no ka hoʻolaha ʻana, akā no ka pono...
Ua alakaʻi ʻo PS Sergey Bondarev i ʻelua mau papa koʻikoʻi: hōʻano hou
Source: www.habr.com