-
[EKS] IRSA를 활용하여 pod에 IAM 할당하기 #2k8s 2020. 7. 27. 00:36
지난 포스트에서 쿠버네티스 노드에 IAM을 부여할 경우 (해당 노드에) 배포되어 있는 모든 파드가 동일한 권한을 갖게 되며 이는 보안상 적절하지 않다고 얘기했습니다. (그림으로 표현하자면 아래와 같을 겁니다.) 지난 포스트에서는 IRSA가 대략적으로 어떻게 동작하는지 설명하였으니 오늘은 실습 위주의 포스트를 작성하려고 합니다. 아래 그림과 같이 파드 A, 파드 B를 동일한 노드에 배포하고 파드 A만 S3에 접근 가능한 환경을 구성해보려고 합니다. - Requirements 아래 2개의 패키지를 로컬에 설치 후 명령어가 정상적으로 수행될 수 있게끔 설정해야 합니다. (이 부분은 생략합니다.) eksctl aws-cli - EKS 클러스터 생성 테스트를 위한 test-cluster를 생성 $ eksctl c..
-
[EKS] IRSA를 활용하여 pod에 IAM 할당하기 #1k8s 2020. 7. 11. 04:11
AWS에서 쿠버네티스를 운영하다보면 파드가 S3나 DynamoDB와 같은 AWS 리소스를 이용해야 하는 경우가 종종 생깁니다. 쿠버네티스를 사용하지 않는 환경이라면 필요한 IAM 정책을 정의하고 EC2 인스터스에서 이 정책을 사용할 수 있게끔 할당해주면 간단히 해결되지만 IAM 정책은 인스턴스 단위로 사용할 수 밖에 없어 보안적인 측면에서 지켜야 하는 Principle of Least Privilege를 어길 수 있습니다. 예를 들어 flask 파드와 로그 수집을 위한 fluentbit 파드가 한 워커 노드에 올라가는 경우 kinesis를 통해 데이터 파이프라인을 구축하였다면 fluentbit는 kinesis로 데이터 전송을 해야 하므로 이와 관련된 IAM 권한이 필요할 겁니다. 만약 이 권한을 워커 노..
-
taint와 toleration을 활용한 schedulingk8s 2020. 7. 6. 00:01
# taint와 toleration 현재 위 그림처럼 쿠버네티스 클러스터를 환경 별로 나눠서 사용 중입니다. 구체적으로는 네임스페이스도 사용하고, 하나의 노드에 여러 개의 파드를 운영 중이지만 클러스터 구성 시 파드 스케줄링을 어떻게 할지 많이 고민했고, NodeSelector와 taint + toleration을 활용하여서 이 문제를 해결했습니다. 그래서 이번 글에서는 taint와 toleration의 간단한 사용 예을 적어보려고 합니다. k8s 문서에 보면 "taint와 toleration은 함께 작동하여 파드가 부적잘한 노드에 스케줄 되지 않게 한다."라고 나와 있습니다. 아래에서 설명하겠지만 taint는 노드에 적용되는 설정이고, toleration은 파드에 적용되는 설정입니다. 그림1과 같이 w..