Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina su che si trova nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare le impostazioni del CD Argo
Con EKS Capability for Argo CD, ottieni un'esperienza Argo CD completamente gestita. Upstream Argo CD offre molte impostazioni e funzionalità opzionali e il CD EKS Capability for Argo ne supporta un sottoinsieme. Per le impostazioni supportate, è possibile configurarle allo stesso modo del CD Argo upstream, tramite l'interfaccia del cluster. argocd-cm ConfigMap
AWS ne legge i campi supportati ConfigMap e li applica all'istanza Argo CD gestita.
Le sezioni seguenti descrivono come configurare argocd-cm ConfigMap le impostazioni supportate.
Prerequisiti
Prima di configurare le impostazioni del CD Argo, è necessario disporre di:
-
È stato creato un cluster EKS con la funzionalità Argo CD (vedi) Crea una funzionalità Argo CD
-
Lo spazio dei nomi configurato per Argo CD nella funzionalità (per impostazione predefinita, lo spazio dei nomi)
argocd -
La
kubectlCLI configurata per comunicare con il cluster
Configura argocd-cm ConfigMap
Per configurare le impostazioni del CD Argo supportate, create un ConfigMap nome argocd-cm nel cluster. La funzionalità gestita legge i campi supportati da questo ConfigMap e li applica all'istanza Argo CD gestita. La funzionalità ignora tutti i campi e le funzionalità non supportati impostati. Controlla l'elenco dei campi supportati per confermare che un'impostazione abbia effetto.
Creane uno ConfigMap con i seguenti requisiti:
-
Assegna un nome al ConfigMap
argocd-cm. -
Createlo nello spazio dei nomi configurato per Argo CD nella funzionalità (lo spazio dei nomi impostato nella configurazione di Argo CD quando avete creato la funzionalità). Per impostazione predefinita, questo è il namespace.
argocd -
Applica l'etichetta.
app.kubernetes.io/part-of: argocdQuesta etichetta è obbligatoria e corrisponde al comportamento originario di Argo CD. -
Usa lo stesso formato di campo e le stesse chiavi del CD Argo originale.
L'esempio seguente mostra la ConfigMap struttura:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: # Supported settings go here (see the following sections)
Importante
A non ConfigMap è un archivio sicuro. Non inserire segreti, credenziali o altre informazioni sensibili nel argocd-cm ConfigMap.
Impostazioni supportate
La funzionalità gestita supporta il seguente argocd-cm campo:
| Campo | Description |
|---|---|
|
|
Script di controllo dello stato personalizzati per le risorse personalizzate. Per informazioni, consulta Controlli dell'integrità personalizzati. |
Controlli dell'integrità personalizzati
Argo CD valuta lo stato delle risorse che utilizza. Per le risorse Kubernetes standard come Deployments and Services, Argo CD dispone di una logica di integrità integrata. Per le risorse personalizzate che Argo CD non riconosce, non ha una logica di integrità integrata e non riporta lo stato di integrità.
Quando una risorsa personalizzata non viene sottoposta a controlli sullo stato di salute, Argo CD non ne segnala lo stato e la esclude dallo stato generale dell'applicazione. Di conseguenza, un'applicazione può segnalare Healthy anche quando le sue risorse sono ancora in fase di provisioning o hanno fallito. Ciò significa anche che le ondate di sincronizzazione possono avanzare prima che tali risorse siano pronte, poiché l'ordine di sincronizzazione dipende dallo stato di salute segnalato.
Con i controlli di integrità personalizzati, puoi definire la logica di integrità per le tue risorse personalizzate, in modo che Argo CD registri lo stato di salute accurato e sequenzi correttamente le implementazioni. Definite i controlli di integrità personalizzati nello stesso modo in cui utilizzate il CD Argo originale, utilizzando le stesse chiavi di configurazione. Gli script upstream esistenti e gli esempi della community funzionano con il CD EKS Capability for Argo senza modifiche.
Built-in controlli sanitari per ACK e kro
Il CD EKS Capability for Argo include controlli di integrità integrati per le risorse AWS Controllers for Kubernetes (ACK) e kro (Kube Resource Orchestrator). Queste risorse riportano uno stato accurato senza configurazioni aggiuntive.
Per modificare il modo in cui la funzionalità valuta lo stato di una risorsa ACK o kro, puoi definire un controllo di integrità personalizzato per quel tipo di risorsa. Un controllo di integrità personalizzato definito per un tipo di risorsa sostituisce il controllo di integrità integrato per quel tipo.
Scrivi un controllo sanitario personalizzato
Definisci un controllo di integrità personalizzato aggiungendo uno script Lua a argocd-cm ConfigMap, utilizzando una chiave nel seguente formato:
resource.customizations.health.<group>_<kind>
Sostituiscilo <group> con il gruppo API della Custom Resource e <kind> con il suo genere. Ad esempio, la chiave per una risorsa personalizzata con il gruppo API example.com e il tipo Database èresource.customizations.health.example.com_Database.
Lo script Lua ha accesso all'oggetto risorsa tramite la obj variabile globale. Lo script deve restituire una tabella con un status campo impostato su uno traHealthy, ProgressingDegraded, oSuspended. Lo script può anche impostare un message campo opzionale per fornire un messaggio di stato descrittivo.
L'esempio seguente ConfigMap definisce un controllo dello stato di salute per una risorsa Database personalizzata. Lo script riporta la risorsa nello stato in Healthy cui si trova Ready e come Progressing diversamente:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs
Per ulteriori informazioni sul formato dello script di controllo dello stato, sull'elenco dei controlli di integrità integrati e sugli esempi della community che è possibile adattare, consultate Resource Health
Sicurezza e limitazioni
Grazie alla funzionalità gestita, gli script di controllo dello stato personalizzati vengono eseguiti in un sistema di calcolo isolato e completamente gestito. L'ambiente di esecuzione è isolato per funzionalità e non ha accesso ai dati del cluster o alle AWS API. Non esegui il provisioning, non applichi patch o gestisci alcuna parte dell'ambiente di esecuzione.
Tieni presente quanto segue quando scrivi controlli di integrità personalizzati da utilizzare con EKS Capability:
-
Le librerie Lua standard non sono disponibili. L'
useOpenLibsopzione è sempre disabilitata, che è l'impostazione predefinita nel CD Argo upstream. Gli script non possono accedere al sistema operativo o al file system. Se si esegue la migrazione di uno script da un CD Argo autogestito che si basa su librerie Lua standard, potrebbe non funzionare allo stesso modo nella funzionalità. Si consiglia di testare gli script di controllo dello stato di salute in un ambiente di sviluppo prima di utilizzarli in produzione.
Se la valutazione dello stato di integrità è temporaneamente non disponibile, i report di funzionalità hanno interessato le Risorse personalizzate Progressing anziché rimuoverne lo stato di integrità. Ciò mantiene le risorse interessate visibili nello stato dell'Applicazione fino al ripristino della valutazione.
Verifica un controllo sanitario personalizzato
Dopo aver applicato o aggiornato il argocd-cm ConfigMap, conferma che il controllo sanitario è attivo:
-
Nell'interfaccia utente di Argo CD, scegliete un'applicazione che includa una risorsa personalizzata del tipo per il quale avete definito un controllo di integrità. Conferma che la risorsa riporti lo stato di integrità restituito dallo script. In alternativa,
argocd app getesegui e rivedi lo stato di integrità della risorsa.<application-name> -
Se la risorsa non riporta lo stato di salute previsto, verifica quanto segue:
-
ConfigMap È denominato
argocd-cme si trova nello spazio dei nomi configurato per Argo CD nella funzionalità. -
ConfigMap Ha l'etichetta richiesta.
app.kubernetes.io/part-of: argocd -
La chiave di controllo dello stato utilizza la chiave corretta
<group>_<kind>per il tipo di risorsa.
-