Skip to main content
Cloud Insights
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Instalación y configuración del operador de supervisión de Kubernetes

Colaboradores

Cloud Insights ofrece el Operador de Monitoreo de Kubernetes para la colección de Kubernetes. Vaya a Kubernetes > Colectores > +Kubernetes Collector para implementar un nuevo operador.

Antes de instalar el operador de supervisión de Kubernetes

Consulte "Requisitos previos" Documentación antes de instalar o actualizar el operador de supervisión de Kubernetes.

Instalación del operador de supervisión de Kubernetes

Instrucciones del operador de monitorización
Instrucciones del operador de monitorización

Pasos para instalar el agente del operador de supervisión de Kubernetes en Kubernetes:
  1. Introduzca un nombre de clúster y un espacio de nombres únicos. Si lo es actualizar Desde un operador de Kubernetes anterior, utilice el mismo nombre de clúster y espacio de nombres.

  2. Una vez introducidos, puede copiar el fragmento del comando de descarga en el portapapeles.

  3. Pegue el fragmento en una ventana bash y ejecútelo. Se descargarán los archivos de instalación del operador. Tenga en cuenta que el fragmento tiene una clave única y es válido durante 24 horas.

  4. Si tiene un repositorio personalizado o privado, copie el fragmento opcional Image pull, péguelo en un shell bash y ejecútelo. Una vez extraídas las imágenes, cópielas en tu repositorio privado. Asegúrese de mantener las mismas etiquetas y la misma estructura de carpetas. Actualice las rutas de acceso en operator-deployment.yaml, así como la configuración del repositorio de Docker en operator-config.yaml.

  5. Si lo desea, revise las opciones de configuración disponibles, como la configuración de repositorio privado o proxy. Puedes leer más sobre "opciones de configuración".

  6. Cuando esté listo, despliegue el Operador copiando el fragmento de aplicación kubectl, descargándolo y ejecutándolo.

  7. La instalación se realiza automáticamente. Cuando haya terminado, haga clic en el botón Next.

  8. Una vez finalizada la instalación, haga clic en el botón Next. Asegúrese también de eliminar o almacenar de forma segura el archivo operator-secrets.yaml.

Si utiliza un proxy, lea acerca de configurando proxy.

Si tiene un repositorio personalizado, lea acerca de utilizando un repositorio de docker personalizado/privado.

Componentes de supervisión de Kubernetes

La supervisión de Kubernetes de Cloud Insights se compone de cuatro componentes de supervisión:

  • Métricas de cluster

  • Rendimiento de red y mapa (opcional)

  • Registros de eventos (opcional)

  • Análisis de cambios (opcional)

Los componentes opcionales anteriores están habilitados de forma predeterminada para cada recopilador de Kubernetes; si decide que no necesita un componente para un recopilador en particular, puede deshabilitarlo navegando a Kubernetes > Colectores y seleccionando Modify Deployment en el menú de tres puntos del recopilador a la derecha de la pantalla.

Modificar el menú de implementación en la página de la lista de recopiladores de Kubernetes

La pantalla muestra el estado actual de cada componente y le permite desactivar o activar componentes para ese recopilador según sea necesario.

Opciones de implementación de Mody, 700

Actualizar

Actualiza al operador de supervisión de Kubernetes más reciente

Determine si existe una AgentConfiguration con el operador existente (si el espacio de nombres no es el valor predeterminado netapp-monitoring, sustituya el espacio de nombres adecuado):

 kubectl -n netapp-monitoring get agentconfiguration netapp-monitoring-configuration
Si existe una configuración de agente:

Si la configuración de agente no existe:

  • Anote el nombre del clúster reconocido por Cloud Insights (si su espacio de nombres no es la supervisión de netapp predeterminada, sustituya el espacio de nombres adecuado):

     kubectl -n netapp-monitoring get agent -o jsonpath='{.items[0].spec.cluster-name}'
    * Cree una copia de seguridad del Operador existente (si su espacio de nombres no es el control de netapp predeterminado, sustituya el espacio de nombres adecuado):
     kubectl -n netapp-monitoring get agent -o yaml > agent_backup.yaml
    * <<to-remove-the-kubernetes-monitoring-operator,Desinstalar>> El operador existente.
    * <<installing-the-kubernetes-monitoring-operator,Instale>> El operador más reciente.
    • Utilice el mismo nombre de clúster.

    • Después de descargar los últimos archivos YAML del operador, transfiera cualquier personalización encontrada en agent_backup.yaml al operator-config.yaml descargado antes de implementar.

    • Asegúrese de que lo está extracción de las imágenes de contenedor más recientes si utiliza un repositorio personalizado.

Detener e iniciar el operador de supervisión de Kubernetes

Para detener el operador de supervisión de Kubernetes:

 kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=0
Para iniciar el operador de supervisión de Kubernetes:
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=1

Desinstalando

Para eliminar el operador de supervisión de Kubernetes

Tenga en cuenta que el espacio de nombres predeterminado para el operador de supervisión de Kubernetes es la «supervisión de netapp». Si ha definido su propio espacio de nombres, sustituya este espacio de nombres en estos y todos los comandos y archivos subsiguientes.

Las versiones más recientes del operador de supervisión se pueden desinstalar con los siguientes comandos:

kubectl -n <NAMESPACE> delete agent -l installed-by=nkmo-<NAMESPACE>
kubectl -n <NAMESPACE> delete clusterrole,clusterrolebinding,crd,svc,deploy,role,rolebinding,secret,sa -l installed-by=nkmo-<NAMESPACE>

Si el operador de supervisión se ha desplegado en su propio espacio de nombres dedicado, suprima el espacio de nombres:

 kubectl delete ns <NAMESPACE>
Si el primer comando devuelve “no se han encontrado recursos”, utilice las siguientes instrucciones para desinstalar versiones anteriores del operador de supervisión.

Ejecute cada uno de los comandos siguientes en orden. Dependiendo de su instalación actual, algunos de estos comandos pueden devolver mensajes de ‘no se ha encontrado el objeto’. Estos mensajes pueden ignorarse con seguridad.

kubectl -n <NAMESPACE> delete agent agent-monitoring-netapp
kubectl delete crd agents.monitoring.netapp.com
kubectl -n <NAMESPACE> delete role agent-leader-election-role
kubectl delete clusterrole agent-manager-role agent-proxy-role agent-metrics-reader <NAMESPACE>-agent-manager-role <NAMESPACE>-agent-proxy-role <NAMESPACE>-cluster-role-privileged
kubectl delete clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding <NAMESPACE>-agent-manager-rolebinding <NAMESPACE>-agent-proxy-rolebinding <NAMESPACE>-cluster-role-binding-privileged
kubectl delete <NAMESPACE>-psp-nkmo
kubectl delete ns <NAMESPACE>

Si se ha creado previamente una restricción de contexto de seguridad:

kubectl delete scc telegraf-hostaccess

Acerca de las métricas de estado de Kube

El operador de supervisión de Kubernetes de NetApp instala sus propias métricas de estado kube para evitar conflictos con otras instancias.

Para obtener más información sobre Kube-State-Metrics, consulte "esta página".

Configuración/Personalización del Operador

Estas secciones contienen información sobre cómo personalizar la configuración del operador, cómo trabajar con proxy, cómo usar un repositorio de Docker personalizado o privado o cómo trabajar con OpenShift.

Opciones de configuración

La configuración más comúnmente modificada se puede configurar en el recurso personalizado AgentConfiguration. Puede editar este recurso antes de desplegar el operador editando el archivo operator-config.yaml. Este archivo incluye ejemplos de configuración comentados. Consulte la lista de "ajustes disponibles" para la versión más reciente del operador.

También puede editar este recurso después de desplegar el operador mediante el siguiente comando:

 kubectl -n netapp-monitoring edit AgentConfiguration
Para determinar si la versión implementada del operador admite AgentConfiguration, ejecute el siguiente comando:
 kubectl get crd agentconfigurations.monitoring.netapp.com
Si ve un mensaje “Error from server (NotFound)”, su operador debe actualizarse antes de poder usar AgentConfiguration.

Configurar el soporte del proxy

Hay dos lugares en los que puede usar un proxy en su entorno para instalar el operador de supervisión de Kubernetes. Pueden ser los mismos sistemas proxy o independientes:

  • Proxy necesario durante la ejecución del fragmento de código de instalación (utilizando "curl") para conectar el sistema donde se ejecuta el fragmento de código a su entorno Cloud Insights

  • El proxy que necesita el clúster de Kubernetes de destino para comunicarse con su entorno de Cloud Insights

Si usas un proxy para uno o ambos, para instalar el Monitor Operativo de Kubernetes, primero debes asegurarte de que tu proxy esté configurado para permitir una buena comunicación con tu entorno de Cloud Insights. Si tiene un proxy y puede acceder a Cloud Insights desde el servidor/equipo virtual desde el que desea instalar el operador, es probable que el proxy esté configurado correctamente.

Para el proxy utilizado para instalar el monitor operativo de Kubernetes, antes de instalar el operador, defina las variables de entorno http_proxy/https_proxy. En algunos entornos proxy, también es posible que tenga que establecer la variable no_proxy Environment.

Para configurar las variables, realice los siguientes pasos en su sistema antes de instalar el Operador de monitoreo de Kubernetes:

  1. Establezca las variables de entorno https_proxy y/o http_proxy para el usuario actual:

    1. Si el proxy que se está estableciendo no tiene autenticación (nombre de usuario/contraseña), ejecute el siguiente comando:

       export https_proxy=<proxy_server>:<proxy_port>
      .. Si el proxy que se está estableciendo tiene autenticación (nombre de usuario/contraseña), ejecute este comando:
      export http_proxy=<proxy_username>:<proxy_password>@<proxy_server>:<proxy_port>

Para que el proxy utilizado para su clúster de Kubernetes se comunique con su entorno de Cloud Insights, instale el operador de supervisión de Kubernetes después de leer todas estas instrucciones.

Configure la sección proxy de AgentConfiguration en operator-config.yaml antes de implementar el operador de supervisión de Kubernetes.

agent:
  ...
  proxy:
    server: <server for proxy>
    port: <port for proxy>
    username: <username for proxy>
    password: <password for proxy>

    # In the noproxy section, enter a comma-separated list of
    # IP addresses and/or resolvable hostnames that should bypass
    # the proxy
    noproxy: <comma separated list>

    isTelegrafProxyEnabled: true
    isFluentbitProxyEnabled: <true or false> # true if Events Log enabled
    isCollectorsProxyEnabled: <true or false> # true if Network Performance and Map enabled
    isAuProxyEnabled: <true or false> # true if AU enabled
  ...
...

Uso de un repositorio de Docker personalizado o privado

De forma predeterminada, el operador de supervisión de Kubernetes extraerá imágenes de contenedor del repositorio de Cloud Insights. Si tiene un clúster de Kubernetes utilizado como destino para la supervisión, y ese clúster está configurado para extraer solo imágenes de contenedor de un repositorio Docker privado o personalizado o un registro de contenedores, debe configurar el acceso a los contenedores que necesita el operador de supervisión de Kubernetes.

Ejecute «Image pull Snippet» desde el icono de instalación del operador de supervisión de NetApp. Este comando iniciará sesión en el repositorio de Cloud Insights, extraerá todas las dependencias de imágenes del operador y cerrará la sesión en el repositorio de Cloud Insights. Cuando se le solicite, introduzca la contraseña temporal del repositorio proporcionada. Este comando descarga todas las imágenes utilizadas por el operador, incluidas las funciones opcionales. Consulte a continuación las funciones para las que se utilizan estas imágenes.

Funcionalidad del operador principal y supervisión de Kubernetes

  • supervisión de netapp

  • ci-kube-rbac-proxy

  • ci-ksm

  • ci-telegraf

  • usuario raíz sin interrupciones

Registro de eventos

  • bits ci-fluido

  • ci-kubernetes-event-exporter

Rendimiento de red y mapa

  • ci-net-observador

Introduzca la imagen del operador docker en el repositorio de su proveedor de servicios de empresa/local/privado de acuerdo con las políticas de su empresa. Asegúrese de que las etiquetas de imagen y las rutas de acceso de directorio a estas imágenes del repositorio sean coherentes con las del repositorio de Cloud Insights.

Edite el despliegue de operador de supervisión en operator-deployment.yaml y modifique todas las referencias de imagen para utilizar su repositorio Docker privado.

image: <docker repo of the enterprise/corp docker repo>/kube-rbac-proxy:<ci-kube-rbac-proxy version>
image: <docker repo of the enterprise/corp docker repo>/netapp-monitoring:<version>

Edite AgentConfiguration en operator-config.yaml para reflejar la nueva ubicación de repositorio de Docker. Cree una nueva imagePullSecret para su repositorio privado, para más detalles consulte https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

agent:
  ...
  # An optional docker registry where you want docker images to be pulled from as compared to CI's docker registry
  # Please see documentation link here: link:task_config_telegraf_agent_k8s.html#using-a-custom-or-private-docker-repository
  dockerRepo: your.docker.repo/long/path/to/test
  # Optional: A docker image pull secret that maybe needed for your private docker registry
  dockerImagePullSecret: docker-secret-name

Instrucciones de OpenShift

Si se ejecuta en OpenShift 4,6 o superior, debe editar la configuración de AgentConfiguration en operator-config.yaml para activar la configuración runPrivileged:

# Set runPrivileged to true SELinux is enabled on your kubernetes nodes
runPrivileged: true

OpenShift puede implementar un nivel de seguridad añadido que puede bloquear el acceso a algunos componentes de Kubernetes.

Una nota sobre los secretos

Para eliminar el permiso del operador de supervisión de Kubernetes para ver los secretos en todo el clúster, elimine los siguientes recursos del archivo operator-setup.yaml antes de instalar:

 ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole
 ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding

Si se trata de una actualización, suprima también los recursos del clúster:

 kubectl delete ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole
 kubectl delete ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding

Si el análisis de cambios está activado, modifique AgentConfiguration o operator-config.yaml para anular el comentario de la sección de gestión de cambios e incluya kindsToIgnoreFromWatch: ''secrets'' en la sección de gestión de cambios. Observe la presencia y posición de comillas simples y dobles en esta línea.

# change-management:
  ...
  # # A comma separated list of kinds to ignore from watching from the default set of kinds watched by the collector
  # # Each kind will have to be prefixed by its apigroup
  # # Example: '"networking.k8s.io.networkpolicies,batch.jobs", "authorization.k8s.io.subjectaccessreviews"'
  kindsToIgnoreFromWatch: '"secrets"'
  ...

Verificando sumas de comprobación de Kubernetes

El instalador del agente de Cloud Insights realiza comprobaciones de integridad, pero algunos usuarios pueden querer realizar sus propias verificaciones antes de instalar o aplicar artefactos descargados. Para realizar una operación de sólo descarga (a diferencia de la descarga e instalación predeterminadas), estos usuarios pueden editar el comando de instalación del agente obtenido de la interfaz de usuario y eliminar la opción de instalación final.

Siga estos pasos:

  1. Copie el fragmento de instalador del agente como se indica.

  2. En lugar de pegar el fragmento en una ventana de comandos, péguelo en un editor de texto.

  3. Retire el “--install” final del comando.

  4. Copie el comando entero desde el editor de texto.

  5. Ahora péguela en la ventana de comandos (en un directorio de trabajo) y ejecútela.

    • Descargar e instalar (predeterminado):

       installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download –-install
      ** Solo descarga:
      installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download

El comando download-only descargará todos los artefactos necesarios de Cloud Insights al directorio de trabajo. Los artefactos incluyen, pero no se pueden limitar a:

  • una secuencia de comandos de instalación

  • un archivo de entorno

  • Archivos YAML

  • un archivo de suma de comprobación firmado (sha256.firmadas)

  • Un archivo PEM (netapp_cert.pem) para la verificación de firmas

La secuencia de comandos de instalación, el archivo de entorno y los archivos YAML se pueden verificar mediante inspección visual.

El archivo PEM puede verificarse confirmando que su huella digital es la siguiente:

 1A918038E8E127BB5C87A202DF173B97A05B4996
Más específicamente,
 openssl x509 -fingerprint -sha1 -noout -inform pem -in netapp_cert.pem
El archivo de suma de comprobación firmado se puede verificar mediante el archivo PEM:
 openssl smime -verify -in sha256.signed -CAfile netapp_cert.pem -purpose any
Una vez que todos los artefactos han sido verificados satisfactoriamente, la instalación del agente se puede iniciar ejecutando:
sudo -E -H ./<installation_script_name> --install

Toleraciones y daños

Los netapp-ci-telegraf-ds, netapp-ci-fluent-bit-ds y netapp-ci-net-observer-L4-ds DaemonSets deben programar un pod en cada nodo del clúster para recopilar correctamente los datos en todos los nodos. El operador ha sido configurado para tolerar algunos taints bien conocidos. Si ha configurado cualquier daño personalizado en sus nodos, evitando así que los pods se ejecuten en cada nodo, puede crear una tolerancia para esos daños "En el campo AgentConfiguration". Si ha aplicado daños personalizados a todos los nodos del cluster, también debe agregar las toleraciones necesarias al despliegue del operador para permitir que el pod del operador se programe y ejecute.

Más información acerca de Kubernetes "Tolerancias y taints".

Resolución de problemas

Algunas cosas que debe probar si encuentra problemas para configurar el operador de supervisión de Kubernetes:

Problema: Pruebe lo siguiente:

No veo un hipervínculo/conexión entre mi volumen persistente Kubernetes y el dispositivo de almacenamiento back-end correspondiente. Mi volumen persistente de Kubernetes se configura usando el nombre de host del servidor de almacenamiento.

Siga los pasos para desinstalar el agente de Telegraf existente y, a continuación, vuelva a instalar el último agente de Telegraf. Debe utilizar Telegraf versión 2.0 o posterior y Cloud Insights debe supervisar de forma activa el almacenamiento del clúster de Kubernetes.

Veo mensajes en los registros que se parecen a los siguientes:

E0901 15:21:39,962145 1 reflector.go:178] k8s.io/kube-state-metrics/internal/store/builder.go:352: Error al mostrar *v1.MutatingWebhookConfiguration: El servidor no pudo encontrar el recurso solicitado
E0901 15:21:43,168161 1 reflector.go:178] k8s.io/kube-state-metrics/internal/store/builder.go:352: Error al mostrar *v1.Lease: El servidor no pudo encontrar el recurso solicitado (get leases.coordination.k8s.io)
etc.

Estos mensajes pueden aparecer si ejecuta métricas de estado kube versión 2.0.0 o posteriores con versiones de Kubernetes inferiores a 1.20.


Para obtener la versión de Kubernetes:

kubectl version

Para obtener la versión kube-state-metrics:

kubectl get deploy/kube-state-metrics -o jsonpath='{..image}'

Para evitar que estos mensajes ocurran, los usuarios pueden modificar su implementación de métricas de estado-kube para deshabilitar los siguientes arrendamientos:

mutatingwebhookconfigurations
validatingwebhookconfigurations
volumeattachments resources

Más específicamente, pueden usar el siguiente argumento de la CLI:

resources=certificatesigningrequests,configmaps,cronjobs,daemonsets, despliegues,extremos,horizontalpodautoscalers,ingresas,trabajos,limitranges, espacios de nombres,networkpolicies,nodos,persistentvolumeclaims,volúmenes persistentes, presupuestos poddisruptionpods,replicasets,replicationcontroladoras,cuotas de recursos, secretos,servicios,statefulsets,storage

La lista de recursos predeterminada es:

«certificacionessolicitudes,configmaps,cronjobs,daemonsets,despliegues, extremos,horizontalpodautoescaladores,entradas,trabajos,arrendamientos,limitadores, mutatingwebhookconfiguraciones,espacios de nombres,networkpolicies,nodos, persistentvolumeclaims,volúmenes persistentes,presupuestos de disrupción,pods,replicaciones, controladoras replicación,recursos,cuotas,fulstorelsets,servicios validatingwebhookconfigurations,volumeattachments

Veo mensajes de error de Telegraf parecidos a los siguientes, pero Telegraf se inicia y se ejecuta:

Oct 11 14:23:41 ip-172-31-39-47 systemd[1]: Inició el agente de servidor controlado por complementos para informar métricas en InfluxDB.
Oct 11 14:23:41 ip-172-31-39-47 telegraf[1827]: Time="2021-10-11T14:23:41Z" level=error msg="no se pudo crear el directorio de caché. /etc/telegraf/.cache/snowflake, err: mkdir /etc/telegraf/.ca
che: permiso denegado. Ignorado\n' func= «gosnowflake.(*defaultLogger).Errorf» file= «log.go:120»
Oct 11 14:23:41 ip-172-31-39-47 telegraf[1827]: Time=“2021-10-11T14:23:41Z” level=error msg=“Error al abrir. Ignorada. abra /etc/telegraf/.cache/snowflake/ocsp_response_cache.json: no es así
Archivo o directorio\n func= «gosnowflake.(*defaultLogger).Errorf» file= «log.go:120»
Oct 11 14:23:41 ip-172-31-39-47 telegraf[1827]: 2021-10-11T14:23:41Z I! Arranque de Telegraf 1.19.3

Este es un problema conocido. Consulte "Este artículo de GitHub" para obtener más detalles. Mientras Telegraf esté activo y en funcionamiento, los usuarios pueden ignorar estos mensajes de error.

En Kubernetes, mis pods de Telegraf informan del siguiente error:
Error al procesar la información de mountstats: Error al abrir el archivo mountstats: /Hostfs/proc/1/mountstats, error: Open /hostfs/proc/1/mountstats: Permission denied

Si SELinux está habilitado y se aplica, es probable que impida que los pods de Telegraf accedan al archivo /proc/1/mountstats en el nodo Kubernetes. Para superar esta restricción, edite la configuración de agentconfiguration y active la configuración runPrivileged. Si quiere más detalles, consulte la "Instrucciones de OpenShift".

En Kubernetes, mi pod de Telegraf ReplicaSet está informando del siguiente error:

[inputs.prometheus] Error en plugin: No se pudo cargar keypair /etc/kubernetes/pki/etcd/server.crt:/etc/kubernetes/pki/etcd/server.key: Open /etc/kubernetes/pki/etcd/server.crt: No existe tal archivo o directorio

El Pod Telegraf ReplicaSet está diseñado para ejecutarse en un nodo designado como maestro o etcd. Si el Pod ReplicaSet no se está ejecutando en uno de estos nodos, obtendrá estos errores. Compruebe si los nodos maestro/etcd tienen sugerencias. Si lo hacen, añada las toleraciones necesarias al Telegraf ReplicaSet, telegraf-rs.

Por ejemplo, edite ReplicaSet…​

kubectl edit rs telegraf-rs

…​y añadir las toleraciones apropiadas a la especificación. A continuación, reinicie el Pod ReplicaSet.

Tengo un entorno PSP/PSA. ¿Afecta esto a mi operador de supervisión?

Si su clúster de Kubernetes se ejecuta con la política de seguridad de Pod (PSP) o la admisión de seguridad de Pod (PSA), debe actualizar al último operador de supervisión de Kubernetes. Siga estos pasos para actualizar al Operador actual con soporte para PSP/PSA:

1. Desinstalar el operador de monitorización anterior:

kubectl delete agent-monitoring-netapp -n netapp-monitoring
kubectl delete ns netapp-monitoring
kubectl delete crd agents.monitoring.netapp.com
kubectl delete clusterrole agent-manager-role agent-proxy-role agent-metrics-reader
kubectl delete clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding

2. Instale la última versión del operador de supervisión.

Me encontré con problemas tratando de implementar el Operador, y tengo PSP/PSA en uso.

1. Edite el agente usando el siguiente comando:

kubectl -n agente de edición de <name-space>

2. Marque 'seguridad-política-habilitada' como 'falso'. Esto desactivará las políticas de seguridad de Pod y la admisión de seguridad de Pod y permitirá que el operador se despliegue. Confirme mediante los siguientes comandos:

Kubectl Get psp (debe mostrar la política de seguridad de Pod eliminada)
kubectl get all -n <namespace>

grep -i psp (debe mostrar que no se encuentra nada)

Se han visto errores "ImagePullBackoff"

Estos errores pueden verse si tiene un repositorio de Docker personalizado o privado y aún no ha configurado el operador de supervisión de Kubernetes para reconocerlo correctamente. Leer más acerca de la configuración para repo personalizado/privado.

Tengo un problema con la implementación de mi operador de supervisión y la documentación actual no me ayuda a resolverla.

Capture o anote el resultado de los siguientes comandos y póngase en contacto con el equipo de soporte técnico.

 kubectl -n netapp-monitoring get all
 kubectl -n netapp-monitoring describe all
 kubectl -n netapp-monitoring logs <monitoring-operator-pod> --all-containers=true
 kubectl -n netapp-monitoring logs <telegraf-pod> --all-containers=true

Los pods de Net-Observer (Workload Map) en el espacio de nombres del operador están en CrashLoopBackOff

Estos pods corresponden al recopilador de datos de asignación de cargas de trabajo para la observabilidad de red. Pruebe lo siguiente:
• Compruebe los registros de uno de los pods para confirmar la versión mínima del kernel. Por ejemplo:

----
{«ci-tenant-id»: «your-tenant-id», «collector-cluster»: «your-k8s-cluster-name», «environment»: «prod», «level»: «error», «msg»: «failed in validation. Razón: La versión del kernel 3.10.0 es menor que la versión mínima del kernel de 4.18.0”, “Time”: “2022-11-09T08:23:08Z”}
----

• Net-Observer requiere que la versión del kernel de Linux sea al menos 4.18.0. Compruebe la versión del núcleo con el comando “uname -r” y asegúrese de que son >= 4.18.0

Los pods se ejecutan en el espacio de nombres del operador (predeterminado: Supervisión de netapp), pero no se muestran datos en la interfaz de usuario para el mapa de cargas de trabajo o las métricas de Kubernetes en consultas

Compruebe la configuración de hora en los nodos del clúster K8S. Para obtener informes precisos de auditoría y datos, se recomienda encarecidamente sincronizar la hora en el equipo del agente mediante el Protocolo de hora de red (NTP) o el Protocolo de hora de red simple (SNTP).

Algunos de los pods del observador de red en el espacio de nombres del operador están en estado Pendiente

NET-observer es un DaemonSet y ejecuta un pod en cada nodo del cluster k8s.
• Observe el pod que está en estado Pendiente y compruebe si está experimentando un problema de recursos para la CPU o la memoria. Asegúrese de que la memoria y la CPU requeridas estén disponibles en el nodo.

Veo lo siguiente en mis registros inmediatamente después de instalar el operador de supervisión de Kubernetes:

[inputs.prometheus] Error en plugin: Error al realizar la solicitud HTTP a http://kube-state-metrics.<namespace>.svc.cluster.local:8080/metrics: Get http://kube-state-metrics.<namespace>.svc.cluster.local:8080/metrics: Dial tcp: Buscar kube-state-metrics.<namespace>.svc.cluster.local: No existe ese host

Este mensaje normalmente solo aparece cuando se instala un nuevo operador y el pod telegraf-rs está activo antes de que el pod ksm esté activo. Estos mensajes deben detenerse una vez que todos los pods se estén ejecutando.

No veo que se esté recopilando ninguna métrica para los cronjobs de Kubernetes que existen en mi clúster.

Compruebe la versión de Kubernetes (es decir, kubectl version). Si es v1,20.x o inferior, esta es una limitación esperada. La versión de métricas de estado de kube implementada con el operador de supervisión de Kubernetes solo admite v1.cronjob. Con Kubernetes 1,20.x y más abajo, el recurso cronjob está en v1beta.cronjob. Como resultado, kube-state-metrics no puede encontrar el recurso cronjob.

Después de instalar el operador, los pods de telegraf-ds ingresan CrashLoopBackOff y los registros de pod indican “su: Error de autenticación”.

Edite la sección telegraf en AgentConfiguration y establezca dockerMetricCollectionEnabled en false. Para obtener más información, consulte el apartado del operador "opciones de configuración".

NOTA: si está utilizando la edición federal de Cloud Insights, los usuarios con restricciones sobre el uso de su no podrán recopilar métricas de Docker porque el acceso al socket de Docker requiere ejecutar el contenedor de telegraf como root o usar su para agregar el usuario de telegraf al grupo de Docker. La recopilación de métricas de Docker y el uso de su están habilitados de forma predeterminada; para deshabilitar ambos, elimine la entrada telegraf.docker en el archivo AgentConfiguration:

…​
espec.:
…​
telégrafo:
…​
     - nombre: docker
            modo de ejecución:
              - DaemonSet
            sustituciones:
              - KEY: DOCKER_UNIX_SOCK_PLACEHOLDER
                valor: unix:///run/docker.sock
…​
…​

Veo mensajes de error repetidos parecidos a los siguientes en mis registros de Telegraf:

¡E! [Agent] Error al escribir en outputs.http: Post «\https://<tenant_url>/rest/v1/lake/ingest/influxdb»: Fecha límite de contexto excedida (Cliente. Se ha excedido el tiempo de espera de cabeceras)

Edite la sección telegraf en AgentConfiguration y aumente outputTimeout a 10s. Para obtener más información, consulte el apartado del operador "opciones de configuración".

Faltan datos involved dobject para algunos registros de eventos.

Asegúrese de haber seguido los pasos de la "Permisos" sección anterior.

¿Por qué veo que funcionan dos pods del operador de supervisión, uno llamado netapp-ci-monitoring-operator-<pod> y otro llamado monitoring-operator-<pod>?

A partir del 12 de octubre de 2023, Cloud Insights ha reestructurado el operador para servir mejor a nuestros usuarios; para que esos cambios se adopten plenamente, debe hacerlo retire el operador antiguo y.. instale la nueva.

Los eventos de My kubernetes dejaron de generar informes inesperadamente para Cloud Insights.

Recupere el nombre del pod de evento-exportador:

`kubectl -n netapp-monitoring get pods

grep event-exporter

awk '{print $1}'

sed 's/event-exporter./event-exporter/'`
Debe ser «exportador-de-centro-eventos-netapp» o «exportador-de-eventos». A continuación, edite el agente de supervisión kubectl -n netapp-monitoring edit agent, Y establezca el valor de LOG_FILE para reflejar el nombre de pod de evento-exportador adecuado que se encuentra en el paso anterior. Más concretamente, EL ARCHIVO_REGISTRO debe establecerse en «/var/log/containers/netapp-ci-event-exporter.log» o «/var/log/containers/event-exporter*.log»

…​.
fluent-bit:
…​
- name: event-exporter-ci
substitutions:
- key: LOG_FILE
values:
- /var/log/containers/netapp-ci-event-exporter*.log
…​
…​.
Alternativamente, uno también puede desinstalar y.. vuelva a instalar el agente.

Estoy viendo que los pods han sido puestos en marcha por el operador de supervisión de Kubernetes se han bloqueado debido a la falta de recursos.

Consulte el operador de supervisión de Kubernetes "opciones de configuración" Para aumentar los límites de la CPU o la memoria según sea necesario.

La falta de una imagen o una configuración no válida provocó que los pods de métricas de estado de netapp-ci-kube no se iniciaran o estuvieran listos. Ahora, StatefulSet se bloquea y los cambios de configuración no se aplican a los pods de métricas de estado-ci-kube.

El StatefulSet está en a. "roto" estado. Después de resolver cualquier problema de configuración, renueve los pods de métricas de estado-ci-kube-state.

Los pods de métricas de estado-ci-kube-state no se pueden iniciar tras ejecutar una actualización del operador de Kubernetes y lanzar ErrImagePull (no lograr extraer la imagen).

Intente restablecer los pods manualmente.

Los mensajes de «Event descarded as as as older then maxEventAgeSeconds» se observan para mi clúster de Kubernetes en Log Analysis.

Modifique el Operador agentconfiguration y aumente el event-exporter-maxEventAgeSeconds (es decir, a 60s), event-exporter-kubeQPS (es decir, a 100) y event-exporter-kubeBurst (es decir, a 500). Para obtener más información sobre estas opciones de configuración, consulte "opciones de configuración" página.

Telegraf advierte de, o se bloquea debido a, memoria bloqueable insuficiente.

Intente aumentar el límite de memoria bloqueable para Telegraf en el sistema operativo/nodo subyacente. Si aumentar el límite no es una opción, modifique la configuración de agentconfiguration NKMO y establezca UNPROTECTED en TRUE. Esto indicará a Telegraf que no intente reservar páginas de memoria bloqueadas. Aunque esto puede suponer un riesgo para la seguridad, ya que los secretos descifrados se pueden intercambiar en el disco, permite su ejecución en entornos en los que no es posible reservar la memoria bloqueada. Para obtener más información sobre las opciones de configuración UNPROTECTED, consulte la "opciones de configuración" página.

Puede encontrar información adicional en "Soporte técnico" o en la "Matriz de compatibilidad de recopilador de datos".