brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 23. 2022

EKS 6탄-2. Amazon EKS 기반 멀티테넌트

멀티 테넌트 간 분리

테넌트 간 분리를 Amazon EKS에서 구현하는 방법들입니다.



<1> 테넌트?

<2> EKS 사용 이유?

<3> 테넌트를 나누는 주요 요인?

<4> 네트워크 정책

<5> 파드 권한 제어

<6> 리소스 쿼터

<7>  스케줄링으로 보안, 리소스 분배, 티어링 해보자. - 파드  우선순위?

<8> OPA (OPEN POLICY AGENBT)  게이트 키퍼 오픈소스 활용

<9> 테넌트별 소비 패턴 파악

<20> 같이 보면 좋을 사이트




<1> 테넌트?


B2B라면 고객 회사

B2C라는 소프트웨어 최종 사용자이다.

테넌트별 소비 패턴을 알아보자.




<2> EKS 사용 이유?


오픈 소스

비용 효율성 - 컨테이너로 적은 리소스 사용

관리형 쿠버 네티스 - 관리부 담은 적고 고가용성과 높은 확장성 제공

안정성과 확장성 - Fargate 등



Saas는 테넌트 간 환경을 공유하면서  인프라 활용도를 높이는 구조를 가진다.




<2> 테넌트를 나누는 주요 요인?


1

보안 및 규정 준수.

다른 테넌트 간 데이터 전달이 안되어야 한다.



2

리소스를 고른 분배

cpu  메모리, 네트워크 분배



3

티어링

프리미엄, 베이직 등으로 비용을 구분한다.

보안과 리소스를 티어링 한다.   높은 요금제에 보안을 더 제공한다.




<3> 클러스터 티어링?


1

스탠더드 = 공유 테넌트


2

프리미엄 = 단독  = 보안과 리소스 강화됨



3

네임스페이스?

클러스터 내에서 테넌트 간 안전한  네트워크 간 네트워크 정책

권한을 관리하는 서비스 어카운트

리소스 쿼터



<4> 네트워크 정책


1

디폴트로 클러스터 내 모든 파드는  제한 없이 통신 가능.

멀티 테넌트에서는 테넌트 간 엄격한 네트워크 차단이 필요하다.


2

쿠버 네티스 네트워크 정책 이용법?

셀렉터, 레이블

IP, 포트

3~4 계층에서 pod 간 제어법.



3

추가로

TOGERA 등 네트워크 플러그인을 설치해 사용 시?

구체적인 정책 적용 가능

글로벌 정책 지원

서비스 메시와 통합 가능

레이어 7 계층 제어 가능



4

디폴트 Deny 정책을 적용해 네트워크 보안을 유지?

예를 들어 캘리코 네트워크 정책에 디폴트  Deny정책 적용




<5>  서비스 어카운트 , 파드 권한 제어


1

서비스 어카운트 위한  IAM 역할 사용 필요.


2

IRSA는  IAM을 통해 제어 가능.



3

IRSA 사용 조건?

해당 클러스터에서 IAM을 OIDC 공급자로 설정해야 한다.


https://brunch.co.kr/@topasvga/2471



https://brunch.co.kr/@topasvga/2473




<6> 리소스 쿼터



1

특정 테넌트에 의한 과도한 리소스 소진으로 전체 장애 발생하는 것을 방지하자.



2

리소스 쿼터

네임스페이스에서 필요한 최대 CPU,  최대 메모리를 설정하자.


3

스토리지 리소스 쿼터를 적용해 보자.



https://brunch.co.kr/@topasvga/1656





<7>  스케줄링으로 보안, 리소스 분배, 티어링 해보자. - 파드  우선순위?


1

낮은 우선순위의 파드를 축출할 수 있다.

무료 고객의 파드를 축출

유료 고객의 파드를 사용하도록 가능하다.


2

특정 파드가 특정 노드에 실행되도록 해보자.


3

테인트와 톨러 레이션?

어떤 파드가 해당 노드에 실행되지 못하도록 막는다.

taint 사용  , tolerations   설정


4

AWS FARGATE  관리형 컴퓨팅 서비스.

FARGATE에서 사용하는 POD는 다른 파드와 공유하지 않는다.

1개의 POD 가 독립적으로 사용된다.






<8> OPA (OPEN POLICY AGENBT)  게이트 키퍼 오픈소스 활용



OPA는 쿠버 네티스에 국한되지 않은 오픈소스 범용 정책 엔진


게이트키퍼는 OPA의 프로젝트 중 하나.




<9> 테넌트별 소비 패턴 파악


1

공유 환경 테넌트에서 구분하기?


2

테넌트별 인프라 비용 파악?

AWS Application Cost Porfiler   사용하자!

애플리케이션 미터링 -> S3  버킷에 데이터 수집 -> 데이터 처리 -> 리포트 (아테나와 퀵 사이트 사용)





<20> 같이 보면 좋을 사이트



1

https://brunch.co.kr/@topasvga/2466


다음

https://brunch.co.kr/@topasvga/2457

                    

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari