AWS App Mesh-Beispiel-Workload auf einem Amazon-EKS-Cluster mit dem Starttyp Fargate einrichten - Amazon CloudWatch

AWS App Mesh-Beispiel-Workload auf einem Amazon-EKS-Cluster mit dem Starttyp Fargate einrichten

Gehen Sie wie folgt vor, wenn Sie App Mesh auf einem Cluster einrichten, auf dem Amazon EKS mit dem Fargate-Starttyp ausgeführt wird.

Konfigurieren Sie IAM-Berechtigungen

Geben Sie den folgenden Befehl ein, um IAM-Berechtigungen einzurichten. Ersetzen Sie MyCluster durch den Namen Ihres Clusters.

eksctl create iamserviceaccount --cluster MyCluster \ --namespace howto-k8s-fargate \ --name appmesh-pod \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \ --override-existing-serviceaccounts \ --approve

Installieren Sie App Mesh

Um den App-Mesh-Kubernetes-Controller zu installieren, befolgen Sie die Anweisungen in App-Mesh-Controller. Befolgen Sie unbedingt die Anweisungen für Amazon EKS mit dem Fargate-Starttyp.

Installieren einer Beispielanwendung

aws-app-mesh-Beispiele enthält mehrere Walkthroughs für Kubernetes App Mesh. Für dieses Tutorial installieren Sie eine Beispielfarbanwendung, die für Amazon-EKS-Cluster mit dem Starttyp Fargate funktioniert.

So verwenden Sie eine App-Mesh-Beispielanwendung zum Testen von Container Insights
  1. Installieren Sie die Anwendung mithilfe der folgenden Anweisungen: https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate.

    Bei diesen Anweisungen wird davon ausgegangen, dass Sie einen neuen Cluster mit dem korrekten Fargate-Profil erstellen. Wenn Sie einen Amazon-EKS-Cluster verwenden möchten, den Sie bereits eingerichtet haben, können Sie die folgenden Befehle verwenden, um diesen Cluster für diese Demonstration einzurichten. Ersetzen Sie MyCluster durch den Namen Ihres Clusters.

    eksctl create iamserviceaccount --cluster MyCluster \ --namespace howto-k8s-fargate \ --name appmesh-pod \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \ --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \ --override-existing-serviceaccounts \ --approve
    eksctl create fargateprofile --cluster MyCluster \ --namespace howto-k8s-fargate --name howto-k8s-fargate
  2. Port-Weiterleitung der Front-Anwendungsbereitstellung:

    kubectl -n howto-k8s-fargate port-forward deployment/front 8080:8080
  3. Curl der Front-App:

    while true; do curl -s http://localhost:8080/color; sleep 0.1; echo ; done
  4. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  5. Wählen Sie in der AWS-Region, in der Ihr Cluster ausgeführt wird, Metrics (Metriken) im Navigationsbereich aus. Die -Metriken befinden sich im ContainerInsights/Prometheus-Namespace.

  6. Um die CloudWatch-Logs-Ereignisse anzuzeigen, wählen Sie im Navigationsbereich Log Groups (Protokollgruppen) aus. Die Ereignisse befinden sich in der Protokollgruppe /aws/containerinsights/your_cluster_name/prometheus im Protokollstream kubernetes-pod-appmesh-envoy.

Löschen der App-Mesh-Testumgebung

Wenn Sie mit der Verwendung von App Mesh und der Beispielanwendung fertig sind, verwenden Sie die folgenden Befehle, um die nicht benötigten Ressourcen zu löschen. Löschen Sie die Beispielanwendung, indem Sie den folgenden Befehl eingeben:

cd aws-app-mesh-examples/walkthroughs/howto-k8s-fargate/ kubectl delete -f _output/manifest.yaml

Löschen Sie den App-Mesh-Controller, indem Sie den folgenden Befehl eingeben:

helm delete appmesh-controller -n appmesh-system