Définition de la fonction Kubernetes APF (API Priority and Fairness)

Des paramètres définis par défaut pour vos clusters IBM Cloud Kubernetes Service permettent de traiter simultanément plusieurs demandes adressées au serveur d'API et d'empêcher la surcharge du trafic. Vous pouvez configurer vos propres schémas de flux et niveaux de priorité pour les demandes adressées au serveur d'API de vos clusters. Pour plus d'informations, consultez la section « Priorité et équité des API » dans la documentation d' Kubernetes.

Par exemple, vous disposez peut-être d'un utilisateur ou d'un espace de noms qui exécute vos applications critiques en production. Vous pouvez créer un schéma de flux et un niveau de priorité afin de doter vos applications critiques d'une priorité supérieure à celle d'autres applications du cluster pour l'exécution de leurs demandes par le serveur d'API.

Examen des schémas de flux et des niveaux de priorité par défaut

IBM Cloud Kubernetes Service définit certains schémas de flux et niveaux de priorité par défaut en plus des paramètres par défaut de Kubernetes.

Schéma de flux par défaut et niveaux de priorité
Schéma de flux Ressources dont proviennent les demandes Niveau de priorité
apiserver-health Ressources d'intégrité du serveur API Kubernetes Niveau de priorité personnalisé pour ces ressources.
calico-apiserver-service-accounts Ressources de l'espace de nom calico-apiserver, qui utilisent un compte de service dans l'espace de nom Même priorité que les comptes de service de l'espace de noms kube-system. Ce schéma est disponible pour la version 1.31 et les versions ultérieures d' IBM Cloud Kubernetes Service.
calico-system-service-accounts Ressources de l'espace de nom calico-system, qui utilisent un compte de service dans l'espace de nom Même priorité que les comptes de service de l'espace de noms kube-system. Ce schéma est disponible pour la version 1.29 et les versions ultérieures d' IBM Cloud Kubernetes Service.
ibm-admin Ressources des administrateurs de cluster IBM Exempte les demandes des administrateurs de cluster des restrictions de priorité.
ibm-system-service-accounts Ressources de l'espace de nom ibm-system, qui utilisent un compte de service dans l'espace de nom Même priorité que les comptes de service d'espace de nom kube-system
ibm-operators-service-accounts Ressources de l'espace de nom ibm-operators, qui utilisent un compte de service dans l'espace de nom Même priorité que les comptes de service de l'espace de noms kube-system.
system-node-proxiers Le kube-proxy Même priorité que kubelet
tigera-operator-service-accounts Ressources de l'espace de nom tigera-operator, qui utilisent un compte de service dans l'espace de nom Même priorité que les comptes de service de l'espace de noms kube-system. Ce schéma est disponible pour la version 1.29 et les versions ultérieures d' IBM Cloud Kubernetes Service.

Vous pouvez créer votre propre schéma de flux et vos priorités, mais ne modifiez pas les paramètres par défaut. Des résultats inattendus peuvent se produire dans votre cluster lorsque vous modifiez les priorités de demande d'API.

Suivez les étapes indiquées pour passer en revue les schémas de flux et les niveaux de priorité définis par IBM Cloud Kubernetes Service.

  1. Répertoriez tous les schémas de flux de votre cluster, y compris ceux définis par IBM Cloud Kubernetes Service, ainsi que leurs niveaux de priorité respectifs.
    kubectl get flowschemas
    
  2. Consultez les détails d'un schéma de flux spécifique, notamment les ressources pouvant émettre des demandes d'API classées par ordre de priorité, le type de demandes d'API pouvant être effectuées et les objets que les demandes peuvent modifier.
    kubectl describe flowschema <flow-schema-name>
    

Affichage des configurations de niveau de priorité IBM Cloud Kubernetes Service créées

IBM Cloud Kubernetes Service définit une configuration de niveau de priorité personnalisée pour la ressource apiserver-health.

Utilisez les commandes suivantes pour afficher des détails sur la configuration.

kubectl get prioritylevelconfiguration apiserver-health
kubectl describe prioritylevelconfiguration apiserver-health