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à.
Crea una funzionalità Argo CD usando AWS CLI
Crea una funzionalità Argo CD sul tuo cluster Amazon EKS utilizzando la CLI AWS . Questa procedura ti guida nella creazione di un ruolo IAM, nella configurazione AWS dell'integrazione con Identity Center e nella verifica che la funzionalità sia attiva.
Prerequisiti
-
AWS CLI: versione
2.12.3o successiva. Per verificare la tua versione,aws --versionesegui. Per ulteriori informazioni, vedere la Guida per l'utente all'installazione nella AWS Command Line Interface. -
kubectl— Uno strumento a riga di comando per lavorare con i cluster Kubernetes. Per ulteriori informazioni, consulta Configura kubectl ed eksctl . -
AWS Identity Center configurato: Argo CD richiede AWS Identity Center per l'autenticazione. Gli utenti locali non sono supportati. Se non hai configurato AWS Identity Center, vedi Guida introduttiva a AWS Identity Center per creare un'istanza di Identity Center e Aggiungi utenti e Aggiungi gruppi per creare utenti e gruppi per l'accesso ad Argo CD.
-
Almeno un utente o gruppo in AWS Identity Center: è necessario disporre di almeno un utente o gruppo configurato nell'istanza di Identity Center per assegnare le mappature dei ruoli RBAC di Argo CD e fornire l'accesso all'interfaccia utente di Argo CD.
Fase 1: Creare un ruolo di capacità IAM
Crea un file di policy sulla fiducia:
cat > argocd-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF
Crea il ruolo IAM:
aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
Nota
Se prevedi di utilizzare le integrazioni opzionali con AWS Secrets Manager o AWS CodeConnections, aggiungi le autorizzazioni al ruolo. Per esempi di policy IAM e linee guida alla configurazione, consulta Gestisci i segreti delle applicazioni con AWS Secrets Manager e. Connect ai repository Git con AWS CodeConnections
(Facoltativo) Configura un endpoint privato
Per impostazione predefinita, l'interfaccia utente e l'endpoint API di Argo CD sono accessibili pubblicamente su Internet. Se è necessario limitare l'accesso, è possibile configurare un endpoint VPC. Questo è consigliato per ambienti con severi requisiti di sicurezza di rete.
Crea un endpoint VPC per EKS Capabilities
Crea un endpoint VPC di interfaccia per il servizio EKS Capabilities nel tuo VPC. Sostituiscivpc-id, subnet-id-1 subnet-id-2sg-id, e region-code con i tuoi valori:
aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-idvpc-id\ --subnet-idssubnet-id-1 subnet-id-2\ --security-group-idssg-id\ --regionregion-code
Nota
-
Le sottoreti devono trovarsi in zone di disponibilità diverse per garantire l'alta disponibilità.
-
Il gruppo di sicurezza deve consentire il traffico HTTPS (porta 443) in entrata dalle reti che devono accedere all'interfaccia utente e all'API di Argo CD.
-
Nota l'ID dell'endpoint VPC restituito da questo comando: ti servirà durante la creazione della funzionalità.
Verifica che l'endpoint VPC sia disponibile
aws ec2 describe-vpc-endpoints \ --vpc-endpoint-idsvpce-xxxxxxxx\ --query 'VpcEndpoints[0].State' \ --output text \ --regionregion-code
Attendi che venga visualizzato lo stato available prima di procedere.
Fase 2: Creare la funzionalità Argo CD
Crea la risorsa di funzionalità Argo CD sul tuo cluster.
Innanzitutto, imposta le variabili di ambiente per la configurazione del tuo Identity Center:
# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region) export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --regionregion-code--query 'Instances[0].InstanceArn' --output text) # Get a user ID for RBAC mapping (replace with your username and region if needed) export IDC_USER_ID=$(aws identitystore list-users \ --regionregion-code\ --identity-store-id $(aws sso-admin list-instances --regionregion-code--query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==your-username].UserId' --output text) echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN" echo "IDC_USER_ID=$IDC_USER_ID"
Crea la funzionalità con l'integrazione di Identity Center. Sostituiscila region-code con la AWS regione in cui si trova il cluster, my-cluster con il nome del cluster e idc-region-code con il codice regionale in cui si trova l'istanza di Identity Center:
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'
Se hai configurato un endpoint VPC per l'accesso privato, includi il network-configuration parametro per creare la funzionalità con un endpoint privato. Sostituiscilo vpce-xxxxxxxx con il tuo ID endpoint VPC:
aws eks create-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --network-configuration '{ "elasticNetworkInterfaces": { "vpcEndpointId": "'vpce-xxxxxxxx'" } }' \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'idc-region-code'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'
Il comando ritorna immediatamente, ma la funzionalità impiega del tempo per diventare attiva poiché EKS crea l'infrastruttura e i componenti di funzionalità richiesti. EKS installa le Kubernetes Custom Resource Definitions (CRD) nel cluster durante la creazione delle funzionalità.
Nota
Se ricevi un errore indicante che il cluster non esiste o non disponi delle autorizzazioni, verifica:
-
Il nome del cluster è corretto
-
La tua AWS CLI è configurata per la regione corretta
-
Disponi delle autorizzazioni IAM richieste
Passaggio 3: verifica che la funzionalità sia attiva
Attendi che la funzionalità diventi attiva. Sostituisci region-code con la AWS regione in cui si trova il cluster e my-cluster con il nome del cluster.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd \ --query 'capability.status' \ --output text
La funzionalità è pronta quando viene visualizzato lo statoACTIVE. Attendi che lo stato sia ACTIVE impostato prima di continuare con la fase successiva.
Puoi anche visualizzare i dettagli completi delle funzionalità:
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-name my-argocd
Passaggio 4: verifica della disponibilità di risorse personalizzate
Dopo che la funzionalità è attiva, verifica che le risorse personalizzate di Argo CD siano disponibili nel tuo cluster:
kubectl api-resources | grep argoproj.io
Dovresti vedere i tipi Application di ApplicationSet risorse elencati.
Fasi successive
-
Lavorare con Argo CD- Configura i repository, registra i cluster e crea applicazioni
-
Considerazioni su Argo CD- Multi-cluster architettura e configurazione avanzata
-
Lavorare con risorse di capacità- Gestisci la tua risorsa di funzionalità Argo CD