

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在具有 EC2 啟動類型或 Kubernetes 叢集的 Amazon EKS 叢集上設定 AWS App Mesh 範例工作負載
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-EKS"></a>

如果您要在執行 Amazon EKS 且具有 EC2 啟動類型的叢集或 Kubernetes 叢集上設定 App Mesh，請使用這些指示。

## 設定 IAM 許可
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-iam"></a>

您必須將 **AWSAppMeshFullAccess** 政策新增至您的 Amazon EKS 或 Kubernetes 節點群組的 IAM 角色。在 Amazon EKS 上，此節點群組名稱看起來類似於 `eksctl-integ-test-eks-prometheus-NodeInstanceRole-ABCDEFHIJKL`。在 Kubernetes 上，它可能看起來類似於 `nodes.integ-test-kops-prometheus.k8s.local`.

## 安裝 App Mesh
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-install"></a>

若要安裝 App Mesh Kubernetes 控制器，請遵循 [App Mesh 控制器](https://github.com/aws/eks-charts/tree/master/stable/appmesh-controller#app-mesh-controller)中的說明進行。

## 安裝範例應用程式
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-application"></a>

[aws-app-mesh-examples](https://github.com/aws/aws-app-mesh-examples) 包含數個 Kubernetes App Mesh 演練。在本教學課程中，您將安裝一個範例色彩應用程式，該應用程式顯示 http 路由如何使用標頭來比對傳入的請求。

**若要使用範例 App Mesh 應用程式來測試 Container Insights**

1. 使用這些指示安裝應用程式：[https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers)。

1. 啟動 curler pod 以產生流量：

   ```
   kubectl -n default run -it curler --image=tutum/curl /bin/bash
   ```

1. 透過變更 HTTP 標頭來 Curl 不同的端點。多次執行 curl 命令，如此處所示：

   ```
   curl -H "color_header: blue" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   
   curl -H "color_header: red" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   
   curl -H "color_header: yellow" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
   ```

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在叢集執行的 AWS 區域中，選擇導覽窗格中**的指標**。指標位於 **ContainerInsights/Prometheus** 命名空間中。

1. 若要查看 CloudWatch Logs 事件，請在導覽窗格中選擇 **Log groups** (日誌群組)。事件位於日誌串流 `kubernetes-pod-appmesh-envoy` 中的 日誌群組 ` /aws/containerinsights/your_cluster_name/prometheus ` 中。

## 刪除 App Mesh 測試環境
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-delete"></a>

當您使用完 App Mesh 和範例應用程式時，請使用以下命令刪除不必要的資源。輸入下列命令以刪除範例應用程式：

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

輸入以下命令以刪除 App Mesh 控制器：

```
helm delete appmesh-controller -n appmesh-system
```