

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

# 在 Amazon EKS 和 Kubernetes 上使用範例流量設定 NGINX
<a name="ContainerInsights-Prometheus-Sample-Workloads-nginx"></a>

NGINX 是一部 Web 伺服器，可同時用作為負載平衡器和反向代理。如需如何使用 NGINX 進行擷取的詳細資訊，請參閱 [kubernetes/ingress-nginx](https://github.com/kubernetes/ingress-nginx)。

**使用範例流量服務安裝 Ingress-NGINX 以測試 Container Insights Prometheus 支援**

1. 輸入以下命令來新增 Helm ingress-nginx 儲存庫：

   ```
   helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
   ```

1. 輸入下列命令：

   ```
   kubectl create namespace nginx-ingress-sample
   
   helm install my-nginx ingress-nginx/ingress-nginx \
   --namespace nginx-ingress-sample \
   --set controller.metrics.enabled=true \
   --set-string controller.metrics.service.annotations."prometheus\.io/port"="10254" \
   --set-string controller.metrics.service.annotations."prometheus\.io/scrape"="true"
   ```

1. 請輸入下列命令，檢查服務是否已正確啟動：

   ```
   kubectl get service -n nginx-ingress-sample
   ```

   這個命令的輸出應該會顯示數欄，包括一個 `EXTERNAL-IP` 欄。

1. 將 `EXTERNAL-IP` 變數設定為 NGINX 傳入控制器一行中 `EXTERNAL-IP` 欄的數值。

   ```
   EXTERNAL_IP=your-nginx-controller-external-ip
   ```

1. 輸入以下命令啟動一些範例 NGINX 流量。

   ```
   SAMPLE_TRAFFIC_NAMESPACE=nginx-sample-traffic
   curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/nginx-traffic/nginx-traffic-sample.yaml | 
   sed "s/{{external_ip}}/$EXTERNAL_IP/g" | 
   sed "s/{{namespace}}/$SAMPLE_TRAFFIC_NAMESPACE/g" | 
   kubectl apply -f -
   ```

1. 輸入下列命令以確認三個 pod 全都處於 `Running` 狀態。

   ```
   kubectl get pod -n $SAMPLE_TRAFFIC_NAMESPACE
   ```

   如果它們正在執行，您應該很快就會在 **ContainerInsights/Prometheus** 命名空間中看到指標。

**解除安裝 NGINX 和範例流量應用程式**

1. 輸入下列命令以刪除範例流量服務：

   ```
   kubectl delete namespace $SAMPLE_TRAFFIC_NAMESPACE
   ```

1. 刪除 Helm 發行版本名稱的 NGINX egress。

   ```
   helm uninstall my-nginx --namespace nginx-ingress-sample
   kubectl delete namespace nginx-ingress-sample
   ```