|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
|
Esta es documentación inédita para Admission Controller 1.34-dev. |
Inicio rápido de métricas
Esta sección documenta cómo habilitar la generación de métricas en el Servidor de Políticas.
|
Antes de continuar, asegúrate de haber completado la sección anterior OpenTelemetry de este libro. Lo necesitas para que esta sección funcione correctamente. |
Utilizas Prometheus para recolectar métricas expuestas por el Servidor de Políticas.
Instala Prometheus
Utilizas Operador de Prometheus, que nos permite definir los objetivos de Prometheus.
Hay muchas maneras de instalar y configurar Prometheus. Para facilitar el despliegue, deberías utilizar el gráfico de Helm de la comunidad de Prometheus.
El Operador de Prometheus desplegado con este gráfico de Helm utiliza Monitores de Servicio, para definir qué servicios monitorea Prometheus.
En tu caso, estás añadiendo un ServiceMonitor que apunta al espacio de nombres kubewarden para servicios que coinciden con las etiquetas app=kubewarden-policy-server-default y app.kubernetes.io/name: kubewarden-controller. Esto configura el
Operador de Prometheus para inspeccionar qué Endpoints de Kubernetes pertenecen a servicios
que coinciden con estas condiciones.
Puedes crear los dos ServiceMonitors llamados kubewarden-controller y
kubewarden-policy-server para ser utilizados por la instancia predeterminada de Prometheus instalada
por el gráfico de Helm.
Para hacer eso, deberías crear el siguiente archivo de valores:
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
Deberías instalar el gráfico de Helm de la pila de Prometheus:
|
En el momento de escribir esto (2023-11-17) la última versión del gráfico es |
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
Instalar Admission Controller
Ahora puedes instalar Admission Controller, de la manera recomendada con gráficos de Helm.
|
El |
Primero, deberías añadir el repositorio de Helm que contiene Admission Controller:
helm repo add kubewarden https://charts.kubewarden.io
Luego, instalas las Definiciones de Recursos Personalizados (CRDs) definidas por Admission Controller:
helm install --wait \
--namespace kubewarden --create-namespace \
kubewarden-crds kubewarden/kubewarden-crds
Ahora puedes desplegar el resto de la pila de Admission Controller. El chart oficial de Helm crea un PolicyServer llamado default.
Deberías configurar el chart de Helm para que tengas métricas habilitadas en Admission Controller. El archivo kubewarden-values.yaml debería tener el siguiente contenido:
telemetry:
mode: sidecar
metrics: True
sidecar:
metrics:
port: 8080
Ahora, instala los charts de 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
Esto crea la instancia de default de PolicyServer:
kubectl get policyservers.policies.kubewarden.io
NAME AGE
default 3m7s
Por defecto, este servidor de políticas no tiene métricas habilitadas.
Accediendo a Prometheus
Prometheus expone una interfaz de usuario que puedes usar para inspeccionar las métricas expuestas por diferentes componentes dentro de tu clúster de Kubernetes.
Puedes redirigir el puerto de Prometheus para que puedas acceder a él.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-operated 9090
Ahora, puedes visitar Prometheus en el puerto 9090 y realizar una consulta, por ejemplo: kubewarden_policy_evaluations_total. Puedes ver que el número de evaluaciones crece con el tiempo a medida que más solicitudes pasan por la directiva.
Accediendo a Grafana
Puedes redirigir el servicio de Grafana para que puedas acceder a él.
kubectl port-forward -n prometheus --address 0.0.0.0 svc/prometheus-grafana 8080:80
Ahora puedes iniciar sesión con el nombre de usuario por defecto admin y la contraseña prom-operator.
Usando el Admission Controllerpanel de Grafana
Admission Controller tiene un panel de Grafana con métricas básicas que ofrecen una visión general de cómo se comporta Admission Controller en el clúster. Este panel de control está disponible en las versiones de GitHub del repositorio de Admission Controller policy-server como un archivo JSON o en el sitio web de Grafana.
Para importar el panel de control en tu entorno, puedes descargar el archivo JSON desde el sitio web de Grafana o desde el repositorio:
curl https://github.com/kubewarden/policy-server/releases/latest/download/kubewarden-dashboard.json
Una vez que tengas el archivo, deberías acceder al panel de control de Grafana y importarlo. Visita /dashboard/import en el panel de control de Grafana y sigue estos pasos:
-
Copia y pega el contenido del archivo JSON en el cuadro
Import via panel jsonen la interfaz de usuario de Grafana. -
Haz clic en el botón
Load. -
Elige
Prometheuscomo la fuente. -
Haz clic en el botón
Import.
Otra opción es importarlo directamente desde el sitio web grafana.com. Para esto:
-
Copia el ID del panel de control de la página del panel de control,
-
Pégalo en el campo
Import via grafana.com. -
Haz clic en el botón
load. -
Después de importar el panel de control, define la fuente de datos de Prometheus que vas a utilizar y termina el proceso de importación.
El panel de Grafana tiene paneles que muestran el estado de todas las directivas gestionadas por Admission Controller. También tiene paneles específicos de directivas.
Puedes obtener métricas detalladas para una directiva específica cambiando el valor de la variable policy_name para que coincida con el nombre de la directiva requerida.
Deberías poder ver un panel de control similar a este: