View a markdown version of this page

Erstellen Sie eine Argo-CD-Funktion mit dem AWS CLI - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie eine Argo-CD-Funktion mit dem AWS CLI

Erstellen Sie mithilfe der AWS CLI eine Argo-CD-Funktion auf Ihrem Amazon EKS-Cluster. Dieses Verfahren führt Sie durch die Erstellung einer IAM-Rolle, die Konfiguration der AWS Identity Center-Integration und die Überprüfung, ob die Funktion aktiv ist.

Voraussetzungen

  • AWS CLI — Version 2.12.3 oder höher. Führen Sie den Befehl aus, um Ihre Version zu überprüfenaws --version. Weitere Informationen finden Sie im AWS Befehlszeilenschnittstellen-Benutzerhandbuch unter Installation.

  • kubectl  – Ein Befehlszeilentool für die Arbeit mit Kubernetes-Clustern. Weitere Informationen finden Sie unter Richten Sie kubectl und eksctl ein .

  • AWS Identity Center konfiguriert — Argo CD benötigt AWS Identity Center für die Authentifizierung. Lokale Benutzer werden nicht unterstützt. Wenn Sie AWS Identity Center nicht eingerichtet haben, finden Sie unter Erste Schritte mit AWS Identity Center eine Identity Center-Instanz und Benutzer hinzufügen und Gruppen hinzufügen, um Benutzer und Gruppen für den Argo-CD-Zugriff zu erstellen.

  • Mindestens ein Benutzer oder eine Gruppe in AWS Identity Center — Sie müssen mindestens einen Benutzer oder eine Gruppe in Ihrer Identity Center-Instanz konfiguriert haben, um Argo CD RBAC-Rollenzuordnungen zuzuweisen und Zugriff auf die Argo CD-Benutzeroberfläche zu gewähren.

Schritt 1: Erstellen Sie eine IAM-Funktionsrolle

Erstellen Sie eine Vertrauensrichtliniendatei:

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

Erstellen Sie die IAM-Rolle:

aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
Anmerkung

Wenn Sie die optionalen Integrationen mit AWS Secrets Manager oder verwenden möchten AWS CodeConnections, fügen Sie der Rolle Berechtigungen hinzu. Beispiele für IAM-Richtlinien und Anleitungen zur Konfiguration finden Sie unter Anwendungsgeheimnisse mit AWS Secrets Manager verwalten und. Connect zu Git-Repositorys her mit AWS CodeConnections

(Optional) Konfigurieren Sie einen privaten Endpunkt

Standardmäßig sind die Argo CD-Benutzeroberfläche und der API-Endpunkt öffentlich über das Internet zugänglich. Wenn Sie den Zugriff einschränken müssen, können Sie einen VPC-Endpunkt konfigurieren. Dies wird für Umgebungen mit strengen Netzwerksicherheitsanforderungen empfohlen.

Erstellen Sie einen VPC-Endpunkt für EKS-Funktionen

Erstellen Sie einen Schnittstellen-VPC-Endpunkt für den EKS-Capabilities-Dienst in Ihrer VPC. Ersetzen Sievpc-id, subnet-id-1 subnet-id-2sg-id, und region-code durch Ihre eigenen Werte:

aws ec2 create-vpc-endpoint \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.region-code.eks-capabilities \ --vpc-id vpc-id \ --subnet-ids subnet-id-1 subnet-id-2 \ --security-group-ids sg-id \ --region region-code
Anmerkung
  • Die Subnetze sollten sich aus Gründen der Hochverfügbarkeit in verschiedenen Availability Zones befinden.

  • Die Sicherheitsgruppe muss eingehenden HTTPS-Verkehr (Port 443) von den Netzwerken zulassen, die auf die Argo CD-Benutzeroberfläche und -API zugreifen müssen.

  • Notieren Sie sich die VPC-Endpunkt-ID, die von diesem Befehl zurückgegeben wird. Sie benötigen sie, wenn Sie die Funktion erstellen.

Stellen Sie sicher, dass der VPC-Endpunkt verfügbar ist

aws ec2 describe-vpc-endpoints \ --vpc-endpoint-ids vpce-xxxxxxxx \ --query 'VpcEndpoints[0].State' \ --output text \ --region region-code

Warten Sie, bis der Status angezeigt wird, available bevor Sie fortfahren.

Schritt 2: Erstellen Sie die Argo-CD-Funktion

Erstellen Sie die Argo-CD-Capability-Ressource in Ihrem Cluster.

Legen Sie zunächst Umgebungsvariablen für Ihre Identity Center-Konfiguration fest:

# 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 --region region-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 \ --region region-code \ --identity-store-id $(aws sso-admin list-instances --region region-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"

Erstellen Sie die Funktion mit der Identity Center-Integration. region-codeErsetzen Sie durch die AWS Region, in der sich Ihr Cluster befindet, my-cluster durch Ihren Cluster-Namen und idc-region-code durch den Regionalcode, in dem sich Ihre Identity Center-Instanz befindet:

aws eks create-capability \ --region region-code \ --cluster-name my-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" }] }] } }'

Wenn Sie einen VPC-Endpunkt für den privaten Zugriff konfiguriert haben, geben Sie den network-configuration Parameter an, um die Funktion mit einem privaten Endpunkt zu erstellen. Ersetzen Sie vpce-xxxxxxxx durch Ihre VPC-Endpunkt-ID:

aws eks create-capability \ --region region-code \ --cluster-name my-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" }] }] } }'

Der Befehl wird sofort zurückgegeben, aber es dauert einige Zeit, bis die Funktion aktiv wird, da EKS die erforderliche Funktionsinfrastruktur und die erforderlichen Komponenten erstellt. EKS installiert die Custom Resource Definitions (CRDs) von Kubernetes während der Erstellung von Funktionen in Ihrem Cluster.

Anmerkung

Wenn Sie eine Fehlermeldung erhalten, dass der Cluster nicht existiert oder Sie keine Berechtigungen haben, überprüfen Sie Folgendes:

  • Der Clustername ist korrekt

  • Ihre AWS CLI ist für die richtige Region konfiguriert

  • Sie haben die erforderlichen IAM-Berechtigungen

Schritt 3: Stellen Sie sicher, dass die Funktion aktiv ist

Warten Sie, bis die Funktion aktiv wird. region-codeErsetzen Sie durch die AWS Region, in der sich Ihr Cluster befindet, und my-cluster durch Ihren Clusternamen.

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

Die Funktion ist bereit, wenn der Status angezeigt wirdACTIVE. Warten Sie, bis der Status erreicht ist, ACTIVE bevor Sie mit dem nächsten Schritt fortfahren.

Sie können sich auch die vollständigen Funktionsdetails ansehen:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd

Schritt 4: Stellen Sie sicher, dass benutzerdefinierte Ressourcen verfügbar sind

Nachdem die Funktion aktiv ist, stellen Sie sicher, dass benutzerdefinierte Argo CD-Ressourcen in Ihrem Cluster verfügbar sind:

kubectl api-resources | grep argoproj.io

Sie sollten alle ApplicationSet Ressourcentypen aufgelistet sehenApplication.

Nächste Schritte