클러스터 설계 전략
<aside>
💡 클러스터를 사용할 때의 의문점들
- 클러스터 수는 몇 개로 해야 하는지?
- 클러스터는 얼마나 커야 하는지?
- 클러스터에는 어떤게 들어있어야 하는지?
</aside>
예시) 3개의 앱에는 개발/테스트/운영 환경이 있다
⇒ 클러스터를 어떻게 설계하는게 좋을지?
대규모 공유 클러스터
모든 워크로드를 동일한 클러스터에서 실행하기
장점
- 효율적인 리소스 사용
- 클러스터당 마스터 노드가 3개가 필요하므로, 1개의 마스터노드가 3개면 된다
- load balancer, ingress controller, auth, logging, monitoring 등 하나로 관리할 수 있다
- 싸다
- 위의 장점으로 리소스를 더 적게 사용할 수 있으므로 저렴하다
- 관리가 쉽다
- kubernetes 버전 업그레이드
- CI/CD 파이프라인 설정
- CNI 플러그인 설치
- 사용자 인증 시스템 설정
- ingress controller 설치 등
단점
- 단일 실패 지점 (single failure point)
- 쿠버네티스 업그레이드시에 예상치 못한 장애 발생 가능
- 클러스터 구성요소가 예상대로 작동하지 않을 수 있음(CNI플러그인 등)
- 클러스터 구성요소 중 하나에 잘못된 구성이 만들어짐
- 인프라 장비 자체애 대한 중단이 발생 함
- 보안에 취약할 수 있음
- 쿠버네티스는 격리 및 보안이 아니라 공유를 위해 설계되었음을 기억하는 것이 중요한 포인트