Kubernetes Configurazione dei cluster
Per raccogliere i dati necessari all'allocazione dei costi dei container, è necessario distribuire IBM FinOps Agent, l'agente di raccolta dati di nuova generazione per Cloudability Containers. In questo documento sono riportate alcune indicazioni relative a uno scenario di migrazione dall'agente di misurazione legacy Cloudability; se state effettuando la configurazione per la prima volta, potete tranquillamente ignorarle.
Configurazione dell' IBM FinOps Agent per Cloudability
Ciò si ottiene attraverso un'implementazione HELM fornita per ogni cluster. I comandi HELM possono essere generati seguendo i seguenti passaggi:
Spostarsi su Insights > Containers.
Selezionare il pulsante "Provision Clusters ".
Compila il modulo indicando il nome del tuo cluster e specificando se utilizzi la versione Kubernetes o la versione OpenShift.
Fare clic su Avanti > Genera comando.
Installare l'Unified Agent
Prerequisiti:
Google Kubernetes Engine ( GKE ) istruzioni specifiche
È necessario aggiungere un 'etichettadi cluster in ciascun cluster come segue:
- Legenda:
gke-cluster - Valore: il nome del cluster specificato nell' Helm e come ID del cluster. Ciò consente a Cloudability di associare i cluster di GKE alle singole voci del file di fatturazione di GCP e di allocare i costi ai vostri cluster. Deve essere univoco in tutti i cluster creati tramite GKE.
Cloudability sarà necessario importare un file di fatturazione contenente le etichette del cluster che hai aggiunto; l'operazione potrebbe richiedere fino a 48 ore. Una volta che Apptio avrà elaborato il nuovo file di fatturazione, dovrai creare una nuova mappatura dei tag in Cloudability. Imposta una dimensione del tag Cloudability come "Nome cluster GKE " e associala al gke-cluster tag.
Assicurati che il tuo account disponga del ruolo di amministratore del cluster prima di distribuire l'agente delle metriche. Per impostazione predefinita, un account utente non ha il ruolo di cluster-admin. Eseguire il seguente comando sul cluster GKE per assegnare a un utente il ruolo di amministratore del cluster:
"kubectl create clusterrolebinding username-cluster-admin-binding --
clusterrole=cluster-admin --user=username@emailaddress.com"
Requisiti di rete
L'agente unificato richiede l'accesso in uscita alle seguenti posizioni:
- Cloudability Punti di interfaccia API
- Endpoint dell'API Frontdoor
- S3 Bucket di caricamento
Per i dettagli sulla rete in uscita, consultare il file README su GitHub relativo all'agente unificato disponibile qui: IBM FinOps Agent Helm Chart
Requisiti di stoccaggio:
L'agente IBM FinOps richiede una richiesta di volume persistente configurabile (impostazione predefinita: 8Gi ). Questa modifica è stata apportata per ridurre la possibilità di perdita di dati se/quando l'agente viene riprogrammato. L'agente ora memorizza i campioni su questo volume e cercherà di recuperare tutti i campioni dopo un riavvio. Questo miglioramento migliora notevolmente la capacità dell'agente di recuperare i dati in caso di guasti.
Container Registry cambiamento:
L'agente IBM FinOps non viene memorizzato in Docker come l'attuale metrics-agent. L'agente IBM FinOps è invece memorizzato in ICR. Potrebbe quindi essere necessario aggiornare la lista bianca del registro dei container per consentire all'agente IBM FinOps di scaricare l'immagine ICR. Il registro dei container di Agent di IBM FinOps è:
icr.io/ibm-finops/agent:vx.x.x
Se è necessario estrarre l'immagine localmente per copiarla nel registro del contenitore. È possibile eseguire il seguente comando docker/podman pull:
podman pull icr.io/ibm-finops/agent:v0.0.25 --platform=linux/amd64
Autenticazione:
È importante sottolineare che il vecchio agente di misurazione di Cloudability utilizzava una chiave API specifica per i container. L'agente IBM FinOps non utilizzerà né supporterà più questa chiave API. I clienti devono invece creare una chiave API per l'agente in Frontdoor e raccogliere il loro ID ambiente Frontdoor.
Creare un utente per gestire la chiave API del contenitore:
Affinché la funzione Container Insights funzioni, è necessario che nell'ambiente Frontdoor siano abilitate le chiavi API
Si consiglia ai clienti di creare un utente "account di servizio" specifico per il container all'interno del proprio dominio, al fine di gestire la propria chiave API in futuro. In questo modo, la chiave API per il caricamento non è associata a un utente specifico che potrebbe essere disattivato in futuro. La persona che crea il nuovo utente e la chiave API deve essere un utente amministratore nel proprio ambiente Frontdoor.
Andare a "Access Wizard" in "Access Administration", selezionare "Add User(s)", impostare "Customer" e "Environment". Infine, premere "Conferma"

Immettere le informazioni sull'utente e premere "Avanti"

Selezionare "Assegnazione di ruoli", "Non inviare all'utente un'e-mail di attivazione" e premere "Conferma" per creare l'utente

Assicurarsi che l'utente sia selezionato per l'assegnazione dei ruoli

Assegnare il ruolo “CloudabilityContainerUploader” all'utente e premere "Avanti"/"Conferma".

Andare in "Home", cercare l'utente appena creato e fare clic sul suo "Nome utente"

Premete "Visualizza profilo utente"

Aggiungi una chiave API per l'utente

Immettere un nome per la chiave API (ad esempio: IBM -Finops-agent), impostare "No Expiration" (nessuna scadenza) se non è già stato impostato e premere conferma.
Memorizzare le credenziali della chiave API (chiave pubblica e chiave privata ) da utilizzare successivamente nell'installazione dell'agente.
Premete "Concedere l'accesso"
Selezionare l'ambiente e premere "Avanti"

Aggiungere il ruolo “CloudabilityContainerUploader” alla chiave e premere "Avanti". Questo ruolo ha accesso limitato all'endpoint di caricamento dei contenitori.

Verificare che la chiave sia stata creata e abbia il ruolo corretto

Raccolta dell'ID dell'ambiente della porta d'ingresso
Andare alla porta d'ingresso
In alto a destra selezionate il logo del profilo e fate clic su "Account utente"

Passare alla scheda Accesso all'ambiente
Raccogliere l'ID dell'ambiente nella scheda Ambiente della tabella
Assicurarsi che l'ambiente sia lo stesso utilizzato per l'accesso Cloudability

Esempio di formato ID:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Distribuzione dell'agente di monitoraggio con Helm
Prerequisiti:
Per poter utilizzare i grafici è necessario installare Helm. Per iniziare, consulta la documentazione di Helm.
Aggiornare le politiche di rete del cluster per consentire i nuovi requisiti di rete (se necessario)
Raccogliere le chiavi pubbliche e private dell'API
Raccogliere l'ID dell'ambiente della porta d'ingresso
Consigliamo vivamente di utilizzare un nome univoco clusterId (nome del cluster) per ogni cluster di Kubernetes. L'uso di nomi duplicati può causare discrepanze nei dati o un'allocazione dei costi non accurata nei report di " Cloudability ".
Una volta che Helm è stato configurato correttamente, aggiungere il repo come segue:
helm repo add ibm-finops https://kubecost.github.io/finops-agent-chart
Se questo repo è già stato aggiunto in precedenza, aggiornarlo:
helm repo update
Installare Helm Repo
helm install ibm-finops-agent ibm-finops/finops-agent \
--set agent.cloudability.enabled=true \
--set agent.cloudability.uploadRegion=<uploadRegion> \
--set agent.cloudability.parseMetricData=false \
--set agent.cloudability.secret.create=true \
--set agent.cloudability.secret.cloudabilityAccessKey="<PublicKey>" \
--set agent.cloudability.secret.cloudabilitySecretKey="<PrivateKey>" \
--set agent.cloudability.secret.cloudabilityEnvId="<FDEnvID>" \
--set clusterId="<ClusterName>" \
--create-namespace -n ibm-finops-agent
Per disinstallare Helm Repo:
helm uninstall ibm-finops-agent
Se il tuo cluster sta attualmente utilizzando il vecchio agente di metriche Cloudability, puoi tranquillamente lasciarlo in esecuzione finché non verifichi che il nuovo agente FinOps IBM abbia completato con successo il caricamento dei dati per 24 ore. L'agente IBM FinOps può essere installato ed eseguito in parallelo all'agente Cloudability, ma si consiglia di disattivare l'agente Cloudability una volta che il nuovo agente sarà stabile nel cluster.
UploadRegion dipende dalla regione in cui si trova l'ambiente Cloudability del cliente. I valori supportati sono i seguenti
US: us (o us-west-2 )
UE: eu (o eu-central-1 )
AU: au (o ap-southeast-2 )
ME: io (o me-central-1 )
CA: ca (o ca-central-1 )
Hybrid EU (clienti che hanno una porta d'ingresso EU ma caricano i dati dei contenitori nella regione USA) : hybrid-eu
AU ibrido (clienti che hanno la porta d'ingresso AU ma caricano i dati dei contenitori nella regione USA): hybrid-au
ME ibrido (clienti che hanno ME frontdoor ma caricano i dati dei contenitori nella regione USA) : hybrid-me
Il nome del clusterId cluster deve essere univoco e, se è stato precedentemente configurato dal vecchio agente di misurazione, deve corrispondere a quello specificato CLOUDABILITY_CLUSTER_NAME per evitare eventuali problemi nell'acquisizione dei costi.
L'agente unificato supporta molte delle stesse configurazioni dell'agente per le metriche in uscita Cloudability. Se il tuo agente di monitoraggio attuale presenta configurazioni specifiche (ad esempio, configurazioni PROXY), ti invitiamo a consultare qui i parametri supportati da Helm.
È possibile aggiungerli al comando di installazione, ad esempio:
helm install ibm-finops-agent ibm-finops/finops-agent \
--set agent.cloudability.enabled=true \
--set agent.cloudability.uploadRegion=<uploadRegion> \
--set agent.cloudability.parseMetricData=false \
--set agent.cloudability.secret.create=true \
--set agent.cloudability.secret.cloudabilityAccessKey="<PublicKey>" \
--set agent.cloudability.secret.cloudabilitySecretKey="<PrivateKey>" \
--set agent.cloudability.secret.cloudabilityEnvId="<FDEnvID>" \
--set agent.cloudability.outboundProxy="http://x.x.x.x:8080" \
--set agent.cloudability.parseMetricsData="true"
--set clusterId="<ClusterName>" \
--create-namespace -n ibm-finops-agent
Assicurarsi che il pod ibm-finops-agent sia in esecuzione
kubectl get pods -n ibm-finops-agent ### Example Output Below ### NAME READY STATUS RESTARTS AGE ibm-finops-agent-7bbf99d9fb-kmhh9 1/1 Running 0 1mControllare i log dei pod per verificare che l'agente stia caricando correttamente i dati su Cloudability. Ci vorranno 10 minuti per vedere il primo log di caricamento riuscito.
kubectl logs <POD_NAME> -n ibm-finops-agent ### Example Output Below ### INF Starting IBM Finops Agent... DBG HTTP server started on port 9003 INF Initializing cldy emitter INF emitting sample to Cldy 0 INF added sample to Cldy INF emitting sample to Cldy 1 INF added sample to Cldy INF emitting sample to Cldy 2 INF added sample to Cldy INF Attempt 1: performing login request to FrontDoor using KeyAccess and KeySecret INF Attempt 1: acquiring presigned URL from Cloudability with acquired Open-token INF Attempt 1: uploading sample to Cloudability S3 using presigned URL INF successfully uploaded metric sample xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx-xx-xx-xx.tgz to cloudability
Ancora una volta, ci vorranno 10 minuti prima che venga visualizzato il log "successfully uploaded metric sample to cloudability". Questo è un punto comune di fallimento negli agenti se non hanno attivato le impostazioni corrette di whitelisting/proxy.
Dopo 24 ore dall'avvio dell'agente IBM FinOps e dal completamento del caricamento. Se stai ancora utilizzando un'implementazione dell'agente di metriche Cloudability, ora puoi rimuovere tale infrastruttura e mantenere attivo solo il chart Helm di IBM FinOps Agent.
I dati del cluster dovrebbero essere disponibili in Container Insights entro 24-48 ore. Se dovessi riscontrare problemi con l'implementazione, contatta il supporto di IBM Apptio.
Configurazione dei contenitori avanzati di Cloudability
Se hai effettuato l'aggiornamento a Advanced Containers dell' Cloudability, puoi iniziare facilmente a configurare i cluster utilizzando la guida alla configurazione integrata nel prodotto, disponibile nella pagina di configurazione degli agenti all'interno del tuo ambiente ( https://api.cloudability.com/v3/kubecost/monitor:clusters:connect ). La guida supporta le nuove installazioni, gli aggiornamenti da versioni precedenti dell'agente e gli ambienti in cui lo stato attuale dell'agente è sconosciuto. Fornisce istruzioni dettagliate per installare l'agente, verificare la connettività e accertarsi che l'installazione sia andata a buon fine.
Durante l'installazione, la procedura guidata configura entrambi gli emettitori necessari: l'emettitore Container Insights, che gestisce i report esistenti relativi ai container di Cloudability, e l'emettitore Advanced Containers, che consente l'allocazione dei costi di Kubernetes, fornisce consigli di ottimizzazione e offre funzionalità di reporting aggiuntive. Dopo l'installazione, potrebbero essere necessari alcuni minuti prima che i dati del cluster vengano visualizzati in " Cloudability : Advanced Containers".