Ir al contenido

Kubernetes, Argo CD y Flux

La dimensión «dónde se ejecuta este servicio y si está sano» del catálogo de servicios se alimenta de tres fuentes: una lectura directa del clúster de Kubernetes, Argo CD y Flux. Las tres se sincronizan en segundo plano cada 10 minutos; el botón Sincronizar ahora de la página de Integraciones lanza una ejecución sin esperar.

Las cargas de trabajo Deployment, StatefulSet, DaemonSet y CronJob se leen directamente de la API de Kubernetes - eso cubre todo lo que está en ejecución, incluidos los entornos sin herramienta GitOps. El número de pods (listos/deseados) y la salud de las cargas de trabajo provienen de esta lectura.

  1. Vaya a Integraciones → Kubernetes → Conectar.
  2. Introduzca la dirección del servidor de API (https://...) y un token de ServiceAccount.
  3. El token se guarda cifrado; la conexión se verifica antes de guardarse.

Basta con un ServiceAccount de solo lectura. list es necesario para leer las cargas de trabajo en bloque y get para leer el estado de una carga individual (número de pods) - conceda ambos:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: apparch-reader
rules:
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets"]
verbs: ["list", "get"]
- apiGroups: ["batch"]
resources: ["cronjobs"]
verbs: ["list"]
# Si usa Flux, estas tres reglas también son necesarias (véase más abajo):
- apiGroups: ["source.toolkit.fluxcd.io"]
resources: ["gitrepositories"]
verbs: ["list"]
- apiGroups: ["kustomize.toolkit.fluxcd.io"]
resources: ["kustomizations"]
verbs: ["list"]
- apiGroups: ["helm.toolkit.fluxcd.io"]
resources: ["helmreleases"]
verbs: ["list"]

Vincule el rol a un ServiceAccount y entregue su token a AppArch:

Ventana de terminal
kubectl create serviceaccount apparch-reader
kubectl create clusterrolebinding apparch-reader \
--clusterrole=apparch-reader --serviceaccount=default:apparch-reader
kubectl create token apparch-reader --duration=8760h

Argo CD informa, por Application, el entorno, el estado de sincronización/salud y el commit en ejecución. Conéctese mediante Integraciones → Argo CD → Conectar con la dirección del servidor de Argo CD y un token de API (necesario cuando la lectura anónima está deshabilitada). El número de pods se lee del árbol de recursos de cada Application.

Flux no necesita una conexión propia - vive en su clúster como custom resources (Kustomization, HelmRelease) y se lee a través de la conexión de Kubernetes existente. Solo necesita las tres reglas de Flux del ejemplo de RBAC anterior en su token. Cuando se detecta Flux, aparece una insignia Flux en la fila de Kubernetes de la página de Integraciones.