Amazon EKS MCP 서버 도구 참조 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 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 역할의 이름. 역할이 있어야 합니다.