協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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 角色名稱。角色必須存在。