|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
|
Il s'agit d'une documentation non publiée pour Admission Controller 1.34-dev. |
Démarrage rapide des métriques
Cette section documente comment activer le reporting des métriques sur le serveur de stratégie.
|
Avant de continuer, assurez-vous d’avoir complété la section précédente OpenTelemetry de ce livre. Vous en avez besoin pour que cette section fonctionne correctement. |
Vous utilisez Prometheus pour collecter les métriques exposées par le serveur de stratégie.
Installez Prometheus
Vous utilisez Opérateur Prometheus, qui nous permet de définir les cibles de Prometheus.
Il existe de nombreuses façons d’installer et de configurer Prometheus. Pour faciliter le déploiement, vous devriez utiliser le chart Helm de la communauté Prometheus.
L’Opérateur Prometheus déployé avec ce chart Helm utilise Moniteurs de Service, pour définir quels services Prometheus surveille.
Dans votre cas, vous ajoutez un ServiceMonitor ciblant l’espace de noms kubewarden pour les services qui correspondent aux étiquettes app=kubewarden-policy-server-default
et app.kubernetes.io/name: kubewarden-controller. Cela configure l’Opérateur Prometheus pour inspecter quels Endpoints Kubernetes appartiennent aux services correspondant à ces conditions.
Vous pouvez créer les deux ServiceMonitors nommés kubewarden-controller et
kubewarden-policy-server pour être utilisés par l’instance Prometheus par défaut installée
par le chart Helm.
Pour ce faire, vous devez créer le fichier de valeurs suivant :
cat <<EOF > kube-prometheus-stack-values.yaml
prometheus:
additionalServiceMonitors:
- name: kubewarden
selector:
matchLabels:
app: kubewarden-policy-server-default
namespaceSelector:
matchNames:
- kubewarden
endpoints:
- port: metrics
interval: 10s
- name: kubewarden-controller
selector:
matchLabels:
app.kubernetes.io/name: kubewarden-controller
namespaceSelector:
matchNames:
- kubewarden
endpoints:
- port: metrics
interval: 10s
EOF
Vous devez installer le chart Helm de la pile Prometheus :
|
Au moment de la rédaction (2023-11-17), la dernière version du chart est |
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install --wait --create-namespace \
--namespace prometheus \
--version 51.5.3 \
--values kube-prometheus-stack-values.yaml \
prometheus prometheus-community/kube-prometheus-stack
Installez Admission Controller
Vous pouvez maintenant installer Admission Controller, de la manière recommandée avec des charts Helm.
|
Le |
Tout d’abord, vous devez ajouter le dépôt Helm qui contient Admission Controller :
helm repo add kubewarden https://charts.kubewarden.io
Ensuite, vous installez les définitions de ressources personnalisées (CRDs) définies par Admission Controller :
helm install --wait \
--namespace kubewarden --create-namespace \
kubewarden-crds kubewarden/kubewarden-crds
Vous pouvez maintenant déployer le reste de la pile Admission Controller. Le chart Helm officiel crée un serveur de stratégie nommé default.
Vous devez configurer le chart Helm afin d’avoir les métriques activées dans Admission Controller. Le fichier kubewarden-values.yaml doit avoir le contenu suivant :
telemetry:
mode: sidecar
metrics: True
sidecar:
metrics:
port: 8080
Maintenant, installez les charts Helm :
helm install --wait \
--namespace kubewarden \
--create-namespace \
--values kubewarden-values.yaml \
kubewarden-controller kubewarden/kubewarden-controller
helm install --wait \
--namespace kubewarden \
--create-namespace \
kubewarden-defaults kubewarden/kubewarden-defaults \
--set recommendedPolicies.enabled=True \
--set recommendedPolicies.defaultPolicyMode=monitor
Cela crée l’instance default de PolicyServer :
kubectl get policyservers.policies.kubewarden.io
NAME AGE
default 3m7s
Par défaut, ce serveur de stratégie n’a pas de métriques activées.
Accéder à Prometheus
Prometheus expose une interface utilisateur que vous pouvez utiliser pour inspecter les métriques exposées par différents composants de votre cluster Kubernetes.
Vous pouvez transférer le port de Prometheus afin de pouvoir y accéder.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-operated 9090
Maintenant, vous pouvez visiter Prometheus sur le port 9090 et effectuer une requête, par exemple : kubewarden_policy_evaluations_total. Vous pouvez voir que le nombre d’évaluations augmente avec le temps à mesure que plus de requêtes passent par la stratégie.
Accéder à Grafana
Vous pouvez transférer le service Grafana afin de pouvoir y accéder.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-grafana 8080:80
Vous pouvez maintenant vous connecter avec le nom d’utilisateur par défaut admin et le mot de passe prom-operator.
Utiliser le tableau de bord Grafana Admission Controller
Admission Controller dispose d’un tableau de bord Grafana avec des métriques de base donnant un aperçu de la façon dont Admission Controller se comporte dans le cluster. Ce tableau de bord est disponible dans les versions GitHub du dépôt du serveur de stratégie Admission Controller sous la forme d’un fichier JSON ou sur le site Web de Grafana.
Pour importer le tableau de bord dans votre environnement, vous pouvez télécharger le fichier JSON depuis le site Web de Grafana ou le dépôt :
curl https://github.com/kubewarden/policy-server/releases/latest/download/kubewarden-dashboard.json
Une fois que vous avez le fichier, vous devez accéder au tableau de bord Grafana et l’importer. Visitez /dashboard/import dans le tableau de bord Grafana et suivez ces étapes :
-
Copiez et collez le contenu du fichier JSON dans la boîte
Import via panel jsonde l’interface Grafana. -
Cliquez sur le bouton
Load. -
Choisissez
Prometheuscomme source. -
Cliquez sur le bouton
Import.
Une autre option est de l’importer directement depuis le site grafana.com. Pour cela :
-
Copiez l’ID du tableau de bord depuis la page tableau de bord,
-
Collez-le dans le champ
Import via grafana.com. -
Cliquez sur le bouton
load. -
Après avoir importé le tableau de bord, définissez la source de données Prometheus à utiliser et terminez le processus d’importation.
Le tableau de bord Grafana a des panneaux montrant l’état de toutes les stratégies gérées par Admission Controller. Il a également des panneaux spécifiques aux stratégies.
Vous pouvez obtenir des métriques détaillées pour une stratégie spécifique en changeant la valeur de la variable policy_name pour correspondre au nom de la stratégie requise.
Vous devriez être en mesure de voir un tableau de bord similaire à ceci :