샘플 POD 배포

이제 모든 필요한 구성을 완료 했으므로 새로 생성 된 IAM 역할을 사용하여 2개의 쿠버네티스 작업을 실행 합니다.

  • job-s3.yaml: aws s3 ls 명령의 결과를 출력 합니다. (이 작업은 성공해야 합니다)

  • job-ec2.yaml: aws ec2 describe-instances --region ${AWS_REGION} 명령의 결과를 출력 합니다. (이 작업에 실패해야 합니다)

1. S3 버킷 목록

먼저 S3 버킷을 생성합니다.

aws s3 mb s3://eksworkshop-$ACCOUNT_ID-$AWS_REGION --region $AWS_REGION

service account S3 버킷을 나열 할 수 있는지 테스트하여 시작 하겠습니다.

mkdir ~/environment/irsa

cat <<EoF> ~/environment/irsa/job-s3.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: eks-iam-test-s3
spec:
  template:
    metadata:
      labels:
        app: eks-iam-test-s3
    spec:
      serviceAccountName: iam-test
      containers:
      - name: eks-iam-test
        image: amazon/aws-cli:latest
        args: ["s3", "ls"]
      restartPolicy: Never
EoF

kubectl apply -f ~/environment/irsa/job-s3.yaml

작업이 completed 되었는지 확인 합니다.

kubectl get job -l app=eks-iam-test-s3

로그를 확인하여 명령이 성공적으로 실행 되었는지 확인 합니다.

kubectl logs -l app=eks-iam-test-s3

2. EC2 인스턴스 리스트

이제 service account EC2 인스턴스를 나열 할 수 없는지 확인합니다.

cat <<EoF> ~/environment/irsa/job-ec2.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: eks-iam-test-ec2
spec:
  template:
    metadata:
      labels:
        app: eks-iam-test-ec2
    spec:
      serviceAccountName: iam-test
      containers:
      - name: eks-iam-test
        image: amazon/aws-cli:latest
        args: ["ec2", "describe-instances", "--region", "${AWS_REGION}"]
      restartPolicy: Never
  backoffLimit: 0
EoF

kubectl apply -f ~/environment/irsa/job-ec2.yaml

작업 상태를 확인 합니다

kubectl get job -l app=eks-iam-test-ec2

작업이 성공적으로 완료되지 않는 것이 정상입니다.

마지막으로 로그를 검토합니다.

kubectl logs -l app=eks-iam-test-ec2

Last updated