PodDisruptionBudget de otros controladores de kubernetes

PodDisruptionBudget de otros controladores de kubernetes

Para garantizar que el negocio no se interrumpa o que el SLA empresarial no se degrade en Kubernetes, las aplicaciones deben implementarse en clústeres, como la implementación, la implementación de StatefulSet, etc. Aunque es una implementación en clúster, cuando destruimos activamente Pods, para evitar destruir demasiados Pods a la vez, Kubernetes hace referencia al controlador PodDisruptionBudget (PDB) para controlar la cantidad de Pods en el clúster.

En PDB, la cantidad de Pods se controla principalmente mediante dos parámetros:

  • minAvailable: representa la cantidad mínima de pods disponibles, que representa la cantidad mínima de pods en estado de ejecución en un clúster de pods o el porcentaje de la cantidad de pods en estado de ejecución y el total;

  • maxUnavailable: indica la cantidad máxima de pods no disponibles, indicando la cantidad máxima de pods no disponibles en el grupo de pods o el porcentaje de la cantidad de pods no disponibles y el total;
注意:minAvailable和maxUnavailable是互斥了,也就是说两者同一时刻只能出现一种。

El comando de drenaje de kubectl ya es compatible con el controlador PodDisruptionBudget. Cuando se realiza la operación de drenaje de kubectl, determinará la cantidad de clústeres de POD de aplicación de acuerdo con el controlador de PodDisruptionBudget, para garantizar que la destrucción de POD de la aplicación se realice sin interrupción del servicio o degradación del SLA del servicio . Al realizar el drenaje de kubectl o el escape activo de Pod, Kubernetes juzgará las siguientes situaciones:

  • minAvailable se establece en un valor de 5: debe haber al menos 5 POD en buen estado y disponibles en el clúster de POD de la aplicación, luego se puede realizar la operación.

  • MinAvailable se establece en un porcentaje del 30%: se puede operar al menos el 30% de los POD disponibles en buen estado en el clúster de POD de la aplicación.

  • maxUnavailable se establece en un valor de 5: solo puede haber 5 POD no disponibles en el clúster de POD de la aplicación antes de que se pueda realizar la operación.

  • maxUnavailable se establece en un porcentaje del 30%: solo se puede operar el 30% de los POD no disponibles en el clúster de POD de la aplicación.

En casos extremos, como establecer maxUnavailable en 0 o 100%, significa que no se puede realizar la operación de drenaje de kubectl. De la misma manera, establecer minAvailable al 100%, o al número máximo de copias del clúster POD de la aplicación, también significa que no se puede realizar la operación de drenaje de kubectl.

注意:使用PodDisruptionBudget控制器并不能保证任何情况下都对业务POD集群进行约束,PodDisruptionBudget控制器只能保证POD主动逃离的情况下业务不中断或者业务SLA不降级,例如在执行kubectldrain命令时。

Ejemplo:
(1), defina minAvailable

apiVersion: policy/v1beta1

kind: PodDisruptionBudget

metadata:

  name: pdb-demo

spec:

  minAvailable: 2

  selector:

    matchLables:

      app: nginx

(2), defina maxUnavailable

apiVersion: policy/v1beta1

kind: PodDisruptionBudget

metadata:

  name: pdb-demo

spec:

  maxUnavailable: 1

  selector:

    matchLables:

      app: nginx

(3) Cree una lista de recursos

对于PodDisruptionBudget对象,无法直接进行更新操作,只能通过删除和重新创建来完成对PodDisruptionBudget对象的更新。
# kubectl apply -f pdb-demo.yaml

(4) Verifique el estado

# kubectl get pdb

NAME       MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE

pdb-demo   2               N/A               0                     7m46s

(5) Ver información detallada

# kubectl describe pdb pdb-demo

Name:           pdb-demo

Namespace:      default

Min available:  2

Selector:       app=nginx

Status:

    Allowed disruptions:  0

    Current:              0

    Desired:              2

    Total:                0

Events:

  Type    Reason  Age                   From               Message

  ----    ------  ----                  ----               -------

  Normal  NoPods  2m58s (x53 over 28m)  controllermanager  No matching pods found
参考文档:https://kubernetes.io/docs/tasks/run-application/configure-pdb/

Finalizar

Supongo que te gusta

Origin blog.51cto.com/15080014/2654512
Recomendado
Clasificación