Community생산성 & 협업github.com

EKS Pod Operations

EKS 환경에서 파드를 찾고, 로그를 읽고, 컨테이너에 접속하며, 배포를 재시작하는 AI 에이전트 스킬입니다.

EKS Pod Operations란 무엇인가요?

이 스킬은 AI 에이전트가 Amazon EKS(Kubernetes) 클러스터에서 파드 관련 작업을 수행할 수 있도록 설계된 재사용 가능한 도구입니다. kubectl과 AWS CLI를 기반으로 하여, 특정 서비스의 파드 목록 조회(pods), 로그 확인(logs), 실행 중인 컨테이너에 명령어 실행(exec), 배포 롤아웃 재시작(restart) 등의 작업을 자동화합니다. 각 환경별로 SSO 프로필과 kubeconfig 파일이 설정되어 있어야 하며, 사전 점검 스크립트를 통해 연결 상태를 확인할 수 있습니다. 특히 exec와 restart 명령은 사용자에게 명령어를 먼저 보여주고 명시적인 승인을 받은 후에만 실행되도록 설계되어 안전성을 보장합니다. 또한 출력에서 자동으로 비밀 정보(토큰, 키, 자격 증명)를 [REDACTED]로 치환하며, 민감한 환경 변수를 한꺼번에 덤프하는 명령(env, printenv, set)은 차단됩니다. Cursor, Claude Code, Cline 등 Agent Skills 표준을 지원하는 모든 플랫폼에서 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add sagy101/DotSkills

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

EKS Pod Operations은(는) 무엇을 하나요?

EKS 환경에서 로그를 읽고, 파드를 찾고, 컨테이너에 접속하며, 배포를 재시작합니다.

이 스킬을 사용하는 경우

사용자가 다음을 원할 때 이 스킬을 사용하세요:

  • 파드 또는 서비스의 로그 보기
  • EKS 환경에서 파드 나열 또는 찾기
  • 실행 중인 파드 내부에서 명령어 실행
  • 배포 재시작(롤아웃 재시작)
  • 파드 디버깅(describe, 상태 확인, 이전 로그 보기)
  • 특정 환경에서 서비스가 실행 중인지 확인

전제 조건

  1. kubectl: 설치되어 있고 PATH에 있어야 함
  2. AWS CLI: 환경별 SSO 프로필이 구성되어 설치되어 있어야 함
  3. Kubeconfigs: 환경별로 ~/.kube/config_<env>에 생성되어 있어야 함
  4. Config: ~/.eks-config.json — 최초 실행 시 kubeconfig와 AWS 프로필을 스캔하여 자동 생성됩니다. 수동 설정은 CONFIG.md를 참조하세요.

사전 점검

대화 중 첫 번째 작업 전에 사전 점검 스크립트를 실행하세요:

python3 <skill_dir>/scripts/eks_preflight.py

특정 환경(kubeconfig + SSO)을 확인하려면:

python3 <skill_dir>/scripts/eks_preflight.py --env stg

SSO가 만료된 경우 사용자에게 알리세요: aws sso login --sso-session <session> (세션 이름은 사전 점검 출력에 있습니다).

작업

pods — 파드 나열 또는 설명

# 서비스의 파드 찾기
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --service my-service

# 환경의 모든 파드 나열
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --all

# 파드 설명 (이벤트, 조건, 마운트)
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --service my-service --describe

logs — 파드 로그 읽기

# 마지막 100줄 (기본값)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service

# 사용자 지정 tail 크기 및 시간 범위
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --tail 500 --since 1h

# 이전 컨테이너 (충돌/재시작 후)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --previous

# 모든 복제본 한 번에 (stern이 설치된 경우 사용)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --all-pods

# 실시간 로그 스트리밍
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --follow

# 특정 파드 이름으로 (서비스 확인 생략)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --pod my-service-abc123-xyz --tail 200

exec — 파드 내부에서 명령어 실행

실행 전에 정확한 명령어를 사용자에게 보여주고 승인을 받으세요.

python3 <skill_dir>/scripts/eks_ops.py exec --env dev --service my-service -- ls /app/conf
python3 <skill_dir>/scripts/eks_ops.py exec --env dev --service my-service -- cat /app/conf/application.conf
python3 <skill_dir>/scripts/eks_ops.py exec --env stg --service my-service -- env | grep -i heap
python3 <skill_dir>/scripts/eks_ops.py exec --env stg --service my-service -- df -h

restart — 배포 롤아웃 재시작

실행 전에 재시작 명령어를 사용자에게 보여주고 승인을 받으세요.

python3 <skill_dir>/scripts/eks_ops.py restart --env dev --service my-service
python3 <skill_dir>/scripts/eks_ops.py restart --env dev --service my-service --watch

중요한 규칙

  1. exec와 restart는 명시적인 사용자 승인이 필요합니다. 정확한 명령어를 보여주고 확인을 기다리세요.
  2. pods와 logs는 읽기 전용입니다. 승인 없이 직접 실행하세요.
  3. 모든 출력은 자동으로 편집됩니다 — 비밀, 토큰, 키, 자격 증명은 [REDACTED]로 대체됩니다. references/REDACTION.md를 참조하세요.
  4. exec 내에서 단독 env, printenv 또는 set 명령어는 차단됩니다. 대신 env | grep -i <keyword>를 사용하세요.
  5. exec 내에서 /secrets/, /vault/ 또는 자격 증명 경로 아래의 파일 읽기는 차단됩니다.
  6. 출력에 [REDACTED]가 나타나면 원래 값을 검색하려고 시도하지 마세요.
  7. 스크립트는 멀티 컨테이너 파드에서 앱 컨테이너를 자동 선택합니다(사이드카인 statsite, istio-proxy는 건너니다).
  8. 여러 복제본: 서비스에 여러 파드가 있을 때 --service는 첫 번째 실행 중인 파드를 선택합니다. 사용자가 특정 복제본을 원하면 먼저 pods --env <env> --service <name>을 실행하여 모든 복제본을 나열하고, 사용자에게 물어본 후 --service 대신 --pod <pod-name>을 사용하세요.
  9. 프로덕션 로그 조사에는 Grafana 또는 Splunk를 선호하세요 — 이 스킬은 보조 도구로 사용하세요.
  10. 개발자는 일반적으로 읽기 전용 EKS 액세스 권한을 가집니다 — 프로덕션 클러스터에서는 restart가 실패할 수 있습니다.

오류 처리

오류원인해결 방법
SSO session may be expiredAWS SSO 토큰 만료aws sso login --sso-session <session>
Kubeconfig not foundkubeconfig 파일 없음aws eks update-kubeconfig --profile <env> --name <cluster> --kubeconfig ~/.kube/config_<env>
No pods found for service잘못된 서비스 이름 또는 실행 중인 파드 없음pods --env <env> --all로 사용 가능한 파드 확인
Blocked: Dumps all environment variablesexec 차단 목록 트리거됨env | grep -i <keyword> 대신 사용
connection refused localhost:8080Rancher Desktop kubectl 충돌스크립트가 자동 감지합니다. 지속되면 which kubectl 확인

문제 해결

문제해결 방법
kubectl: command not foundbrew install kubectl
aws: command not foundbrew install awscli
설정 파일을 찾을 수 없음~/.eks-config.json 생성 — 전제 조건 참조
잘못된 네임스페이스환경 설정에서 namespace 설정
로그가 비어 있음충돌한 컨테이너의 경우 --previous를 시도하거나 --since 증가
stern을 찾을 수 없음brew install stern (선택 사항 — 순차 kubectl로 대체됨)

관련 스킬