

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

# 安裝 EKS AWS 網路流量監控代理程式附加元件
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks"></a>

遵循本節中的步驟，安裝適用於 Amazon Elastic Kubernetes Service (Amazon EKS) AWS 的網路流量監控代理程式附加元件，將網路流量監控指標從 Kubernetes 叢集傳送至網路流量監控後端。完成這些步驟後， AWS 網路流量監控代理程式 Pod 將在所有 Kubernetes 叢集節點上執行。

如果您使用自我管理式 Kubernetes 叢集，要遵循的安裝步驟位於上一節：[安裝自我管理式 Kubernetes 執行個體的代理程式](CloudWatch-NetworkFlowMonitor-agents-kubernetes-non-eks.md)。

請注意，Network Flow Monitor 不支援客戶受管字首清單 [客戶受管字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-managed-prefix-lists.html)。

可以使用主控台或者搭配使用 API 命令與 AWS Command Line Interface來安裝附加元件。

**Topics**
+ [安裝附加元件的先決條件](#CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-prereq)
+ [使用主控台安裝附加元件](#CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-console)
+ [使用 CLI 安裝附加元件](#CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-cli)
+ [針對第三方工具設定](CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party.md)

## 安裝附加元件的先決條件
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-prereq"></a>

無論您使用 主控台或 CLI 來安裝 AWS 網路流量監控代理程式附加元件，使用 Kubernetes 安裝附加元件有幾項需求。

**確保您的 Kubernetes 版本受支援**  
若要安裝 Network Flow Monitor 代理程式，必須具備 Kubernetes 1.25 或更高版本。

**Amazon EKS Pod 身分識別代理程式附加元件安裝**  
可以在主控台中或使用 CLI 安裝 Amazon EKS Pod 身分識別代理程式附加元件。  
Amazon EKS Pod 身分識別關聯提供管理應用程式憑證的功能，類似 Amazon EC2 執行個體設定檔將憑證提供給 Amazon EC2 執行個體的方式。Amazon EKS Pod 身分識別透過其他 Amazon EKS 驗證 API 和在每個節點上執行的代理程式 Pod，為您的工作負載提供憑證。  
若要進一步了解和檢視安裝 Amazon EKS Pod 身分識別附加元件的步驟，請參閱《Amazon EKS 使用者指南》中的[設定 Amazon EKS Pod 身分識別代理程式](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html)。

## 使用主控台安裝 AWS Network Flow Monitor Agent 附加元件
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-console"></a>

遵循本節中的步驟，在 Amazon EKS 主控台中安裝和設定 AWS 網路流量監控代理程式附加元件。

如果您已安裝附加元件，並且在升級至新版本時遇到問題，請參閱[對 EKS 代理程式安裝中的問題進行疑難排解](CloudWatch-NetworkFlowMonitor-troubleshooting.md#CloudWatch-NetworkFlowMonitor-troubleshooting.ec2-agent-installation)。

開始之前，請確定您已安裝 Amazon EKS Pod 身分識別代理程式附加元件。如需詳細資訊，請參閱[前一章節](#NFMPodIdentity)。

**使用主控台安裝附加元件**

1. 在 中 AWS 管理主控台，導覽至 Amazon EKS 主控台。

1. 在安裝附加元件的頁面上，在附加元件清單中，選擇 **AWS Network Flow Monitor 代理程式**。

1. 設定附加元件設定。

   1. 針對**附加元件存取權**，選擇 **EKS Pod 身分識別**。

   1. 若要讓 IAM 角色與附加元件搭配使用，請使用已連接下列 AWS 受管政策的角色：[CloudWatchNetworkFlowMonitorAgentPublishPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchNetworkFlowMonitorAgentPublishPolicy.html)。此政策提供必要許可，讓代理程式能夠將遙測報告傳送至 Network Flow Monitor 端點。如果您還沒有附加政策的角色，請選擇**建立建議的角色**，遵循 IAM 主控台中的步驟來建立角色。

   1. 選擇**下一步**。

1. 在**檢閱和新增**頁面上，確定附加元件組態正確無誤，然後選擇**建立**。

## 使用 安裝 AWS Network Flow Monitor Agent 附加元件 AWS Command Line Interface
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-cli"></a>

遵循本節中的步驟，使用 安裝 Amazon EKS 的網路 AWS 流量監控代理程式附加元件 AWS Command Line Interface。

**1. 安裝 EKS Pod 身分識別代理程式附加元件**  
開始之前，請確定您已安裝 Amazon EKS Pod 身分識別代理程式附加元件。如需詳細資訊，請參閱[之前的章節](#NFMPodIdentity)。

**2. 建立必要的 IAM 角色**  
 AWS Network Flow Monitor Agent 附加元件必須具有將指標傳送至 Network Flow Monitor 後端的許可。建立附加元件時，您必須連結具備必要許可的角色。建立已連接下列 AWS 受管政策的角色：[CloudWatchNetworkFlowMonitorAgentPublishPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchNetworkFlowMonitorAgentPublishPolicy.html)。您需要此 IAM 角色的 ARN 才能安裝附加元件。

**3. 安裝 AWS 網路流量監控代理程式附加元件**  
若要為您的叢集安裝 AWS Network Flow Monitor Agent 附加元件，請執行下列命令：  
`aws eks create-addon --cluster-name CLUSTER NAME --addon-name aws-network-flow-monitoring-agent --region AWS REGION --pod-identity-associations serviceAccount=aws-network-flow-monitor-agent-service-account,roleArn=IAM ROLE ARN`  
結果應類似如下內容：  

```
{
    "addon": {
        "addonName": "aws-network-flow-monitoring-agent",
        "clusterName": "ExampleClusterName",
        "status": "CREATING",
        "addonVersion": "v1.0.0-eksbuild.1",
        "health": {
            "issues": []
        },
        "addonArn": "arn:aws:eks:us-west-2:000000000000:addon/ExampleClusterName/aws-network-flow-monitoring-agent/eec11111-bbbb-EXAMPLE",
        "createdAt": "2024-10-25T16:38:07.213000+00:00",
        "modifiedAt": "2024-10-25T16:38:07.240000+00:00",
        "tags": {},
         "podIdentityAssociations": [
            "arn:aws:eks:us-west-2:000000000000:podidentityassociation/ExampleClusterName/a-3EXAMPLE5555555"
         ]
    }
  }
```

**4. 確定附加元件處於作用中狀態**  
檢閱已安裝 AWS 的網路流量監控代理程式附加元件，以確保其對您的叢集處於作用中狀態。執行以下命令來驗證狀態是否為 `ACTIVE`：  
`aws eks describe-addon --cluster-name CLUSTER NAME --addon-name aws-network-flow-monitoring-agent --region AWS REGION`  
結果應類似如下內容：  

```
{
    "addon": {
        "addonName": "aws-network-flow-monitoring-agent",
        "clusterName": "ExampleClusterName",
        "status": "ACTIVE",
        "addonVersion": "v1.0.0-eksbuild.1",
        "health": {
            "issues": []
        },
        "addonArn": "arn:aws:eks:us-west-2:000000000000:addon/ExampleClusterName/aws-network-flow-monitoring-agent/eec11111-bbbb-EXAMPLE",
        "createdAt": "2024-10-25T16:38:07.213000+00:00",
        "modifiedAt": "2024-10-25T16:38:07.240000+00:00",
        "tags": {},
         "podIdentityAssociations": [
            "arn:aws:eks:us-west-2:000000000000:podidentityassociation/ExampleClusterName/a-3EXAMPLE5555555"
         ]
    }
  }
```

# 設定第三方監控工具的附加元件
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party"></a>

您可以設定 Network Flow Monitor 附加元件，以在安裝期間公開 OpenMetrics 伺服器。這可與第三方監控工具整合，例如 Prometheus，讓您收集和分析現有監控基礎設施的網路流量指標。[進一步了解 OpenMetrics](https://openmetrics.io/)。此功能可從附加元件版本 v1.1.0 取得。

若要啟用 OpenMetrics 伺服器，請將 OPEN\$1METRICS、OPEN\$1METRICS\$1ADDRESS 和 OPEN\$1METRICS\$1PORT 新增至 EKS 網路流量監視器附加元件的組態值。本指南將說明如何同時使用 CLI 和主控台來執行此操作。如需新增[組態值的其他詳細資訊，請參閱 Amazon EKS 附加元件進階](https://aws.amazon.com/blogs/containers/amazon-eks-add-ons-advanced-configuration/)組態。

## CLI 組態
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-cli"></a>

使用 時 AWS Command Line Interface，您可以提供組態值做為參數：

```
aws eks create-addon \
  --cluster-name my-cluster-name \
  --addon-name aws-network-flow-monitoring-agent \
  --addon-version v1.1.0-eksbuild.1 \
  --configuration-values '{"env":{"OPEN_METRICS":"on","OPEN_METRICS_ADDRESS":"0.0.0.0","OPEN_METRICS_PORT":9109}}'
```

## 主控台組態
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-console"></a>

使用 Amazon EKS 主控台時，您可以在選用組態設定下新增這些值，做為組態值的一部分。

**範例 JSON：**

```
{
    "env": {
        "OPEN_METRICS": "on",
        "OPEN_METRICS_ADDRESS": "0.0.0.0",
        "OPEN_METRICS_PORT": 9109
    }
}
```

**YAML 範例：**

```
env:
  OPEN_METRICS: "on"
  OPEN_METRICS_ADDRESS: "0.0.0.0"
  OPEN_METRICS_PORT: 9109
```

## EKS 網路流量監控附加元件 OpenMetric 參數
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-parameters"></a>
+ **OPEN\$1METRICS：**
  + 啟用或停用開啟指標。如果未提供，則停用
  + 類型：字串
  + 值：【"on"、"off"】
+ **OPEN\$1METRICS\$1ADDRESS：**
  + 接聽開放指標端點的 IP 地址。如果未提供，則預設為 127.0.0.1
  + 類型：字串
+ **OPEN\$1METRICS\$1PORT：**
  + 開放指標端點的接聽連接埠。如果未提供，則預設為 80
  + 類型：整數
  + 範圍：【0..65535】

**重要：**將 OPEN\$1METRICS\$1ADDRESS 設定為 0.0.0.0 時，指標端點可從任何網路界面存取。考慮將 127.0.0.1 用於僅限 localhost 的存取，或實作適當的網路安全控制，以限制僅限授權監控系統的存取。

## 疑難排解
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting"></a>

如果您遇到 OpenMetrics 伺服器組態的問題，請使用以下資訊來診斷和解決常見問題。

### 指標未顯示
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-metrics-not-displaying"></a>

問題：已設定 OpenMetrics 伺服器，但指標未出現在您的監控工具中。

故障診斷步驟：

1. 確認您的附加元件組態中已啟用 OpenMetrics 伺服器：
   + 檢查組態值中的 OPEN\$1METRICS 是否設為 "on"。請參閱 [describe-addon](https://docs.aws.amazon.com/cli/latest/reference/eks/describe-addon.html)。
   + 在*設定選取的附加元件設定中，確認附加元件*版本為 v1.1.0 或更新版本。

1. 直接測試指標端點：
   + 在 http：//*pod-ip：port*/metrics 存取指標 （將 Pod-ip 取代為您設定連接埠的實際 Pod IP 地址和連接埠）。
   + 如果您無法存取端點，請驗證您的網路組態和安全群組設定。

1. 驗證您的監控工具組態。如需如何執行下列作業的詳細資訊，請參閱監控工具使用者指南：
   + 確保您的監控工具 （例如 Prometheus) 設定為抓取正確的端點。
   + 檢查抓取間隔和逾時設定是否適當。
   + 確認您的監控工具具有 Pod IP 地址的網路存取權。

### 特定 Pod 中遺失的指標
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-metrics-missing-pods"></a>

問題：指標可從叢集中的某些 Pod 取得，但不適用於其他 Pod。

故障診斷步驟：

Network Flow Monitor 附加元件不支援使用 hostNetwork： true 的 Pod。如果您的 Pod 規格包含此設定，則無法從這些 Pod 取得指標。

解決方法：盡可能從 Pod 規格中移除 hostNetwork： true 設定。如果您需要應用程式使用主機聯網，請考慮針對這些特定 Pod 使用替代監控方法。

### 連線遭拒錯誤
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-connection-refused"></a>

問題：您在嘗試存取指標端點時收到「連線遭拒」錯誤。

故障診斷步驟：

1. 驗證 OPEN\$1METRICS\$1ADDRESS 組態：
   + 如果設定為 127.0.0.1，則只能從 Pod 內存取端點。
   + 如果設定為 0.0.0.0，則應該可以從叢集中的其他 Pod 存取端點。
   + 確保您的監控工具可以到達設定的地址。

1. 檢查 OPEN\$1METRICS\$1PORT 組態：
   + 確認連接埠號碼尚未由其他 服務使用。
   + 確定連接埠在有效範圍內 (1-65535)。
   + 確認任何安全群組或網路政策都允許此連接埠上的流量。

### 驗證步驟
<a name="CloudWatch-NetworkFlowMonitor-agents-kubernetes-eks-third-party-troubleshooting-verification"></a>

若要確認您的 OpenMetrics 組態正常運作：

1. 檢查附加元件狀態：

   ```
   aws eks describe-addon --cluster-name your-cluster-name --addon-name aws-network-flow-monitoring-agent
   ```

1. 驗證 Pod 狀態：

   ```
   kubectl get pods app.kubernetes.io/name=aws-network-flow-monitoring-agent
   ```

1. 從叢集內測試指標端點：

   ```
   kubectl exec add-on-pod-name -- curl localhost:9109/metrics
   ```

   將 9109 取代為您設定的連接埠號碼，並將 Pod 名稱取代為 AddOn Pod 名稱。