Distribuzione di Agent di registrazione per cluster Kubernetes utilizzando un grafico Helm
È possibile utilizzare un diagramma Helm per distribuire l'istanza Agent di registrazione v1.6.x per raccogliere e instradare i log dell'infrastruttura e delle applicazioni da un cluster Kubernetes a un'istanza IBM Cloud Logs.
È inoltre possibile utilizzare Terraform IBM Modules (TIM) per Agent di registrazione per distribuire e configurare l'agente dei registri sui cluster Kubernetes supportati. Questo modulo automatizza la distribuzione basata su Helm e le impostazioni di configurazione chiave utilizzando l'automazione Infrastructure as Code ( IaC ).
Completare i seguenti passaggi per distribuire un agente su un cluster Kubernetes:
Prima di iniziare
-
Assicurarsi di avere accesso al cluster Kubernetes con i permessi per creare spazi dei nomi e distribuire l'agente.
-
Installa le seguenti CLI:
-
La IBM Cloud CLI per accedere al IBM Cloud e gestire i servizi IBM Cloud come la creazione di una chiave API.
-
La CLI Kubernetes per gestire il cluster utilizzando i comandi
kubectl. Ulteriori informazioni.
-
-
Leggete il Agent di registrazione.
-
Controllare le versioni dell'agente disponibili. Per ulteriori informazioni, vedere Verifica delle versioni dell'agente disponibili. Si noti che la versione del diagramma Helm corrisponderà alla versione dell'agente; ad esempio, se si utilizza la versione 1.3.0 dell'agente, esiste un diagramma Helm con la versione 1.3.0 che accompagna tale versione.
Passo 1. Definire il metodo di autenticazione per l'agente
Scegliere il tipo di identità e il metodo di autenticazione per l'agente. Quindi, creare un profilo di fiducia o una chiave API. Il ruolo richiesto per l'invio dei registri a IBM Cloud Logs è Sender.
È possibile utilizzare un ID di servizio o un profilo attendibile come identità utilizzata dall'agente per autenticarsi con il servizio IBM® Cloud Logs. Per ulteriori informazioni, vedere Concessione di autorizzazioni IAM per l'ingestione.
Scegli una delle seguenti opzioni:
Opzione 1: Autenticazione tramite un profilo di fiducia
Creare un profilo di fiducia. Per ulteriori informazioni, vedere Generazione di un profilo attendibile per l'ingestione.
Opzione 2: Autenticazione tramite chiave API dell'ID del servizio
Generare una chiave API per l'autenticazione dell'ID del servizio. Per ulteriori informazioni, vedere Generazione di una chiave API per l'ingestione.
Passo 2. Configurazione del file dei valori del grafico Helm per il Agent di registrazione
Completa i seguenti passi:
-
Creare un file chiamato
logs-values.yamlcon il seguente contenuto:Questo file contiene le configurazioni specifiche dell'installazione.
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 -
Aggiornare i campi del file yaml con i valori specifici del proprio ambiente.
Parametri richiesti dalla cartaHelm Nome campo Descrizione image.versionLa versione dell'agente da distribuire vedi Fase 1 clusterNameIl nome del cluster: questo introdurrà il tag kubernetes.cluster_namein tutte le righe di logenv.ingestionHostL'endpoint di ingresso pubblico o privato per l'istanza dell' IBM Cloud Logs, per ricevere i registri env.ingestionPortPorta di ingresso dell'endpoint pubblico
. Ingresso endpoint pubblico =443
. Ingresso endpoint privato (VPE) =443
. Ingresso endpoint privato (CSE) =3443env.iamModeTrustedProfileoIAMAPIKeyin base al metodo di autenticazione scelto in Fase 1env.trustedProfileIDSe iamModeèTrustedProfile, fornire l'ID profilo attendibile, altrimenti non è necessario (ad esempio:Profile-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).env.iamEnvironmentDetermina il punto finale di autenticazione IAM corretto. I valori validi sono Production,PrivateProductionoCustom. Se omesso, il valore predefinito è "Production".env.iamHostSe iamEnvironmentèCustom, fornire l'host IAM (ad esempio:private.eu-de.iam.cloud.ibm.com), altrimenti non è necessario.
Passo 3. Installare il grafico Helm
Se si utilizza iamMode come IAMAPIKey, l'apikey deve essere presente in un segreto Kubernetes chiamato logs-agent con il nome della chiave IAM_API_KEY. Il segreto può essere creato utilizzando
il diagramma Helm, includendo l'opzione --set secret.iamAPIKey=<your iamAPIKey> quando si esegue l'installazione del timone. Se il segreto è stato creato manualmente o se si utilizza iamMode=TrustedProfile,
non includere questa opzione.
Completa i seguenti passi:
-
Accedi al cluster. Per ulteriori informazioni, vedere Accesso al cluster.
-
Eseguire un Helm dry run per vedere le risorse che verranno create dal grafico Helm.
Se si utilizza il comando
iamMode=TrustedProfile, il comando completo è: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-namespaceSe si utilizza il comando
iamMode=IAMAPIKey, il comando completo è: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-secretdove:
<install-name>è il nome dell'installazione dell' Helm. (logs-agent)<chart-version>è la versione della carta del timone. La versione del grafico Helm deve corrispondere alla versione dell'immagine dell'agente. Per ulteriori informazioni, vedere Helm versioni del grafico.<PATH>è il percorso della directory in cui si trova il filelogs-values.yaml.<APIKey-value>è l'apikey IAM associata al ServiceID impostato al passo 1- Aggiungere
--hide-secretper nascondere la chiave API dai dati di output dopo l'esecuzione del comando.
Se si desidera esaminare il contenuto della carta del timone in locale, è possibile scaricare la carta del timone sul proprio computer utilizzando il comando:
helm pull oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version>. Il file tgz scaricato contiene il contenuto del grafico.Ad esempio, è possibile eseguire il seguente comando dalla directory in cui è disponibile il file
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 volta verificate le risorse da creare, eseguire l'installazione Helm senza l'opzione
--dry-runSe si utilizza il comando
iamMode=TrustedProfile, il comando completo è:helm install <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespaceSe si utilizza il comando
iamMode=IAMAPIKey, il comando completo è: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>dove:
<install-name>è il nome dell'installazione dell' Helm. (logs-agent)<chart-version>è la versione della carta del timone. La versione del grafico Helm deve corrispondere alla versione dell'immagine dell'agente. Per ulteriori informazioni, vedere Helm versioni del grafico.<PATH>è il percorso della directory in cui si trova il filelogs-values.yaml.<APIKey-value>è l'apikey IAM associata al ServiceID impostato al passo 1
Passo 4. Verificare che l'agente sia stato distribuito correttamente
Quando l'agente viene distribuito, verificare che vengano create le seguenti risorse:
-
Lo spazio dei nomi
ibm-observe.Eseguire il seguente comando per elencare gli spazi dei nomi nel cluster e verificare che
logger-agentmostri lo stato attivo.kubectl get namespace -
Una mappa di configurazione
logs-agentnello spazio dei nomiibm-observe.Eseguire il seguente comando per visualizzare i dettagli della configurazione dell'agente.
kubectl get configmap logs-agent -n ibm-observeÈ possibile utilizzare anche:
kubectl describe configmaps logs-agent -n ibm-observe -
Un daemonset
logs-agentnello spazio dei nomiibm-observe.Eseguite il seguente comando per visualizzare il daemonset.
kubectl get ds -n ibm-observe -
Verificare che gli agenti siano avviati:
kubectl -n ibm-observe get ds logs-agent -
Recuperare l'elenco dei pod dell'agente utilizzando il seguente 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 colonna
READYmostra1/1per tutti i pod, con unSTATUSdiRunning. Verificare che sia pronto un pod agente per ogni nodo del cluster.Per verificare quanti lavoratori sono disponibili nel cluster, è possibile eseguire il seguente 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+558d959Il numero di elementi in ciascuno di questi due elenchi deve essere lo stesso e si possono far corrispondere gli indirizzi IP nei nomi dei nodi con i valori nella colonna
NODEdell'elenco pod.Se i nodi non sono denominati in base al loro IP, è possibile aggiungere l'opzione
-o widee confrontare i valori nella colonnaINTERNAL-IP.Per visualizzare i log di un pod, eseguire
kubectl logs <POD_NAME>> -n ibm-observePer controllare la carta del timone distribuita, eseguire
helm list -n ibm-observe
Passo 5. Verificare che i registri vengano consegnati alla destinazione di destinazione
Completa i seguenti passi:
-
Andare all'interfaccia web della propria istanza IBM Cloud Logs.
-
Quando l'agente è configurato correttamente, è possibile visualizzare i registri attraverso la vista predefinita del dashboard. Il Agent di registrazione etichetta i record di log con un oggetto kubernetes che include il nome del cluster.
kubernetes.cluster_name:<CLUSTER_NAME>È possibile eseguire la query
kubernetes.cluster_name:<YOUR_CLUSTER_NAME>nella propria istanza IBM Cloud Logs per cercare i registri generati dal cluster.