Compartir a través de


Administración del agente de Container Insights

Container Insights usa una versión contenedorizada del agente de Log Analytics para Linux. Después de la implementación inicial, es posible que tenga que realizar tareas rutinarias u opcionales durante su ciclo de vida. Este artículo explica los procedimientos para actualizar el agente manualmente y deshabilitar la recopilación de variables de entorno desde un contenedor determinado.

Nota:

Si ya ha implementado un clúster AKS y ha habilitado la supervisión mediante la CLI de Azure o una plantilla de Resource Manager, no puede usar kubectl para actualizar, eliminar, volver a implementar o implementar el agente. La plantilla debe implementarse en el mismo grupo de recursos que el clúster.

Actualización del agente de Container Insights

Container Insights usa una versión contenedorizada del agente de Log Analytics para Linux. Cuando se publica una nueva versión del agente, este se actualiza automáticamente en los clústeres de Kubernetes administrados que se hospedan en Azure Kubernetes Service (AKS) y Kubernetes habilitado para Azure Arc.

Si se produce un error en la actualización del agente de un clúster hospedado en AKS, en este artículo también se describe el proceso para actualizar el agente de forma manual. Para seguir las versiones publicadas, consulte los Anuncios de versiones del agente.

Actualización del agente en un clúster de AKS

El proceso para actualizar el agente en clústeres de AKS consta de dos pasos. El primer paso es deshabilitar la supervisión con Container Insights mediante la CLI de Azure. Siga los pasos descritos en el artículo Deshabilitar Container Insights en el clúster de Kubernetes. Mediante la CLI de Azure, puede quitar el agente de los nodos del clúster sin afectar a la solución ni a los datos correspondientes que se almacenan en el área de trabajo.

Nota

Mientras realiza esta actividad de mantenimiento, los nodos del clúster no reenvían los datos recopilados. Las vistas de rendimiento no mostrarán datos entre el momento en que quitó el agente y el momento en que se instaló la nueva versión.

El segundo paso es instalar la nueva versión del agente. Siga los pasos descritos en Habilitación de la supervisión mediante la CLI de Azure para finalizar este proceso.

Después de volver a habilitar la supervisión, es posible que pasen unos 15 minutos hasta que pueda ver actualizada la métrica de estado del clúster. Tiene dos métodos para comprobar que el agente se actualizó correctamente:

  • Ejecute el comando kubectl get pod <ama-logs-agent-pod-name> -n kube-system -o=jsonpath='{.spec.containers[0].image}'. En el estado devuelto, observe el valor de Imagen para el agente de Azure Monitor en la sección Contenedores de la salida.
  • En la pestaña Nodos, seleccione el nodo de clúster. En el panel Propiedades de la derecha, anote el valor de Etiqueta de imagen del agente.

La versión del agente que se muestra debe coincidir con la versión más reciente de la página Historial de versiones.

Actualización del agente en un clúster de Kubernetes híbrido

Siga los pasos que se describen a continuación para actualizar el agente en un clúster de Kubernetes que se ejecute en:

  • Clústeres de Kubernetes autoadministrados que se hospedan en Azure con el motor de AKS.
  • Clústeres de Kubernetes autoadministrados que se hospedan en Azure Stack o en el entorno local con el motor de AKS.

Si el área de trabajo de Log Analytics está en una instancia comercial de Azure, ejecute el siguiente comando:

$ helm upgrade --set omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<my_prod_cluster> incubator/azuremonitor-containers

Si el área de trabajo de Log Analytics está en Microsoft Azure operado por 21Vianet, ejecute el siguiente comando:

$ helm upgrade --set omsagent.domain=opinsights.azure.cn,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers

Si el área de trabajo de Log Analytics está en Azure Gobierno de EE. UU, ejecute el siguiente comando:

$ helm upgrade --set omsagent.domain=opinsights.azure.us,omsagent.secret.wsid=<your_workspace_id>,omsagent.secret.key=<your_workspace_key>,omsagent.env.clusterName=<your_cluster_name> incubator/azuremonitor-containers

Deshabilitar la recopilación de variables de entorno en un contenedor

Container Insights recopila las variables de entorno de los contenedores que se ejecutan en un pod y las muestra en el panel de propiedades del contenedor seleccionado en la vista Contenedores. Puede controlar este comportamiento si deshabilita la recopilación de un contenedor específico, ya sea durante la implementación del clúster de Kubernetes, o después, al establecer la variable de entorno AZMON_COLLECT_ENV. Esta característica está disponible en la versión del agente ciprod11292018 y posterior.

Para deshabilitar la recopilación de variables de entorno en un contenedor nuevo o existente, establezca la variable AZMON_COLLECT_ENV con un valor de False en el archivo de configuración YAML de implementación de Kubernetes.

- name: AZMON_COLLECT_ENV  
  value: "False"  

Ejecute el comando siguiente para aplicar el cambio a los clústeres de Kubernetes que no sean de Red Hat OpenShift en Azure: kubectl apply -f <path to yaml file>. Para editar ConfigMap y aplicar este cambio a los clústeres de Red Hat OpenShift en Azure, ejecute el comando siguiente:

oc edit configmaps container-azm-ms-agentconfig -n openshift-azure-logging

Este comando abre el editor de texto predeterminado. Después de establecer la variable, guarde el archivo en el editor.

Para verificar que el cambio de configuración surta efecto, seleccione un contenedor en la vista Contenedores en Container Insights. En el panel de propiedades, expanda Variables de entorno. La sección debería mostrar solo la variable que creó anteriormente, que es AZMON_COLLECT_ENV=FALSE. Para todos los otros contenedores, la sección Variables de entorno debe enumerar todas las variables de entorno detectadas.

Para volver a habilitar la detección de las variables de entorno, aplique el mismo proceso que usó anteriormente y cambie el valor de False a True. A continuación, vuelva a ejecutar el comando kubectl para actualizar el contenedor.

- name: AZMON_COLLECT_ENV  
  value: "True"  

Actualización semántica de la versión del agente de Container Insights

Container Insights ha cambiado la versión de la imagen y la convención de nomenclatura a [formato SemVer] (https://semver.org/). SemVer ayuda a los desarrolladores a realizar un seguimiento de cada cambio realizado en el software durante su fase de desarrollo y garantiza que el control de versiones de software sea coherente y significativo. La versión anterior tenía el formato ciprod<timestamp>-<commitId> y win-ciprod<timestamp>-<commitId>, nuestras primeras versiones de imagen con el formato Semver son 3.1.4 para Linux y win-3.1.4 para Windows.

Semver es un esquema de control de versiones de software universal que se define en el formato MAJOR.MINOR.PATCH, que sigue las siguientes restricciones:

  1. Incremente la versión PRINCIPAL cuando realice cambios de API incompatibles.
  2. Incremente la versión SECUNDARIA al agregar funcionalidad de forma compatible con versiones anteriores.
  3. Incremente la versión PARCHE cuando realice correcciones de errores compatibles con versiones anteriores.

Con el aumento de Kubernetes y el ecosistema de OSS, Container Insights migrará para usar la imagen de SemVer siguiendo el estándar recomendado de K8s, donde con cada versión secundaria introducida todos los cambios importantes deberán documentarse públicamente con cada nueva versión de Kubernetes.

Reparación de agentes duplicados

Si ha habilitado manualmente Container Insights mediante métodos personalizados anteriores a octubre de 2022, puede terminar con varias versiones del agente que se ejecutan juntas. Siga los pasos siguientes para borrar esta duplicación.

  1. Recopile detalles de cualquier configuración personalizada, como los límites de memoria y CPU en los contenedores omsagent.

  2. Revise los límites de recursos predeterminados para ama-logs y determine si cumplen sus necesidades. Si no es así, es posible que tenga que crear un tema de soporte técnico para ayudar a investigar y alternar los límites de memoria y cpu. Esto puede ayudar a solucionar los problemas de limitaciones de escala que algunos clientes encontraban anteriormente, lo que provocó excepciones de OOMKilled.

    SO Nombre del controlador Límites predeterminados
    Linux ds-cpu-limit-linux 500 m
    Linux ds-memory-limit-linux 750Mi
    Linux rs-cpu-limit 1
    Linux rs-memory-limit 1.5Gi
    Windows ds-cpu-limit-windows 500 m
    Windows ds-memory-limit-windows 1 Gi
  3. Limpie los recursos de la incorporación anterior:

    Si ha incorporado previamente mediante el gráfico de Helm :

    Enumere todas las versiones en los espacios de nombres con el siguiente comando:

     helm list --all-namespaces
    

    Limpie el gráfico instalado para Container Insights con el siguiente comando:

    helm uninstall <releaseName> --namespace <Namespace>
    

    Si ha incorporado anteriormente mediante la implementación de yaml :

    Descargue el archivo yaml de implementación personalizada anterior con el siguiente comando:

    curl -LO raw.githubusercontent.com/microsoft/Docker-Provider/ci_dev/kubernetes/omsagent.yaml
    

    Limpie el gráfico de omsagent antiguo con el siguiente comando:

    kubectl delete -f omsagent.yaml
    
  4. Deshabilite Container Insights para limpiar todos los recursos relacionados mediante las instrucciones de Deshabilitar Container Insights en el clúster de Kubernetes

  5. Vuelva a incorporar a Container Insights mediante las instrucciones de Habilitar Container Insights en el clúster de Kubernetes

Pasos siguientes

Si experimenta problemas al actualizar el agente, revise la guía de solución de problemas para obtener ayuda.