Despliegue del Agente de registro para Kubernetes mediante un Helm
Puede utilizar un gráfico Helm para desplegar la instancia Agente de registro v1.6.x para recopilar y enrutar registros de infraestructura y aplicaciones desde un clúster Kubernetes a una instancia IBM Cloud Logs.
También puede utilizar Terraform IBM Modules (TIM) para Agente de registro para desplegar y configurar el agente de logs en los clústeres compatibles de Kubernetes. Este módulo automatiza el despliegue basado en Helm y los ajustes de configuración clave utilizando la automatización de la Infraestructura como Código ( IaC ).
Complete los siguientes pasos para desplegar un agente en un clúster Kubernetes:
Antes de empezar
-
Asegúrate de tener acceso al clúster Kubernetes con permisos para crear namespaces y desplegar el agente.
-
Instalación de las CLI siguientes:
-
La IBM Cloud CLI para iniciar sesión en el IBM Cloud y gestionar IBM Cloud servicios como la creación de una clave API.
-
La CLI de Kubernetes para gestionar el clúster mediante mandatos
kubectl. Más información.
-
-
Lea sobre el Agente de registro.
-
Compruebe las versiones de agente disponibles. Para obtener más información, consulte Comprobar las versiones de agente disponibles. Tenga en cuenta que la versión del gráfico Helm coincidirá con la versión del agente - por ejemplo, si está usando la versión 1.3.0 del agente hay un gráfico Helm con la versión 1.3.0 que acompaña a esa versión.
Paso 1. Definir el método de autenticación para el agente
Elija el tipo de identidad y el método de autenticación para el agente. A continuación, cree un perfil de confianza o una clave API. El rol que se requiere para enviar logs a IBM Cloud Logs es Sender.
Puede utilizar un ID de servicio o un perfil de confianza como la identidad que utiliza el agente para autenticarse con el servicio IBM® Cloud Logs. Para obtener más información, consulte Concesión de permisos IAM para la ingestión.
Elija una de estas opciones:
Opción 1: Autenticación mediante un perfil de confianza
Cree un perfil de confianza. Para obtener más información, consulte Generación de un perfil de confianza para la ingestión.
Opción 2: Autenticación mediante una clave API de ID de servicio
Generar una clave de API para la autenticación de ID de servicio. Para obtener más información, consulte Generación de una clave de API para la ingestión.
Paso 2. Configuración del archivo de valores del gráfico Helm para el Agente de registro
Complete los pasossiguientes:
-
Cree un archivo llamado
logs-values.yamlcon el siguiente contenido:Este archivo contiene las configuraciones específicas de su implantación.
metadata: name: "logs-agent" image: version: "1.6.1" # required clusterName: "ENTER_CLUSTER_NAME" # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering. env: # ingestionHost is a required field. For example: # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com" ingestionHost: "" # required # If you are using private CSE proxy, then use port number "3443" # If you are using private VPE Gateway, then use port number "443" # If you are using the public endpoint, then use port number "443" ingestionPort: "" # required iamMode: "TrustedProfile" # trustedProfileID - trusted profile id - required for iam trusted profile mode trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile -
Actualice los campos del archivo yaml con los valores específicos de su entorno.
Parámetros necesarios del cuadro deHelm Nombre de campo Descripción image.versionLa versión del agente que se implementará, véase el paso 1 clusterNameEl nombre del clúster: esto introducirá la etiqueta kubernetes.cluster_nameen todas las líneas de registroenv.ingestionHostEl punto de entrada público o privado para que la instancia de IBM Cloud Logs reciba los registros env.ingestionPortEl puerto de punto final de entrada
Punto final de entrada público =443
Punto final de entrada privado (VPE) =443
Punto final de entrada privado (CSE) =3443env.iamModeTrustedProfileoIAMAPIKeyen función del método de autenticación elegido en Paso 1env.trustedProfileIDSi iamModeesTrustedProfile, proporcione el ID de perfil de confianza; de lo contrario, no es necesario (por ejemplo:Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).env.iamEnvironmentDetermina el punto final de autenticación IAM correcto. Los valores válidos son Production,PrivateProductionoCustom. Si se omite, el valor predeterminado esProduction.env.iamHostSi iamEnvironmentesCustom, proporcione el host IAM (por ejemplo:private.eu-de.iam.cloud.ibm.com), de lo contrario, esto no es necesario.
Paso 3. Instale la carta Helm
Si utiliza iamMode como IAMAPIKey, el apikey debe estar presente en un Kubernetes secreto llamado logs-agent con el nombre de clave IAM_API_KEY. El secreto puede crearse utilizando la carta
Helm incluyendo la opción --set secret.iamAPIKey=<your iamAPIKey> al ejecutar la instalación del timón. Si el secreto se ha creado manualmente o si está utilizando iamMode=TrustedProfile entonces no incluya
esta opción.
Complete los pasossiguientes:
-
Inicie una sesión en el clúster. Para más información, consulte Acceda a su clúster.
-
Realice una Helm para ver los recursos que creará el gráfico Helm.
Si está utilizando el
iamMode=TrustedProfileentonces el comando completo es:helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceSi está utilizando el
iamMode=IAMAPIKeyentonces el comando completo es:helm install <install-name> --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value> --hide-secretdonde:
<install-name>es el nombre de la instalación de Helm (logs-agent)<chart-version>es la versión de la carta del timón. La versión del gráfico Helm debe coincidir con la versión de la imagen del agente. Para más información, consulte Helm.<PATH>es la ruta del directorio donde se encuentra el archivologs-values.yaml.<APIKey-value>es el apikey IAM asociado al ServiceID configurado en el paso 1- Añade
--hide-secretpara ocultar la clave API y que no se muestre en los datos de salida tras la ejecución del comando.
Si desea inspeccionar el contenido de la carta del timón localmente, puede descargar la carta del timón a su ordenador utilizando el comando:
helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. El archivo tgz descargado contiene el contenido del gráfico.Por ejemplo, puede ejecutar el siguiente comando desde el directorio donde esté disponible el archivo
logs-values.yaml:helm install logs-agent --dry-run oci://icr.io/ibm-observe/logs-agent-helm --version 1.6.0 --values ./logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<secret> --hide-secret -
Una vez verificados los recursos a crear, ejecute la instalación de Helm sin la opción
--dry-runSi está utilizando el
iamMode=TrustedProfileentonces el comando completo es:helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceSi está utilizando el
iamMode=IAMAPIKeyentonces el comando completo es:helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>donde:
<install-name>es el nombre de la instalación de Helm (logs-agent)<chart-version>es la versión de la carta del timón. La versión del gráfico Helm debe coincidir con la versión de la imagen del agente. Para más información, consulte Helm.<PATH>es la ruta del directorio donde se encuentra el archivologs-values.yaml.<APIKey-value>es el apikey IAM asociado al ServiceID configurado en el paso 1
Paso 4. Compruebe que el agente se ha desplegado correctamente
Cuando se despliega el agente, compruebe que se crean los siguientes recursos:
-
El espacio de nombres
ibm-observe.Ejecuta el siguiente comando para listar los namespaces del cluster y comprueba que el
logger-agentaparece con estado activo.kubectl get namespace -
Un mapa de configuración
logs-agenten el espacio de nombresibm-observe.Ejecute el siguiente comando para ver los detalles de configuración del agente.
kubectl get configmap logs-agent -n ibm-observeTambién puedes usar:
kubectl describe configmaps logs-agent -n ibm-observe -
Un daemonset
logs-agenten el espacio de nombresibm-observe.Ejecute el siguiente comando para ver el conjunto de demonios.
kubectl get ds -n ibm-observe -
Compruebe que los agentes están iniciados:
kubectl -n ibm-observe get ds logs-agent -
Recupere la lista de pods de agentes utilizando el siguiente comando:
kubectl get pods -n ibm-observe -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES logs-agent-4lwvt 1/1 Running 0 2d5h 172.17.61.181 192.168.16.4 <none> <none> logs-agent-g7z87 1/1 Running 0 2d5h 172.17.0.48 192.168.32.4 <none> <none> logs-agent-nw56s 1/1 Running 0 2d5h 172.17.32.232 192.168.0.10 <none> <none>La columna
READYmuestra1/1para todas las vainas, con unSTATUSdeRunning. Compruebe que hay un pod de agente listo para cada nodo de su clúster.Para comprobar cuántos trabajadores están disponibles en su clúster, puede ejecutar el siguiente comando:
kubectl get nodesNAME STATUS ROLES AGE VERSION 192.168.0.10 Ready master,worker 8d v1.20.0+558d959 192.168.32.4 Ready master,worker 8d v1.20.0+558d959 192.168.16.4 Ready master,worker 8d v1.20.0+558d959El número de elementos de cada una de estas dos listas tiene que ser el mismo, y puede hacer coincidir las direcciones IP de los nombres de nodo con los valores de la columna
NODEdel listado de pods.Si sus nodos no se nombran por su IP, puede añadir la opción
-o widey comparar los valores en la columnaINTERNAL-IPen su lugar.Para ver los registros de un pod, ejecute
kubectl logs <POD_NAME>> -n ibm-observePara comprobar el mapa del timón desplegado, ejecute
helm list -n ibm-observe
Paso 5. Compruebe que los registros se envían al destino deseado
Complete los pasossiguientes:
-
Vaya a la interfaz de usuario web de su instancia IBM Cloud Logs..
-
Cuando su agente esté correctamente configurado, podrá ver los registros a través de la vista predeterminada del panel de control. El Agente de registro etiqueta los registros de log con un objeto kubernetes que incluye el nombre del clúster.
kubernetes.cluster_name:<CLUSTER_NAME>Puede ejecutar la consulta
kubernetes.cluster_name:<YOUR_CLUSTER_NAME>en su instancia IBM Cloud Logs para buscar registros generados por su clúster.