Cette page explique comment déterminer le nombre de processeurs et la quantité de mémoire disponibles sur un nœud pour exécuter vos charges de travail sur Google Distributed Cloud.
Ressources réservées
Sur chaque nœud de cluster, Google Distributed Cloud réserve les ressources suivantes pour les composants du système d'exploitation et les composants principaux de Kubernetes:
- 80 millicores + 1 % de la capacité du processeur
- 330 Mio + 5 % de la capacité de mémoire
Supposons, par exemple, qu'un nœud dispose de la capacité par défaut de quatre cœurs de processeur et de 8 Gio de mémoire. Google Distributed Cloud réserve alors:
- 80 millicores + 1 % des 4 cœurs = 120 millicores
- 330 Mio + 5 % de 8 Gio = 730 Mio
Le système d'exploitation et les principaux composants Kubernetes ne fonctionnent pas comme des pods. Ils s'exécutent comme des processus ordinaires. Les ressources restantes, au-delà de ces ressources réservées, sont disponibles pour les pods.
Seuil d'éviction
Pour déterminer la quantité de mémoire disponible pour les pods, vous devez également tenir compte du seuil d'éviction.
Google Distributed Cloud définit un seuil d'éviction de 100 Mio. Cela signifie que si la mémoire disponible sur un nœud est inférieure à 100 Mio, le kubelet
peut expulser un ou plusieurs pods.
Ressources pouvant être allouées
Les ressources d'un nœud qui sont disponibles pour les pods sont appelées ressources pouvant être allouées. Vous pouvez calculer ces ressources de la façon suivante :
Allocatable CPU = CPU Capacity - Reserved CPU
Allocatable Memory = Memory Capacity - Reserved Memory - Eviction Threshold
Supposons, par exemple, qu'un nœud dispose de 8 Gio de mémoire, de 680 Mio de mémoire réservée et d'un seuil d'éviction de 100 Mio. La mémoire pouvant être allouée est la suivante :
8 GiB - 680 MiB - 100 MiB = 7220 MiB
Ressources disponibles pour vos charges de travail
Les ressources pouvant être allouées à un nœud sont les ressources disponibles pour les pods. Cela inclut les pods qui exécutent vos charges de travail et ceux qui exécutent les modules complémentaires Google Distributed Cloud. Les modules complémentaires incluent le contrôleur d'entrée, le service d'entrée, l'agent Connect, les composants réseau, les composants de journalisation, etc.
Pour déterminer les ressources disponibles pour vos charges de travail sur un nœud donné, commencez par les ressources pouvant être allouées, puis soustrayez les ressources utilisées par les modules complémentaires.
La difficulté réside dans le fait que les modules complémentaires ne sont pas répartis uniformément entre les nœuds d'un cluster Google Distributed Cloud. Un nœud peut avoir trois modules complémentaires et un autre dix. En outre, les différents modules complémentaires requièrent différentes quantités de processeurs et de mémoire.
En règle générale, vous pouvez déterminer que les modules complémentaires exécutés sur un nœud nécessitent :
- 200 millicores de processeur
- 100 Mio de mémoire
Vous pouvez maintenant calculer les ressources disponibles sur un nœud pour vos charges de travail comme suit :
Allocatable CPU - 200 millicores
Allocatable memory - 100 MiB
Certains nœuds requièrent plus de ressources pour les modules complémentaires que la règle générale précédente. Par exemple, un nœud peut exécuter un module complémentaire Prometheus nécessitant 2 Gio de mémoire. Toutefois, si votre cluster comporte plus que quelques nœuds, il est raisonnable de supposer que la règle générale s'applique à la plupart des nœuds.
Étapes suivantes
Pour en savoir plus sur le concept de ressources pouvant être allouées, consultez la section Ressources pouvant être allouées dans la documentation de GKE sur Google Cloud.