8.2. Estimer le nombre de pods de votre Red Hat OpenShift Service sur les nœuds AWS peut contenir


En tant qu’administrateur de cluster, vous pouvez utiliser l’outil OpenShift Cluster Capacity Tool pour afficher le nombre de pods qui peuvent être programmés pour augmenter les ressources actuelles avant qu’elles ne soient épuisées, et pour s’assurer que tous les futurs pods peuvent être programmés. Cette capacité provient d’un hôte de nœuds individuel dans un cluster, et comprend le CPU, la mémoire, l’espace disque et d’autres.

8.2.1. Comprendre l’outil de capacité de cluster OpenShift

L’outil OpenShift Cluster Capacity Tool simule une séquence de décisions de planification pour déterminer combien d’instances d’un pod d’entrée peuvent être programmées sur le cluster avant qu’il ne soit épuisé des ressources pour fournir une estimation plus précise.

Note

La capacité allocatable restante est une estimation approximative, car elle ne compte pas toutes les ressources distribuées entre les nœuds. Il analyse uniquement les ressources restantes et estime la capacité disponible qui est encore consommable en fonction d’un certain nombre de cas d’une pod avec des exigences données qui peuvent être programmées dans un cluster.

En outre, les gousses peuvent seulement avoir un support de planification sur des ensembles particuliers de nœuds en fonction de ses critères de sélection et d’affinité. En conséquence, il peut être difficile d’estimer les pods restants d’un cluster.

Il est possible d’exécuter l’outil OpenShift Cluster Capacity Tool en tant qu’utilitaire autonome à partir de la ligne de commande, ou en tant que travail dans un pod à l’intérieur d’un service Red Hat OpenShift sur le cluster AWS. L’exécution de l’outil en tant que travail à l’intérieur d’un pod vous permet de l’exécuter plusieurs fois sans intervention.

À partir de la ligne de commande, vous pouvez exécuter l’outil OpenShift Cluster Capacity Tool pour estimer le nombre de pods pouvant être programmés sur votre cluster.

Créez un exemple de fichier spec de pod, que l’outil utilise pour estimer l’utilisation des ressources. Le pod spec spécifie ses besoins en ressources comme limites ou demandes. L’outil de capacité des clusters tient compte des besoins en ressources de la pod pour son analyse d’estimation.

Conditions préalables

  1. Exécutez l’outil OpenShift Cluster Capacity Tool, qui est disponible sous forme d’image conteneur à partir du catalogue de l’écosystème Red Hat.
  2. Créer un fichier spec de pod d’échantillon:

    1. Créez un fichier YAML similaire à ce qui suit:

      apiVersion: v1
      kind: Pod
      metadata:
        name: small-pod
        labels:
          app: guestbook
          tier: frontend
      spec:
        securityContext:
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        containers:
        - name: php-redis
          image: gcr.io/google-samples/gb-frontend:v4
          imagePullPolicy: Always
          resources:
            limits:
              cpu: 150m
              memory: 100Mi
            requests:
              cpu: 150m
              memory: 100Mi
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop: [ALL]
      Copy to Clipboard Toggle word wrap
    2. Créer le rôle du cluster:

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap

      À titre d’exemple:

      $ oc create -f pod-spec.yaml
      Copy to Clipboard Toggle word wrap

Procédure

D’utiliser l’outil de capacité de cluster sur la ligne de commande:

  1. À partir du terminal, connectez-vous au Registre Red Hat:

    $ podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  2. Tirez l’image de l’outil de capacité de cluster:

    $ podman pull registry.redhat.io/openshift4/ose-cluster-capacity
    Copy to Clipboard Toggle word wrap
  3. Exécutez l’outil de capacité de cluster:

    $ podman run -v $HOME/.kube:/kube:Z -v $(pwd):/cc:Z  ose-cluster-capacity \
    /bin/cluster-capacity --kubeconfig /kube/config --<pod_spec>.yaml /cc/<pod_spec>.yaml \
    --verbose
    Copy to Clipboard Toggle word wrap

    là où:

    &lt;pod_spec&gt;.yaml
    Spécifie le pod spec à utiliser.
    le verbose
    Affiche une description détaillée du nombre de gousses pouvant être programmées sur chaque nœud du cluster.

    Exemple de sortie

    small-pod pod requirements:
    	- CPU: 150m
    	- Memory: 100Mi
    
    The cluster can schedule 88 instance(s) of the pod small-pod.
    
    Termination reason: Unschedulable: 0/5 nodes are available: 2 Insufficient cpu,
    3 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't
    tolerate.
    
    Pod distribution among nodes:
    small-pod
    	- 192.168.124.214: 45 instance(s)
    	- 192.168.124.120: 43 instance(s)
    Copy to Clipboard Toggle word wrap

    Dans l’exemple ci-dessus, le nombre de gousses estimées pouvant être programmées sur le cluster est de 88.

L’exécution de l’outil OpenShift Cluster Capacity Tool en tant que travail à l’intérieur d’un pod vous permet d’exécuter l’outil plusieurs fois sans avoir besoin d’intervention de l’utilisateur. Exécutez l’outil OpenShift Cluster Capacity Tool en tant que travail à l’aide d’un objet ConfigMap.

Conditions préalables

Installez et téléchargez l’outil OpenShift Cluster Capacity Tool.

Procédure

Exécuter l’outil de capacité de cluster:

  1. Créer le rôle du cluster:

    1. Créez un fichier YAML similaire à ce qui suit:

      kind: ClusterRole
      apiVersion: rbac.authorization.k8s.io/v1
      metadata:
        name: cluster-capacity-role
      rules:
      - apiGroups: [""]
        resources: ["pods", "nodes", "persistentvolumeclaims", "persistentvolumes", "services", "replicationcontrollers"]
        verbs: ["get", "watch", "list"]
      - apiGroups: ["apps"]
        resources: ["replicasets", "statefulsets"]
        verbs: ["get", "watch", "list"]
      - apiGroups: ["policy"]
        resources: ["poddisruptionbudgets"]
        verbs: ["get", "watch", "list"]
      - apiGroups: ["storage.k8s.io"]
        resources: ["storageclasses"]
        verbs: ["get", "watch", "list"]
      Copy to Clipboard Toggle word wrap
    2. Créez le rôle de cluster en exécutant la commande suivante:

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap

      À titre d’exemple:

      $ oc create sa cluster-capacity-sa
      Copy to Clipboard Toggle word wrap
  2. Créer le compte de service:

    $ oc create sa cluster-capacity-sa -n default
    Copy to Clipboard Toggle word wrap
  3. Ajouter le rôle au compte de service:

    $ oc adm policy add-cluster-role-to-user cluster-capacity-role \
        system:serviceaccount:<namespace>:cluster-capacity-sa
    Copy to Clipboard Toggle word wrap

    là où:

    &lt;namespace&gt;
    Indique l’espace de noms où se trouve le pod.
  4. Définir et créer le pod spec:

    1. Créez un fichier YAML similaire à ce qui suit:

      apiVersion: v1
      kind: Pod
      metadata:
        name: small-pod
        labels:
          app: guestbook
          tier: frontend
      spec:
        securityContext:
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        containers:
        - name: php-redis
          image: gcr.io/google-samples/gb-frontend:v4
          imagePullPolicy: Always
          resources:
            limits:
              cpu: 150m
              memory: 100Mi
            requests:
              cpu: 150m
              memory: 100Mi
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop: [ALL]
      Copy to Clipboard Toggle word wrap
    2. Créez le pod en exécutant la commande suivante:

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap

      À titre d’exemple:

      $ oc create -f pod.yaml
      Copy to Clipboard Toggle word wrap
  5. Créé un objet map config en exécutant la commande suivante:

    $ oc create configmap cluster-capacity-configmap \
        --from-file=pod.yaml=pod.yaml
    Copy to Clipboard Toggle word wrap

    L’analyse de la capacité du cluster est montée dans un volume à l’aide d’un objet mappage nommé cluster-capacity-configmap pour monter le fichier pod.yaml dans un volume de test de volume sur le chemin /test-pod.

  6. Créez le travail à l’aide de l’exemple ci-dessous d’un fichier de spécification d’emploi:

    1. Créez un fichier YAML similaire à ce qui suit:

      apiVersion: batch/v1
      kind: Job
      metadata:
        name: cluster-capacity-job
      spec:
        parallelism: 1
        completions: 1
        template:
          metadata:
            name: cluster-capacity-pod
          spec:
              containers:
              - name: cluster-capacity
                image: openshift/origin-cluster-capacity
                imagePullPolicy: "Always"
                volumeMounts:
                - mountPath: /test-pod
                  name: test-volume
                env:
                - name: CC_INCLUSTER 
      1
      
                  value: "true"
                command:
                - "/bin/sh"
                - "-ec"
                - |
                  /bin/cluster-capacity --podspec=/test-pod/pod.yaml --verbose
              restartPolicy: "Never"
              serviceAccountName: cluster-capacity-sa
              volumes:
              - name: test-volume
                configMap:
                  name: cluster-capacity-configmap
      Copy to Clipboard Toggle word wrap
      1
      La variable d’environnement requise permet à l’outil de capacité de cluster de savoir qu’il s’exécute à l’intérieur d’un cluster en tant que pod.
      La clé pod.yaml de l’objet ConfigMap est identique au nom du fichier Pod spec, bien qu’il ne soit pas requis. Ce faisant, le fichier d’entrée de pod spec peut être accédé à l’intérieur du pod comme /test-pod/pod.yaml.
    2. Exécutez l’image de capacité de cluster en tant que travail dans un pod en exécutant la commande suivante:

      $ oc create -f cluster-capacity-job.yaml
      Copy to Clipboard Toggle word wrap

La vérification

  1. Consultez les journaux des tâches pour trouver le nombre de pods pouvant être programmés dans le cluster:

    $ oc logs jobs/cluster-capacity-job
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    small-pod pod requirements:
            - CPU: 150m
            - Memory: 100Mi
    
    The cluster can schedule 52 instance(s) of the pod small-pod.
    
    Termination reason: Unschedulable: No nodes are available that match all of the
    following predicates:: Insufficient cpu (2).
    
    Pod distribution among nodes:
    small-pod
            - 192.168.124.214: 26 instance(s)
            - 192.168.124.120: 26 instance(s)
    Copy to Clipboard Toggle word wrap

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat