Amazon EKS MCP 伺服器工具參考 - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

Amazon EKS MCP 伺服器工具參考

伺服器會公開下列 MCP 工具

注意

Amazon EKS MCP 伺服器目前為 Amazon EKS 的預覽版本,可能會有所變更。

唯讀工具

本節說明 EKS MCP 伺服器可用的唯讀工具。請注意,所有唯讀 Kubernetes API 操作都可以存取兩者:

search_eks_documentation

搜尋 EKS 文件以取得up-to-date和指引。此工具可讓您存取最新的 EKS 文件,包括客服人員可能不知道的新功能和最近的增強功能。

參數:

  • 查詢 (必要):與 EKS 文件、功能或最佳實務相關的特定問題或搜尋查詢。

  • limit (選用):要傳回的文件結果數目上限 (1-10)。預設:5。

search_eks_troubleshooting_guide

搜尋 EKS 故障診斷指南,以根據查詢對資訊進行故障診斷。它有助於識別常見問題並提供step-by-step解決方案。

參數:

  • query (必要):與 EKS 故障診斷相關的特定問題或問題描述。

describe_eks_resource

擷取特定 EKS 叢集資源的詳細資訊,包括組態、狀態和中繼資料。

參數:

  • cluster_name (必要):EKS 叢集的名稱 (叢集範圍的資源必填)。

  • resource_type (必要):要描述的 EKS 資源類型。有效值:

  • accessentry (需要 cluster_name 和 resource_name 作為 principalArn)

  • 附加元件 (需要 cluster_name 和 resource_name 作為附加元件名稱)

  • 叢集 (需要 cluster_name)、節點群組 (需要 cluster_name 和 resource_name 作為節點群組名稱)。

  • resource_name (選用):要描述的特定資源名稱 (大多數資源類型需要)。

list_eks_resources

列出特定類型的 EKS 資源,傳回可存取之指定類型的所有資源摘要。

參數:

  • resource_type (必要):要列出的 EKS 資源類型。有效值:

  • accessentry (需要 cluster_name)

  • 附加元件 (需要 cluster_name)

  • 叢集 (不需要其他參數)

  • nodegroup (需要 cluster_name)。

  • cluster_name (選用):EKS 叢集的名稱 (叢集範圍的資源需要)。

get_eks_insights

擷取 EKS 叢集洞察和最佳化建議。根據 AWS 最佳實務和叢集分析,提供安全性、效能和成本最佳化的可行洞見。

參數:

  • cluster_name (必要):EKS 叢集的名稱。

  • 類別 (選用):選用類別,依 篩選洞見 (例如,「MISCONFIGURATION」或「UPGRADE_READINESS」)。

  • insight_id (選用):特定洞見的選用 ID,以取得詳細資訊。

  • next_token (選用):選用分頁權杖,以取得下一組結果。

get_eks_vpc_config

擷取 EKS 叢集的 VPC 組態,包括子網路、路由表和網路連線。

參數:

  • cluster_name (必要):要取得 VPC 組態的 EKS 叢集名稱。

  • vpc_id (選用):要查詢的特定 VPC ID (選用,若未指定,將使用叢集 VPC)。

get_k8s_events

擷取與特定資源相關的 Kubernetes 事件,以進行疑難排解和監控。

參數:

  • cluster_name (必要):資源所在的 EKS 叢集名稱。

  • kind (必要):所涉及物件的類型 (例如 "Pod"、"Deployment"、"Service")。必須與資源類型完全相符。

  • name (必要):要取得事件的涉及物件名稱。

  • 命名空間 (選用):所涉及物件的命名空間。命名空間資源 (例如 Pod、部署) 的必要項目。叢集範圍的資源 (例如 Nodes、PersistentVolumes) 不需要。

get_pod_logs

使用篩選選項從 EKS 叢集中的 Pod 擷取日誌。

參數:

  • cluster_name (必要):執行 Pod 的 EKS 叢集名稱。

  • 命名空間 (必要):Pod 所在的 Kubernetes 命名空間。

  • pod_name (必要):要從中擷取日誌的 Pod 名稱。

  • container_name (選用):要從中取得日誌的特定容器名稱。只有在 Pod 包含多個容器時才需要。

  • limit_bytes (選用):傳回的位元組數上限。預設:10KB (10240 位元組)。

  • 上一個 (選用):傳回先前終止的容器日誌 (預設為 false)。用於取得正在重新啟動之 Pod 的日誌。

  • since_seconds (選用):僅傳回比此數秒更新的日誌。有助於在不擷取整個歷史記錄的情況下取得最近的日誌。

  • tail_lines (選用):從日誌結尾傳回的行數。預設:100。

list_api_versions

列出指定 Kubernetes 叢集中所有可用的 API 版本。

參數:

  • cluster_name (必要):EKS 叢集的名稱。

list_k8s_resources

列出 EKS 叢集中特定類型的 Kubernetes 資源。

參數:

  • cluster_name (必要):資源所在的 EKS 叢集名稱。

  • kind (必要):要列出的 Kubernetes 資源類型 (例如 'Pod'、'Service'、'Deployment')。使用 list_api_versions工具尋找可用的資源類型。

  • api_version (必要):Kubernetes 資源的 API 版本 (例如 'v1'、'apps/v1'、'networking.k8s.io/v1')。使用 list_api_versions工具尋找可用的 API 版本。

  • field_selector (選用):篩選資源的欄位選擇器 (例如,'metadata.name=my-pod、status.phase=Running')。使用與 kubectl 的 --field-selector 旗標相同的語法。

  • label_selector (選用):用於篩選資源的標籤選擇器 (例如,'app=nginx,tier=frontend')。使用與 kubectl --selector旗標相同的語法。

  • 命名空間 (選用):要列出的 Kubernetes 資源命名空間。如果未提供,則會在所有命名空間中列出資源 (適用於命名空間資源)。

read_k8s_resource

擷取 EKS 叢集中特定 Kubernetes 資源的詳細資訊。

參數:

  • api_version (必要):Kubernetes 資源的 API 版本 (例如 "v1"、"apps/v1"、"networking.k8s.io/v1")。

  • cluster_name (必要):資源所在的 EKS 叢集名稱。

  • kind (必要):Kubernetes 資源的類型 (例如 "Pod"、"Service"、"Deployment")。

  • name (必要):要讀取的 Kubernetes 資源名稱。

  • 命名空間 (選用):Kubernetes 資源的命名空間。命名空間資源的必要項目。叢集範圍的資源 (例如 Nodes、PersistentVolumes) 不需要。

generate_app_manifest

產生容器化應用程式的標準化 Kubernetes 部署和服務資訊清單。

參數:

  • app_name (必要):應用程式的名稱。用於部署和服務名稱,以及用於標籤。

  • image_uri (必要):帶有標籤的完整 ECR 映像 URI (例如 123456789012.dkr.ecr.region.amazonaws.com/repo:tag)。必須包含完整的儲存庫路徑和標籤。

  • load_balancer_scheme (選用): AWS 負載平衡器方案。有效值:

  • 「內部」(僅限私有 VPC)

  • 「面向網際網路」(公有存取)。

  • 預設:「內部」。

  • cpu (選用):每個容器的 CPU 請求 (例如,0.1 CPU 核心為 "100m",半核心為 "500m")。預設:「100 公尺」。

  • memory (選用):每個容器的記憶體請求 (例如,128 MiB 為 "128Mi",1 GiB 為 "1Gi")。預設:"128Mi"

  • 命名空間 (選用):要部署應用程式的 Kubernetes 命名空間。預設:「預設」。

  • 連接埠 (選用):應用程式接聽的容器連接埠。預設:80

  • 複本 (選用):要部署的複本數量。預設:2

get_cloudwatch_logs

查詢 CloudWatch 日誌,根據輸入參數進行篩選,並支援用於 EKS 叢集可觀測性的標準日誌群組。

參數:

  • cluster_name (必要):資源所在的 EKS 叢集名稱。用來建構 CloudWatch 日誌群組名稱。

  • resource_type (必要):要搜尋日誌的資源類型。有效值:+"pod"、"node"、"container"、"cluster"。這會決定如何篩選日誌。

  • log_type (必要):要查詢的日誌類型。有效值:

  • 「應用程式」:容器/應用程式日誌

  • "host":節點層級系統日誌

  • "performance":績效指標日誌

  • "control-plane":EKS 控制平面日誌

  • "your-log-group-name":直接提供自訂 CloudWatch 日誌群組名稱。

  • resource_name (選用):在日誌訊息中搜尋的資源名稱 (例如 Pod 名稱、節點名稱、容器名稱)。用來篩選特定資源的日誌。

  • 分鐘 (選用):要回顧日誌的分鐘數。預設:15。如果提供 start_time,則忽略。針對最近的問題使用較小的值,針對歷史分析使用較大的值。

  • start_time (選用):ISO 格式的開始時間 (例如 "2023-01-01T00:00:00Z")。如果提供, 會覆寫分鐘參數。

  • end_time (選用):ISO 格式的結束時間 (例如 "2023-01-01T01:00:00Z")。如果未提供,則 預設為目前時間。

  • 欄位 (選用):要包含在查詢結果中的自訂欄位 (預設為 "@timestamp, @message")。使用 CloudWatch Logs Insights 欄位語法。

  • filter_pattern (選用):要套用的其他 CloudWatch Logs 篩選條件模式。使用 CloudWatch Logs Insights 語法 (例如 "ERROR"、"field=value")。

  • limit (選用):要傳回的日誌項目數目上限。對於更快的查詢,請使用較低的值 (10-50),對於更全面的結果,請使用較高的值 (100-1000)。數值越大,越可能影響效能。

get_cloudwatch_metrics

擷取 EKS 叢集監控和效能分析的 CloudWatch 指標和資料點。處理 Container Insights 指標、自訂指標,以及可設定的時段和維度。

參數:

  • cluster_name (必要):要取得指標的 EKS 叢集名稱。

  • 度 (必要):用於 CloudWatch 指標查詢的維度做為 JSON 字串。必須包含資源類型和指標的適當維度 (例如 '{"ClusterName": "my-cluster", "PodName": "my-pod", "Namespace": "default"}')。

  • metric_name (必要):要擷取的指標名稱。常見範例:

  • cpu_usage_total:CPU 總用量

  • memory_rss:常駐設定大小記憶體用量

  • network_rx_bytes:已接收網路位元組

  • network_tx_bytes:傳輸的網路位元組

  • 命名空間 (必要):存放指標的 CloudWatch 命名空間。常見值:

  • "ContainerInsights":適用於容器指標

  • "AWS/EC2":針對 EC2 執行個體指標

  • "AWS/EKS":適用於 EKS 控制平面指標

  • 分鐘 (選用):要回顧指標的分鐘數。預設:15。如果提供 start_time,則忽略。

  • start_time (選用):ISO 格式的開始時間 (例如 "2023-01-01T00:00:00Z")。如果提供, 會覆寫分鐘參數。

  • end_time (選用):ISO 格式的結束時間 (例如 "2023-01-01T01:00:00Z")。如果未提供,則 預設為目前時間。

  • limit (選用):要傳回的資料點數目上限。較高的值 (100-1000) 提供更精細的資料,但可能會影響效能。預設:50。

  • period (選用):指標資料點的期間,以秒為單位。預設:60 (1 分鐘)。較低的值 (1-60) 提供更高的解析度,但可能較少。

  • stat (選用):用於指標彙總的統計資料。預設:「平均」。有效值:

  • Average:期間內的平均值

  • Sum: 期間內的總值

  • Maximum:在此期間的最大值

  • Minimum:期間內的最小值

  • SampleCount:期間內的樣本數量。

get_eks_metrics_guidance

取得 EKS 叢集中特定資源類型的 CloudWatch 指標指引。在判斷要與 get_cloudwatch_metrics 工具搭配使用的正確維度時,對代理程式很有用。

參數:

  • resource_type (必要):取得 指標的資源類型 (叢集、節點、Pod、命名空間、服務)。

get_policies_for_role

擷取連接至指定 IAM 角色的所有政策,包括擔任角色政策、受管政策和內嵌政策。

參數:

  • role_name (必要):要取得政策的 IAM 角色名稱。角色必須存在於您的帳戶中 AWS 。

完整存取 (寫入) 工具

本節說明 EKS MCP 伺服器可用的唯讀工具。請注意, (截至「今天」) 所有寫入 Kubernetes API 操作只能存取:

  • 公有叢集 (endpointPublicAccess=true)

manage_k8s_resource

使用寫入操作 (建立、更新、修補或刪除) 管理單一 Kubernetes 資源。

參數:

  • 操作 (必要):在資源上執行的操作。有效值:

  • create: 建立新的資源

  • replace:取代現有的資源

  • patch:更新現有資源的特定欄位

  • delete:刪除現有資源

  • 注意:使用 read_k8s_resource 讀取資源,並使用 list_k8s_resources 列出多個資源。

  • cluster_name (必要):資源所在或將要建立的 EKS 叢集名稱。

  • kind (必要):Kubernetes 資源的類型 (例如 "Pod"、"Service"、"Deployment")。

  • api_version (必要):Kubernetes 資源的 API 版本 (例如 "v1"、"apps/v1"、"networking.k8s.io/v1")。

  • 內文 (選用):資源定義做為 JSON 字串。建立、取代和修補操作時需要。對於建立和取代,這應該是完整的資源定義。對於修補程式,這應該只包含要更新的欄位。

  • name (選用):Kubernetes 資源的名稱。除了建立 (可在內文中指定) 以外的所有操作都需要。

  • 命名空間 (選用):Kubernetes 資源的命名空間。命名空間資源的必要項目。叢集範圍的資源 (例如 Nodes、PersistentVolumes) 不需要。

apply_yaml

將 Kubernetes YAML 資訊清單套用至 EKS 叢集。

參數:

  • cluster_name (必要):建立或更新資源的 EKS 叢集名稱。

  • 命名空間 (必要):要套用資源的 Kubernetes 命名空間。將用於未指定命名空間的命名空間資源。

  • yaml_content (必要):要套用至叢集的 YAML 內容。可以包含多個以 '---' 分隔的文件。

  • force (選用):是否更新已存在的資源 (類似套用 kubectl)。設定為 false 以僅建立新的資源。

manage_eks_stacks

使用產生範本、部署、描述和刪除 EKS 叢集及其基礎基礎設施的操作來管理 EKS CloudFormation 堆疊。叢集建立通常需要 15-20 分鐘才能完成。對於部署和刪除操作,堆疊必須由此工具建立 (即使用 CreatedBy=EksMcpServer 標記)。

參數:

  • cluster_name (必要):EKS 叢集的名稱 (用於產生、部署、描述和刪除操作)。此名稱將用於衍生 CloudFormation 堆疊名稱,並將內嵌在叢集資源中。

  • 操作 (必要):要執行的操作。有效值:

  • generate:產生 CloudFormation 範本

  • deploy:部署 CloudFormation 堆疊 (需要 template_content)

  • describe:描述/讀取 CloudFormation 堆疊 (唯讀)

  • delete:刪除 CloudFormation 堆疊

  • template_content (選用):CloudFormation 範本內容 (用於部署操作)。這應該是完整的 YAML 或 JSON 範本內容。支援以 '---' 分隔的單一資源和多文件 YAML 內容。

add_inline_policy

將新的內嵌政策新增至 IAM 角色。

參數:

  • 許可 (必要):將政策中包含為代表 IAM 政策陳述式之 JSON 字串的許可。可以是單一 JSON 字串或 JSON 字串陣列。

  • policy_name (必要):要建立的內嵌政策名稱。在角色中必須是唯一的。

  • role_name (必要):要新增政策的 IAM 角色名稱。角色必須存在。