Evitando o tempo de inatividade em um cluster Kubernetes com PodDisruptionBudgets


Protegendo um pod de despejo com orçamentos de interrupção de pod no Kubernetes


(. . — ) Kubernetes-. , pod’ . preStop pod’ , , pod’ . pod’, pod’, . PodDisruptionBudgets ( PDB), .


PodDisruptionBudgets: pod’


pod (PDB) — , pod’ ( ).


, pod’ , , , , . drain , pod’, .


pod PodDisruptionBudget, pod’ . , pod (PDB), pod Nginx deployment-, :


apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
 name: nginx-pdb
spec:
 minAvailable: 1
 selector:
   matchLabels:
     app: nginx

Kubernetes, , 1 pod, app: nginx. , Kubernetes pod’ drain-, pod’ drain-.



, , . prestop-, readiness probes service . , . , , , , .


, :



, . , pod’ :



pod’, drain . , drain , pod’ Nginx. drain ( , ), drain .


, , , drain . , drain , “” ( NoSchedule), pod’ . .


, , drain “” pod’ :



, , drain pod’ . , drain control plane, Pod Disruption Budget (PDB).


, control plane , PDB . , control plane , . , 2 pod’. pod’ 1, PDB . , pod , , , . , , control plane , , pod’ 0, PDB.


, , 1 . drain 1 pod’, drain 2 :




pod’ , Deployment . “” NoSchedule, scheduler :



, pod , 1 , drain 1 .


drain 2 control plane PDB, . , pod, , , , drain 2 , pod’ (PDB). :





, pod’ , , pod’ . , - drain , Kubernetes !



, :


  • lifecycle , .
  • pod’
  • pod’ (PDB), , pod’ .

, — !


! . terratest, k8s endpoint. , , 300 . , , .


Kubernetes AWS , Gruntwork.io.


:



All Articles