Enviar IBM Cloud Kubernetes Service datos de registro a IBM Cloud Logs
En este tutorial, se configura IBM Cloud® Kubernetes Service para enviar los registros directamente a IBM Cloud Logs. Estos registros le ayudan a solucionar problemas y a mejorar la salud y el rendimiento de sus clústeres y aplicaciones de Kubernetes.
Objetivos
En este tutorial aprenderás:
-
Despliegue el Agente de registro en un clúster IBM Cloud Kubernetes Service existente.
-
Compruebe que los datos de registro fluyen a su instancia IBM Cloud Logs.
Antes de empezar
Antes de empezar, asegúrate de cumplir los requisitos previos.
-
Crea un IBM Cloud® Kubernetes Service, y aprovisiona una instancia de IBM Cloud Logs.
-
Instale la CLI de IBM Cloud.
-
Instale la herramienta de línea de comandos Kubernetes, kubectl.
-
Instala el procesador JSON CLI (
jq). -
Instala el procesador YAML CLI (
yq).
Una alternativa a la instalación de la IBM Cloud CLI, kubectl, jq, y yq sería utilizar el IBM Cloud Shell
Conéctese a su clúster
Conéctese a su clúster IBM Cloud Kubernetes Service. La conexión al clúster permite ejecutar comandos kubectl en el clúster.
-
Inicie sesión en la cuenta de IBM Cloud. Incluya la opción
--ssosi utiliza un ID federado.ibmcloud login -
Instale el complemento IBM Cloud Kubernetes Service CLI
ibmcloud plugin install ks -
Enumere los clústeres disponibles y anote el clúster que debe conectarse.
ibmcloud ks clusters -
Conéctese a su clúster. Sustituya
<cluster_name>por el nombre de su clúster.ibmcloud ks cluster config --cluster <cluster_name> -
Verifique que está conectado a su clúster y que puede ejecutar comandos
kubectllistando todos los pods que se están ejecutando en todos los espacios de nombres.kubectl get pods --all-namespaces
Creación de la clave de API
Antes de aprovisionar el Agente de registro como daemonset, necesita una clave de API de IAM y un punto final de ingestión de registro. La IBM Cloud CLI se utiliza para obtener esta información.
En primer lugar, cree un ID de servicio y obtenga una clave API.
-
Crea un identificador de servicio ejecutando el siguiente comando.
ibmcloud iam service-id-create kubernetes-logs-agent --description "Service ID for sending logs from IKS" -
Conceda el rol
Senderpara IBM Cloud Logs al ID de servicio creado ejecutando el siguiente comando.ibmcloud iam service-policy-create kubernetes-logs-agent --service-name logs --roles Sender -
Cree una clave API IAM ejecutando el siguiente comando. Puede personalizar el nombre de la clave (
kubernetes-logs-agent-apikey) y la descripción (--d) si es necesario.ibmcloud iam service-api-key-create kubernetes-logs-agent-apikey kubernetes-logs-agent --description "API key for sending logs to the IBM Cloud Logs service"La clave API se devuelve en la salida que sigue a
API Key:ID ApiKey-xxxxxxxx-b815-46c7-bc9f-516115bc31c6 Name kubernetes-logs-agent-apikey Description API key for sending logs to the IBM Cloud Logs service Created At 2024-09-18T17:17+0000 API Key <apikey is displayed here> Locked false
Nota:
-
Cada vez que se crea una clave API, se genera un nuevo secreto IAM.
-
Asegúrese de almacenar de forma segura la clave API, ya que contiene información sensible.
Determinar el punto final de registro
El segundo dato que se necesita es el punto final de ingestión para su instancia IBM Cloud Logs. Utilice este comando para recuperar la URL:
ibmcloud resource service-instances --service-name logs --long --output JSON | jq '[.[] | {name: .name, id: .id, region: .region_id, ingestion_endpoint: .extensions.external_ingress}]'
El punto final es similar a:
ingestion_endpoint: 3a622101-7521-4002-bf91-8c26e17eedcf.ingress.eu-de.logs.cloud.ibm.com
Creación del archivo YAML del agente
En este paso, cree el archivo YAML que se utiliza para configurar el conjunto de demonios del agente.
-
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.4.0" # required clusterName: "" # 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.
Despliegue del conjunto de demonios
Utilizando la clave API, la URL del punto final y el archivo YAML, despliegue el agente en su clúster.
-
Acceda al registro Helm ejecutando el comando
helm registry login:helm registry login -u iambearer -p $(ibmcloud iam oauth-tokens --output json | jq -r .iam_token | cut -d " " -f2) icr.io{: tag-windows}. Los usuarios [de Windows] PowerShell deben usar este comando en su lugar:
helm registry login -u iambearer -p ((ibmcloud iam oauth-tokens --output json | ConvertFrom-Json).iam_token -replace 'Bearer ', '') icr.ioPara más información, consulte Uso de gráficos Helm en el Container Registry: Obtención de gráficos desde otro registro o repositorio Helm.
-
Despliegue el agente.
Si está utilizando una clave API de ID de servicio (
iamMode=IAMAPIKey), ejecute el siguiente comando: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 del gráfico del timón. La versión del gráfico de Helm debe coincidir con la versión de la imagen del agente. Para más información, consulte las versiones de los gráficos deHelm.<PATH>es la ruta del directorio donde se encuentra el archivo 'logs-values.yaml'.<APIKey-value>es el apikey IAM asociado con el ServiceID configurado en el Paso 1
También puede desplegar el agente utilizando un perfil de confianza. Para obtener más información, consulte Despliegue del agente de registro para clústeres Kubernetes mediante un gráfico de Helm.
Compruebe que se envían los registros
Para asegurarse de que los registros IBM Cloud® Kubernetes Service fluyen correctamente a IBM Cloud Logs, siga estos pasos:
-
Accede a la IBM Cloud Logs UI y haz clic en
Livetail.
-
Haga clic en
Startpara ver los registros a medida que llegan en tiempo real.
Debería verse un flujo continuo de datos de registro de la aplicación kube-system. Estos registros provienen de su clúster.