Hoʻomaikaʻi i kahi pūʻulu Kubernetes me ka ʻole o ka manawa hoʻomaha

Hoʻomaikaʻi i kahi pūʻulu Kubernetes me ka ʻole o ka manawa hoʻomaha

Kaʻina hana hoʻomaikaʻi no kāu pūʻulu Kubernetes

I kekahi manawa, i ka wā e hoʻohana ai i kahi pūʻulu Kubernetes, pono e hoʻonui i nā nodes holo. Hiki i kēia ke komo i nā hōʻano hou o ka pūʻolo, nā mea hou kernel, a i ʻole ke kau ʻana i nā kiʻi mīkini virtual hou. Ma nā hua'ōlelo Kubernetes ua kapa ʻia kēia "Hoʻopilikia i ka manawaleʻa".

He ʻāpana kēia pou o ka moʻo 4-post:

  1. ʻO kēia pou.
  2. Hoʻopaʻa pololei i nā pods ma kahi pūʻulu Kubernetes
  3. Hoʻopaneʻe ka hoʻopau ʻana o kahi pod ke holoi ʻia
  4. Pehea e pale aku ai i ka Kubernetes Cluster Downtime me ka PodDisruptionBudgets

(ʻaneʻane. Manaʻo i ka unuhi ʻana o nā ʻatikala i koe ma ka moʻo i ka wā e hiki mai ana)

Ma kēia ʻatikala, e wehewehe mākou i nā mea hana a pau a Kubernetes e hoʻolako ai no ka hoʻokō ʻole ʻana i ka manawa hoʻomaha no nā node e holo ana i kāu hui.

Ke wehewehe nei i ka pilikia

E hana mākou i kahi ala naʻaupō i ka wā mua, e ʻike i nā pilikia a loiloi i nā pilikia e hiki mai ana o kēia ala, a kūkulu i ka ʻike e hoʻoponopono i kēlā me kēia pilikia a mākou e hālāwai ai i loko o ka pōʻai. ʻO ka hopena, he hoʻonohonoho e hoʻohana ana i nā makau o ke ola, nā ʻimi mākaukau, a me nā pūlāwai hoʻopilikia Pod e hoʻokō i kā mākou pahuhopu ʻole downtime.

No ka hoʻomaka ʻana i kā mākou huakaʻi, e lawe kākou i kahi laʻana paʻa. E ʻōlelo kākou he puʻupuʻu Kubernetes ʻelua nodes, kahi e holo ai kahi noi me ʻelua pods aia ma hope. Service:

Hoʻomaikaʻi i kahi pūʻulu Kubernetes me ka ʻole o ka manawa hoʻomaha

E hoʻomaka kākou me ʻelua pods me Nginx a me Service e holo ana ma kā mākou ʻelua mau nodes cluster Kubernetes.

Makemake mākou e hōʻano hou i ka mana kernel o ʻelua nodes limahana i kā mākou hui. Pehea mākou e hana ai i kēia? ʻO kahi hoʻonā maʻalahi, ʻo ia ka hoʻopaʻa ʻana i nā nodes hou me ka hoʻonohonoho hou ʻana a laila pani i nā nodes kahiko i ka wā e hoʻomaka ana i nā mea hou. ʻOiai e hana ana kēia, aia kekahi mau pilikia me kēia ala:

  • Ke hoʻopau ʻoe i nā node kahiko, e hoʻopau ʻia nā pods e holo ana ma luna o lākou. He aha inā pono e hoʻomaʻemaʻe ʻia nā pods no ka pani ʻana maikaʻi? ʻAʻole paha e kali ka ʻōnaehana virtualization āu e hoʻohana nei i ke kaʻina hoʻomaʻemaʻe e hoʻopau.
  • Pehea inā hoʻopau ʻoe i nā node a pau i ka manawa like? E loaʻa iā ʻoe ka manawa haʻahaʻa i ka wā e neʻe ai nā pods i nā nodes hou.

Pono mākou i kahi ala e neʻe maikaʻi ai i nā pods mai nā node kahiko me ka hōʻoia ʻana ʻaʻole e holo ana kekahi o kā mākou kaʻina hana ke hana mākou i nā loli i ka node. A i ʻole ke hana mākou i kahi pani piha o ka puʻupuʻu, e like me ka laʻana (ʻo ia hoʻi, hoʻololi mākou i nā kiʻi VM), makemake mākou e hoʻololi i nā noi holo mai nā nodes kahiko i nā mea hou. Ma nā hihia ʻelua, makemake mākou e pale i nā pods hou mai ka hoʻonohonoho ʻana i nā nodes kahiko, a laila e kipaku i nā pods holo holo mai ia mau mea. No ka hoʻokō ʻana i kēia mau pahuhopu hiki iā mākou ke hoʻohana i ke kauoha kubectl drain.

Ka hāʻawi hou ʻana i nā pods a pau mai kahi node

Hiki iā ʻoe ke hoʻokaʻawale i nā pods a pau mai kahi node. I ka wā o ka hoʻokō ʻana i ka wai, ua hōʻailona ʻia ka node i hiki ʻole ke hoʻonohonoho ʻia (flag NoSchedule). ʻAʻole kēia i ʻike ʻia nā pods hou ma luna. A laila hoʻomaka ka wai e hoʻokuke i nā pods mai ka node, e pani i nā ipu e holo nei i kēia manawa ma ka node, e hoʻouna ana i kahi hōʻailona. TERM nā ipu i loko o kahi pahu.

ʻOiai kubectl drain E hana maikaʻi ʻo ia i ka hoʻokuke ʻana i nā pods, aia ʻelua mau kumu ʻē aʻe e hiki ke hoʻopau i ka hana ʻana:

  • Pono e ho'opau 'ia kāu palapala noi ma ka waiho 'ana TERM hōʻailona. Ke kipaku ʻia nā pods, hoʻouna ʻo Kubernetes i kahi hōʻailona TERM nā pahu a kali iā lākou e kū no kahi manawa i ʻōlelo ʻia, a laila, inā ʻaʻole lākou i kū, e hoʻopau iā lākou me ka ikaika. Inā ʻaʻole ʻike pololei kāu pahu i ka hōʻailona, ​​​​hiki iā ʻoe ke hoʻopau pololei i nā pods inā e holo ana lākou (e laʻana, ke holomua nei kahi kālepa waihona).
  • Nalo nā pods a pau i loaʻa kāu noi. ʻAʻole hiki ke loaʻa i ka wā e hoʻokuʻu ʻia ai nā ipu hou ma nā node hou, a i ʻole ke kau ʻia kāu pods me ka ʻole o nā mea hoʻoponopono, ʻaʻole paha lākou e hoʻomaka hou.

Ke pale nei i ka wā hoʻomaha

No ka hōʻemi ʻana i ka manawa haʻahaʻa mai ka hoʻohaunaele manawaleʻa, e like me ka hana ʻana i ka hoʻoheheʻe ʻana ma kahi node, hāʻawi ʻo Kubernetes i kēia mau koho hoʻokele hemahema:

Ma ke koena o ka moʻo, e hoʻohana mākou i kēia mau hiʻohiʻona Kubernetes e hoʻēmi i ka hopena o ka neʻe ʻana o pod. I mea e maʻalahi ai ka hahai ʻana i ka manaʻo nui, e hoʻohana mākou i kā mākou hiʻohiʻona ma luna me kēia hoʻonohonoho kumu waiwai:

---
apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
 labels:
   app: nginx
spec:
 replicas: 2
 selector:
   matchLabels:
     app: nginx
 template:
   metadata:
     labels:
       app: nginx
   spec:
     containers:
     - name: nginx
       image: nginx:1.15
       ports:
       - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
 name: nginx-service
spec:
 selector:
   app: nginx
 ports:
 - protocol: TCP
   targetPort: 80
   port: 80

He laʻana liʻiliʻi kēia hoʻonohonoho Deployment, nāna e hoʻokele i nā pods nginx i ka pūʻulu. Eia kekahi, wehewehe ka hoʻonohonoho i ka waiwai Service, hiki ke hoʻohana ʻia no ke komo ʻana i nā pods nginx i kahi hui.

I loko o ke kaʻina holoʻokoʻa, e hoʻonui mākou i kēia hoʻonohonoho ʻana a hiki i ka hopena ke hoʻokomo i nā mana āpau a Kubernetes e hāʻawi ai e hōʻemi i ka manawa hoʻomaha.

No ka hoʻokō piha ʻana a hoʻāʻo ʻia o nā hōʻano hou o nā pūʻulu Kubernetes no ka manawa hoʻomaha ʻole ma AWS a ma waho aʻe, e kipa Gruntwork.io.

E heluhelu pū i nā ʻatikala ʻē aʻe ma kā mākou blog:

Source: www.habr.com

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