3
votes

Comment faire évoluer Kubernetes mon déploiement en fonction du statut «prêt» / «pas prêt» de mes pods?

J'ai un déploiement avec un nombre défini de répliques . J'utilise la sonde de disponibilité pour communiquer si mon pod est prêt / pas prêt à gérer de nouvelles connexions - mes pods basculent entre l'état prêt / pas prêt pendant leur durée de vie.

Je souhaite que Kubernetes augmente / diminue le déploiement pour garantir qu'il y a toujours le nombre souhaité de pods dans un état prêt .

Exemple:

  • Si répliques est égal à 4 et qu'il y a 4 pods à l'état prêt , alors Kubernetes doit conserver le nombre de répliques actuel.
  • Si répliques vaut 4 et qu'il y a 2 pods prêts et 2 pods pas prêts , alors Kubernetes doit ajouter 2 pods supplémentaires.

Comment puis-je faire en sorte que Kubernetes adapte mon déploiement en fonction du statut "prêt" / "pas prêt" de mes pods?


4 commentaires

Pas prêt pour quelle raison?


Ensuite, vous en auriez 4 pas prêts - parce que les nouveaux pods tourneront d'abord dans cet état, à quel point le premier pod non prêt sera prêt.


@EngineerDollery ce n'est pas seulement pour le spin-up, c'est principalement pour le cycle de vie général


Vous pouvez augmenter / réduire le déploiement en fonction de l'utilisation du processeur, de la mémoire, etc. de ces ressources .. non basé sur l'état du pod


3 Réponses :


-3
votes

Vous ne pouvez pas planifier de déploiements sur des nœuds défectueux dans le cluster. L'API principale ne créera des pods que sur les nœuds qui sont sains et répondent aux critères de quota pour créer des pods supplémentaires sur les nœuds qui sont planifiables.

De plus, ce que vous définissez est appelé un concept d'auto-guérison de k8s qui, en termes de base, sera pris en charge.


0 commentaires

-1
votes

Pour garantir que 4 pods sont toujours en cours d'exécution, il est possible de spécifier la propriété de réplicas dans votre définition de déploiement:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 4  #here we define a requirement for 4 replicas
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Kubernetes s'assurera qu'en cas de panne de pods, des pods de remplacement seront créés afin un total de 4 sont toujours disponibles.


2 commentaires

Ce n'est pas comme ça que ça marche. Kubernetes veille uniquement à ce qu'il y ait 4 pods au total dans ce cas, mais il ne garantit pas que toujours pour sont prêts.


mais mes pods ne plantent pas, ils sont simplement pas prêts pendant un moment, puis récupérés. Je ne veux pas non plus que kubernetes les plante, juste pour en créer de nouveaux.



0
votes

Je ne pense pas que ce soit possible. Si le pod n'est pas prêt, k8 ne le préparera pas car c'est quelque chose qui est lié à votre application.Même s'il crée un nouveau pod, la disponibilité sera garantie. Vous devez donc résoudre les raisons du statut non prêt, puis k8. La seule chose que k8 les empêche de prendre la charge du monde pour éviter l'échec de la requête


0 commentaires