Ke mālama nei i ka ʻikepili ma kahi pūʻulu Kubernetes

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.

Ke mālama nei i ka ʻikepili ma kahi pūʻulu Kubernetes

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:

Ke mālama nei i ka ʻikepili 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:

  1. Pono e hana lima nā puke a pau, ʻaʻole hiki i nā Kubernetes ke hana i kekahi mea no mākou;
  2. ʻ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;
  3. 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.

ʻO nā ʻōnaehana mālama i hana ʻia e Kubernetes ma waho o ka pahu hāʻawi ʻia ma ka palapala.

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.

Ke mālama nei i ka ʻikepili ma kahi pūʻulu Kubernetes

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.

Palapala Kūʻai Kūʻai Kūʻai.

ʻ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.

  1. 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.
  2. 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.
  3. Hoʻonui i ka nui diski ma ka waiho ʻana a me PersistentVolume i ka hui Kubernetes.
  4. ʻ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.
  5. 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.
  6. ʻ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 ma ka ʻāpana hana o ka haʻiʻōlelo kula ahiahi Slurm. Hiki iā ʻoe ke kau inoa Papa wikiō Ceph, e hoʻomaka ana ma ʻOkakopa 15th.

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 Kubernetes Base 28-30 сентября и продвинутый Kubernetes Mega ʻOkakopa 14–16.

Ke mālama nei i ka ʻikepili ma kahi pūʻulu Kubernetes

Source: www.habr.com

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