Equilibrage de la disponibilité et des coûts des services lors du cyclage des noeuds gérés dans les pools de noeuds
Découvrez comment équilibrer la disponibilité et le coût des services lors du cyclage des noeuds gérés dans les pools de noeuds que vous avez créés à l'aide de Kubernetes Engine (OKE).
Lors du cyclage de noeuds gérés dans des pools de noeuds pour remplacer des volumes d'initialisation ou pour mettre fin à des noeuds et les remplacer, Kubernetes Engine connecte automatiquement les noeuds existants pour les rendre indisponibles et les draine (à l'aide des paramètres Cordon et purge spécifiés pour le pool de noeuds).
Vous pouvez personnaliser le comportement de Kubernetes Engine pour répondre à vos propres exigences en matière de disponibilité et de coût du service, comme suit :
- Lors du remplacement des volumes d'initialisation, et lors de la terminaison et du remplacement des noeuds, vous pouvez spécifier le nombre de noeuds à autoriser à être indisponibles pendant l'opération (appelé Maximum indisponible ou maxUnavailable pour faire court). Plus le nombre de noeuds que vous autorisez à être indisponibles est élevé, plus Kubernetes Engine peut être mis à jour en parallèle sans augmenter les coûts. Cependant, plus le nombre de noeuds que vous autorisez à être indisponibles est élevé, plus la disponibilité du service risque d'être compromise.
- Lors de l'interruption et du remplacement de noeuds, vous pouvez spécifier le nombre de noeuds supplémentaires à autoriser temporairement pendant l'opération de mise à jour (appelé surtension maximale ou maxSurge pour faire court). Plus le nombre de noeuds supplémentaires que vous autorisez est élevé, plus Kubernetes Engine peut être mis à jour en parallèle sans compromettre la disponibilité du service. Cependant, plus le nombre de noeuds supplémentaires que vous autorisez est élevé, plus le coût est élevé.
Pour maxUnavailable et maxSurge, vous pouvez indiquer le nombre de noeuds autorisé sous forme d'entier ou de pourcentage du nombre de noeuds affiché dans la propriété Nombre de noeuds du pool de noeuds dans la console (propriété Taille du pool de noeuds dans l'API).
Lorsque vous arrêtez et remplacez des noeuds, si vous n'indiquez pas explicitement les numéros autorisés pour les noeuds supplémentaires (maxSurge) et les noeuds non disponibles (maxUnavailable), les conditions suivantes s'appliquent :
- Si vous n'indiquez aucune valeur pour maxSurge ou maxUnavailable, maxSurge prend par défaut la valeur 1 et maxUnavailable la valeur 0.
- Si vous spécifiez uniquement une valeur pour maxSurge, la valeur par défaut de maxUnavailable est 0.
- Si vous spécifiez uniquement une valeur pour maxUnavailable, la valeur par défaut de maxSurge est 1.
- Vous ne pouvez pas indiquer 0 comme nombre autorisé pour les noeuds supplémentaires (maxSurge) et les noeuds non disponibles (maxUnavailable).
Lorsque vous remplacez des volumes d'initialisation, si vous n'indiquez pas explicitement un nombre autorisé de noeuds indisponibles (maxUnavailable), les conditions suivantes s'appliquent :
- Si vous n'indiquez pas de valeur pour maxUnavailable, maxUnavailable est défini par défaut sur 1.
- Vous ne pouvez pas indiquer 0 comme nombre autorisé pour maxUnavailable.
Tenez compte des éléments suivants :
- A la fin de l'opération, le nombre de noeuds dans le pool de noeuds revient au nombre indiqué par la propriété Nombre de noeuds du pool de noeuds affichée dans la console (propriété Taille du pool de noeuds dans l'API).
- Lorsque vous arrêtez et remplacez des noeuds, si vous indiquez une valeur pour maxSurge au cours de l'opération, votre location doit disposer d'un quota suffisant pour le nombre de noeuds supplémentaires que vous indiquez.
- Lorsque vous spécifiez une valeur pour maxUnavailable, si le pool de noeuds ne peut pas rendre ce nombre de noeuds indisponibles (par exemple, en raison d'un budget d'interruption de pod), l'opération échoue.
- Si vous entrez un pourcentage comme valeur de maxUnavailable, Kubernetes Engine arrondit le pourcentage à l'entier le plus proche lors du calcul du nombre de noeuds autorisé.
- Lors de la mise à jour de pools de noeuds volumineux, sachez que les valeurs que vous spécifiez pour maxUnavailable peuvent entraîner des durées de cycle trop longues. Par exemple, si vous indiquez 1 comme valeur pour maxUnavailable lors du cyclage des noeuds d'un pool de noeuds avec 1000 noeuds, Kubernetes Engine peut prendre plusieurs jours pour cycler tous les noeuds du pool de noeuds. Si l'opération de cyclage de noeud ne se termine pas dans les 30 jours, le statut de la demande de travail associée est défini sur Echec. Soumettez une autre demande de cyclage de noeud pour reprendre l'opération.
- Lors du cyclage de noeuds gérés dans un pool de noeuds pour réduire le pool de noeuds, sachez que le nombre de noeuds dans le pool de noeuds peut être réduit au nombre indiqué comme valeur pour maxUnavailable. Par conséquent, les opérations suivantes peuvent réduire le nombre de noeuds disponibles en dessous de ce que vous aviez prévu, ce qui compromet la disponibilité du service et a un impact sur les charges de travail. Dans ce cas, faites attention et envisagez éventuellement de réduire la valeur maxUnavailable.