이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
Amazon EKS MCP 서버 도구 참조
서버는 다음과 같은 MCP 도구
참고
Amazon EKS MCP 서버는 Amazon EKS의 미리 보기 릴리스로 제공되며 변경될 수 있습니다.
읽기 전용 도구
이 섹션에서는 EKS MCP 서버에 대해 사용할 수 있는 읽기 전용 도구를 설명합니다. 모든 읽기 전용 Kubernetes API 작업은 다음 두 가지 모두에 액세스할 수 있습니다.
-
프라이빗 클러스터(클러스터 프라이빗 엔드포인트 참조)
-
퍼블릭 클러스터
search_eks_documentation
EKS 설명서에서 최신 정보 및 지침을 검색합니다. 이 도구는 에이전트가 모를 수 있는 새로운 기능 및 최근 개선 사항을 포함하여 최신 EKS 설명서에 대한 액세스를 제공합니다.
파라미터:
-
query(필수): EKS 설명서, 기능 또는 모범 사례와 관련된 특정 질문 또는 검색 쿼리.
-
limit(선택 사항): 반환할 최대 설명서 결과 수(1~10). 기본값은 5입니다.
search_eks_문제 해결_가이드
쿼리를 기반으로 EKS 문제 해결 안내서에서 문제 해결 정보를 검색합니다. 일반적인 문제를 식별하고 단계별 솔루션을 제공하는 데 도움이 됩니다.
파라미터:
-
query(필수): EKS 문제 해결과 관련된 특정 질문 또는 문제 설명.
describe_eks_resource
구성, 상태 및 메타데이터를 포함하여 특정 EKS 클러스터 리소스에 대한 자세한 정보를 검색합니다.
파라미터:
-
cluster_name(필수): EKS 클러스터의 이름(클러스터 범위의 리소스에 필요).
-
resource_type(필수): 설명할 EKS 리소스 유형. 유효한 값:
-
accessentry(principalArn으로 cluster_name 및 resource_name 필요)
-
addon(추가 기능 이름으로 cluster_name 및 resource_name 필요)
-
cluster(cluster_name 필요), nodegroup(nodegroup 이름으로 cluster_name 및 resource_name 필요).
-
resource_name(선택 사항): 설명할 특정 리소스의 이름(대부분의 리소스 유형에 필요).
list_eks_resources
특정 유형의 EKS 리소스를 나열하여 액세스 가능한 지정된 유형의 모든 리소스에 대한 요약을 반환합니다.
파라미터:
-
resource_type(필수): 나열할 EKS 리소스 유형. 유효한 값:
-
accessentry(cluster_name 필요)
-
addon(cluster_name 필요)
-
cluster(필요한 추가 파라미터 없음)
-
nodegroup(cluster_name) 필요.
-
cluster_name(선택 사항): EKS 클러스터의 이름(클러스터 범위의 리소스에 필요).
get_eks_insights
최적화를 위한 EKS 클러스터 인사이트 및 권장 사항을 검색합니다. AWS 모범 사례 및 클러스터 분석을 기반으로 보안, 성능 및 비용 최적화에 대해 실행 가능한 인사이트를 제공합니다.
파라미터:
-
cluster_name(필수): EKS 클러스터의 이름.
-
category(선택 사항): 인사이트를 필터링하는 선택적 범주(예: 'MISCONFIGURATION' 또는 'UPGRADE_READINESS').
-
insights_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(필수): 이벤트를 가져올 관련 객체의 이름.
-
namespace(선택 사항): 관련 객체의 네임스페이스. 네임스페이스 기반 리소스(예: Pods, Deployments)에서 필수입니다. 클러스터 범위의 리소스(예: Nodes, PersistentVolumes)에는 필요하지 않습니다.
get_pod_logs
필터링 옵션을 사용하여 EKS 클러스터의 포드에서 로그를 검색합니다.
파라미터:
-
cluster_name(필수): 포드가 실행 중인 EKS 클러스터의 이름.
-
네임스페이스(필수): 포드가 위치한 Kubernetes 네임스페이스.
-
pod_name(필수): 로그를 검색할 포드의 이름.
-
container_name(선택 사항): 로그를 가져올 특정 컨테이너의 이름. 포드에 여러 컨테이너가 포함된 경우에만 필요합니다.
-
limit_bytes(선택 사항): 반환할 최대 바이트 수. 기본값: 10KB(10,240바이트).
-
previous(선택 사항): 이전에 종료된 컨테이너 로그를 반환합니다(기본값은 false). 다시 시작하는 포드에 대한 로그를 가져오는 데 유용합니다.
-
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플래그와 동일한 구문을 사용합니다. -
namespace(선택 사항): 나열할 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 리소스의 이름.
-
namespace(선택 사항): 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 로드 밸런서 체계. 유효한 값:
-
'internal'(프라이빗 VPC만 해당)
-
internet-facing'(퍼블릭 액세스).
-
기본값: 'internal'.
-
cpu(선택 사항): 각 컨테이너에 대한 CPU 요청(예: 0.1 CPU 코어의 경우 '100m', 코어 절반의 경우 '500m'). 기본값: '100m'.
-
memory(선택 사항): 각 컨테이너에 대한 메모리 요청(예: 128MiB의 경우 '128Mi', 1GiB의 경우 '1Gi'). 기본값: '128Mi'
-
namespace(선택 사항): 애플리케이션을 배포할 Kubernetes 네임스페이스. 기본값: 'default'.
-
port(선택 사항): 애플리케이션이 수신 대기하는 컨테이너 포트. 기본값: 80
-
replicas(선택 사항): 배포할 복제본 수. 기본값: 2
get_cloudwatch_logs
입력 파라미터에 기반한 필터링과 EKS 클러스터 관찰성에 사용되는 표준 로그 그룹에 대한 지원을 통해 CloudWatch 로그를 쿼리합니다.
파라미터:
-
cluster_name(필수): 리소스가 위치한 EKS 클러스터의 이름. CloudWatch 로그 그룹 이름을 구성하는 데 사용됩니다.
-
resource_type(필수): 로그를 검색할 리소스 유형. 유효한 값: +'pod', 'node', 'container', 'cluster'. 이를 통해 로그가 필터링되는 방법을 결정합니다.
-
log_type(필수): 쿼리할 로그 유형. 유효한 값:
-
'application': 컨테이너/애플리케이션 로그
-
'host': 노드 수준의 시스템 로그
-
'performance': 성능 지표 로그
-
'control-plane': EKS 컨트롤 플레인 로그
-
'your-log-group-name': 사용자 지정 CloudWatch 로그 그룹 이름을 직접 제공합니다.
-
resource_name(선택 사항): 로그 메시지에서 검색할 리소스 이름(예: 포드 이름, 노드 이름, 컨테이너 이름). 특정 리소스에 대한 로그를 필터링하는 데 사용됩니다.
-
minutes(선택 사항): 과거 로그를 조회할 분 수. 기본값: 15. start_time이 제공된 경우 무시됩니다. 최근 문제에는 더 작은 값을 사용하고 과거 분석에는 더 큰 값을 사용합니다.
-
start_time(선택 사항): ISO 형식의 시작 시간(예: '2023-01-01T00:00:00Z'). 제공된 경우 minutes 파라미터를 재정의합니다.
-
end_time(선택 사항): ISO 형식의 종료 시간(예: '2023-01-01T01:00:00Z'). 제공되지 않은 경우 기본값은 현재 시간입니다.
-
fields(선택 사항): 쿼리 결과에 포함할 사용자 지정 필드(기본값: '@timestamp, @message'). CloudWatch Logs Insights 필드 구문을 사용합니다.
-
filter_pattern(선택 사항): 적용할 추가 CloudWatch Logs 필터 패턴. CloudWatch Logs Insights 구문(예: 'ERROR', 'field=value')을 사용합니다.
-
limit(선택 사항): 반환할 최대 로그 항목 수. 더 빠른 쿼리에는 더 낮은 값(10~50)을 사용하고 더 포괄적인 결과를 얻으려면 더 높은 값(100~1,000)을 사용합니다. 값이 높을수록 성능에 영향을 미칠 수 있습니다.
get_cloudwatch_metrics
EKS 클러스터 모니터링 및 성능 분석을 위한 CloudWatch 지표 및 데이터 포인트를 검색합니다. Container Insights 지표, 사용자 지정 지표, 구성 가능한 기간 및 차원을 처리합니다.
파라미터:
-
cluster_name(필수): 지표를 가져올 EKS 클러스터의 이름.
-
dimensions(필수): CloudWatch 지표 쿼리에 대해 JSON 문자열로 사용할 차원. 리소스 유형 및 지표에 대한 적절한 차원을 포함해야 합니다(예: '{"ClusterName": "my-cluster", "PodName": "my-pod", "Namespace": "default"}').
-
metric_name(필수): 검색할 지표 이름. 일반적인 예제:
-
cpu_usage_total: 총 CPU 사용량 -
memory_rss: 상주 세트 크기 메모리 사용량 -
network_rx_bytes: 수신된 네트워크 바이트 -
network_tx_bytes: 전송된 네트워크 바이트 -
namespace(필수): 지표가 저장되는 CloudWatch 네임스페이스. 공통 값:
-
"ContainerInsights": 컨테이너 지표의 경우 -
"AWS/EC2": EC2 인스턴스 지표의 경우 -
"AWS/EKS": EKS 컨트롤 플레인 지표의 경우 -
minutes(선택 사항): 과거 지표를 조회할 분 수. 기본값: 15. start_time이 제공된 경우 무시됩니다.
-
start_time(선택 사항): ISO 형식의 시작 시간(예: '2023-01-01T00:00:00Z'). 제공된 경우 minutes 파라미터를 재정의합니다.
-
end_time(선택 사항): ISO 형식의 종료 시간(예: '2023-01-01T01:00:00Z'). 제공되지 않은 경우 기본값은 현재 시간입니다.
-
limit(선택 사항): 반환할 최대 데이터 포인트 수. 값이 높을수록(100~1,000) 더 세분화된 데이터가 제공되지만 성능에 영향을 미칠 수 있습니다. 기본값: 50.
-
period(선택 사항): 지표 데이터 포인트의 기간(초). 기본값: 60(1분). 값이 낮을수록(1~60) 해상도는 높지만 가용성은 떨어질 수 있습니다.
-
stat(선택 사항): 지표 집계에 사용할 통계. 기본값: 'Average'. 유효한 값:
-
Average: 해당 기간의 평균 값 -
Sum:: 해당 기간의 총 값 -
Maximum: 해당 기간의 최고 값 -
Minimum: 해당 기간의 최저 값 -
SampleCount: 해당 기간의 샘플 수.
get_eks_metrics_guidance
EKS 클러스터의 특정 리소스 유형에 대한 CloudWatch 지표 지침을 가져옵니다. get_cloudwatch_metrics 도구와 함께 사용할 올바른 차원을 결정할 때 에이전트에 유용합니다.
파라미터:
-
resource_type(필수): 지표를 가져올 리소스 유형(클러스터, 노드, 포드, 네임스페이스, 서비스).
get_policies_for_role
수임 역할 정책, 관리형 정책 및 인라인 정책을 포함하여 지정된 IAM 역할에 연결된 모든 정책을 검색합니다.
파라미터:
-
role_name(필수): 정책을 가져올 IAM 역할의 이름. AWS 계정에 역할이 있어야 합니다.
전체 액세스(쓰기) 도구
이 섹션에서는 EKS MCP 서버에 대해 사용할 수 있는 읽기 전용 도구를 설명합니다. '오늘'을 기준으로 모든 쓰기 Kubernetes API 작업은 다음에만 액세스할 수 있습니다.
-
Public clusters(endpointPublicAccess=true)
manage_k8s_resource
쓰기 작업(생성, 업데이트, 패치 또는 삭제)을 사용하여 단일 Kubernetes 리소스를 관리합니다.
파라미터:
-
operation(필수): 리소스에서 수행할 작업. 유효한 값:
-
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').
-
body(선택 사항): JSON 문자열에 해당하는 리소스 정의. 생성, 교체 및 패치 작업에 필요합니다. 생성 및 교체의 경우 완전한 리소스 정의여야 합니다. 패치의 경우 업데이트할 필드만 포함해야 합니다.
-
name(선택 사항): Kubernetes 리소스의 이름. 생성(본문에 지정할 수 있음)을 제외한 모든 작업에 필요합니다.
-
namespace(선택 사항): Kubernetes 리소스의 네임스페이스. 네임스페이스 기반 리소스에 필요합니다. 클러스터 범위의 리소스(예: Nodes, PersistentVolumes)에는 필요하지 않습니다.
apply_yaml
EKS 클러스터에 Kubernetes YAML 매니페스트를 적용합니다.
파라미터:
-
cluster_name(필수): 리소스를 생성하거나 업데이트할 EKS 클러스터의 이름.
-
namespace(필수): 리소스를 적용할 Kubernetes 네임스페이스. 네임스페이스를 지정하지 않는 네임스페이스 기반 리소스에 사용됩니다.
-
yaml_content(필수): 클러스터에 적용할 YAML 콘텐츠. '---'로 구분된 여러 문서를 포함할 수 있습니다.
-
force(선택 사항): 리소스가 이미 존재하는 경우 업데이트 여부(kubectl 적용과 유사). 새 리소스만 생성하려면 false로 설정합니다.
manage_eks_stacks
템플릿 생성, EKS 클러스터 및 기본 인프라 배포, 설명 및 삭제 작업을 통해 EKS CloudFormation 스택을 관리합니다. 클러스터 생성은 완료하는 데 보통 15~20분이 걸립니다. 배포 및 삭제 작업의 경우 이 도구로 스택을 생성해야 합니다(예: CreatedBy=EksMcpServer로 태그 지정).
파라미터:
-
cluster_name(필수): EKS 클러스터의 이름(생성, 배포, 설명 및 삭제 작업용). 이 이름은 CloudFormation 스택 이름을 추출하는 데 사용되며 클러스터 리소스에 포함됩니다.
-
operation(필수): 수행할 작업. 유효한 값:
-
generate: CloudFormation 템플릿 생성 -
deploy: CloudFormation 스택 배포(template_content필요) -
describe: CloudFormation 스택 설명/읽기(읽기 전용) -
delete: CloudFormation 스택 삭제 -
template_content(선택 사항): CloudFormation 템플릿 콘텐츠(배포 작업용). 이는 전체 YAML 또는 JSON 템플릿 콘텐츠여야 합니다. 단일 리소스와 '---'로 구분된 다중 문서 YAML 콘텐츠를 모두 지원합니다.
add_inline_policy
IAM 역할에 새 인라인 정책을 추가합니다.
파라미터:
-
permissions(필수): IAM 정책 설명을 나타내는 JSON 문자열로 정책에 포함할 수 있는 권한. 단일 JSON 문자열 또는 JSON 문자열 배열일 수 있습니다.
-
policy_name(필수): 생성할 인라인 정책의 이름. 역할 내에서 고유해야 합니다.
-
role_name(필수): 정책을 추가할 IAM 역할의 이름. 역할이 있어야 합니다.