|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev. |
Metriken Kurzanleitung
Dieser Abschnitt dokumentiert, wie die Metrikberichterstattung auf dem Policy Server aktiviert wird.
|
Bevor Sie fortfahren, stellen Sie sicher, dass Sie den vorherigen OpenTelemetry Abschnitt dieses Buches abgeschlossen haben. Sie benötigen es, damit dieser Abschnitt korrekt funktioniert. |
Sie verwenden Prometheus, um Metriken zu sammeln, die vom Policy Server exponiert werden.
Installieren Sie Prometheus
Sie verwenden Prometheus Operator, der es uns ermöglicht, die Ziele von Prometheus zu definieren.
Es gibt viele Möglichkeiten, Prometheus zu installieren und einzurichten. Zur Vereinfachung der Bereitstellung sollten Sie das Helm-Chart der Prometheus-Community verwenden.
Der mit diesem Helm-Chart bereitgestellte Prometheus-Operator verwendet Service Monitore, um zu definieren, welche Dienste Prometheus überwacht.
In Ihrem Fall fügen Sie einen ServiceMonitor hinzu, der auf den kubewarden Namespace zielt, für Dienste, die die Labels app=kubewarden-policy-server-default und app.kubernetes.io/name: kubewarden-controller aufweisen. Dies konfiguriert den
Prometheus-Operator, um zu überprüfen, welche Kubernetes-Endpunkte zu den Diensten gehören,
die diesen Bedingungen entsprechen.
Sie können die beiden ServiceMonitore mit den Namen kubewarden-controller und kubewarden-policy-server erstellen, die von der standardmäßigen Prometheus-Instanz verwendet werden, die durch das Helm-Chart installiert wurde.
Um dies zu tun, sollten Sie die folgende Werte-Datei erstellen:
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
Sie sollten das Helm-Chart des Prometheus-Stacks installieren:
|
Zum Zeitpunkt des Schreibens (2023-11-17) ist die neueste Chart-Version |
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
Installieren Sie Admission Controller
Sie können jetzt Admission Controller auf die empfohlene Weise mit Helm-Charts installieren.
|
Die |
Zuerst sollten Sie das Helm-Repository hinzufügen, das Admission Controller enthält:
helm repo add kubewarden https://charts.kubewarden.io
Dann installieren Sie die von Admission Controller definierten benutzerdefinierten Ressourcenbeschreibungen (CRDs):
helm install --wait \
--namespace kubewarden --create-namespace \
kubewarden-crds kubewarden/kubewarden-crds
Jetzt können Sie den Rest des Admission Controller Stacks bereitstellen. Das offizielle Helm-Chart erstellt einen PolicyServer mit dem Namen default.
Sie sollten das Helm-Chart so konfigurieren, dass Sie Metriken in Admission Controller aktiviert haben. Die kubewarden-values.yaml Datei sollte die folgenden Inhalte haben:
telemetry:
mode: sidecar
metrics: True
sidecar:
metrics:
port: 8080
Jetzt installieren Sie die Helm-Charts:
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
Dies erstellt die default Instanz von PolicyServer:
kubectl get policyservers.policies.kubewarden.io
NAME AGE
default 3m7s
Standardmäßig hat dieser Policy-Server keine aktivierten Metriken.
Zugriff auf Prometheus
Prometheus bietet eine Benutzeroberfläche, die Sie nutzen können, um die von verschiedenen Komponenten innerhalb Ihres Kubernetes-Clusters exponierten Metriken zu inspizieren.
Sie können den Prometheus-Port weiterleiten, damit Sie darauf zugreifen können.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-operated 9090
Jetzt können Sie Prometheus auf Port 9090 besuchen und eine Abfrage durchführen, zum Beispiel: kubewarden_policy_evaluations_total. Sie können sehen, dass die Anzahl der Auswertungen im Laufe der Zeit wächst, während mehr Anfragen durch die Richtlinie gehen.
Zugriff auf Grafana
Sie können den Grafana-Dienst weiterleiten, damit Sie darauf zugreifen können.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-grafana 8080:80
Sie können sich jetzt mit dem Standardbenutzernamen admin und dem Passwort prom-operator anmelden.
Verwendung des Admission Controller Grafana-Dashboards
Admission Controller hat ein Grafana-Dashboard mit grundlegenden Metriken, das einen Überblick darüber gibt, wie sich Admission Controller im Cluster verhält. Dieses Dashboard ist in den GitHub-Releases des Admission Controller policy-server-Repositorys als JSON-Datei oder auf der Grafana-Website verfügbar.
Um das Dashboard in Ihre Umgebung zu importieren, können Sie die JSON-Datei von der Grafana-Website oder dem Repository herunterladen:
curl https://github.com/kubewarden/policy-server/releases/latest/download/kubewarden-dashboard.json
Sobald Sie die Datei haben, sollten Sie auf das Grafana-Dashboard zugreifen und importieren. Besuchen Sie /dashboard/import im Grafana-Dashboard und folgen Sie diesen Schritten:
-
Kopieren Sie den Inhalt der JSON-Datei und fügen Sie ihn in das
Import via panel jsonFeld in der Grafana-Benutzeroberfläche ein. -
Klicken Sie auf die Schaltfläche
Load. -
Wählen Sie
Prometheusals Quelle aus. -
Klicken Sie auf die Schaltfläche
Import.
Eine weitere Möglichkeit ist, es direkt von der grafana.com-Website zu importieren. Dafür:
-
Kopieren Sie die Dashboard-ID von der Dashboard-Seite,
-
Fügen Sie sie in das
Import via grafana.comFeld ein. -
Klicken Sie auf die Schaltfläche
load. -
Nach dem Import des Dashboards definieren Sie die zu verwendende Prometheus-Datenquelle und beenden den Importprozess.
Das Grafana-Dashboard hat Bereiche, die den Zustand aller von Admission Controller verwalteten Richtlinien anzeigen. Es hat auch richtlinienspezifische Panels.
Sie können detaillierte Metriken für eine bestimmte Richtlinie erhalten, indem Sie den Wert der policy_name Variablen ändern, um den Namen der erforderlichen Richtlinie anzupassen.
Sie sollten in der Lage sein, ein Dashboard zu sehen, das diesem ähnlich ist: