[K8S] 이번 플젝에서 MSA+k8s 를 채택하지 않은 이유

2022. 5. 13. 14:03개발 기타/인프라

상황

  • MSA 구조로 프로젝트 설계를 했다.(잘 모르는 상태라 강의를 부분적으로 참고해 설계함)
  • EC2 여러대를 써서 실제로 서비스를 나눠서 배포하려함.
  • 서버가 나뉘니까 쿠버네티스를 써도 좋겠다고 생각함
    -> 추가적인 부분으로 봤고, 쿠버네티스가 컨테이너 관리할 때 쓴다는 것 정도만 알고 있어서 설계에 반영하지 않음.
    -> 문제는 MSA 구조에서 각 서버의 역할에 대해서도 잘 모르는 상황이었음.
  • 하나의 EC2안에 도커 컨테이너로 MSA 구조 완성
  • 여기서부터 쿠버네티스 강의를 보기 시작함

문제

  • EC2 3대를 준비해놨는데 api gateway, config server 용으로 1대, 서비스 용으로 2대를 생각하고 있었다.
    +) EC2 추가 불가능한 상황
  • 쿠버네티스 강의를 보니 master node용으로 EC2 1대를 할당해야함을 알게됨
    -> 그렇다면 api gateway는 어디에 둬야하지? master에 둬도 되는건가? 하는 의문이 생김
    -> 따로 검색해보니 Ingress라는 것이 있었고 이게 gateway의 역할을 하는 것으로 보임

결론

  • k8s 자체에 gateway역할을 위한 기능이 있으며, 이걸 쓰는게 맞는 것 같다.
  • 하지만 이미 spring cloud gateway로 만들어 둔게 있으며, 프로젝트에 쿠버네티스가 꼭 필요한 정도는 아니기 때문에 안쓰기로 했다.
  • 그래도 이번에 조금 공부를 했기 때문에 다음에 설계를 할 때는 이러한 실수를 하지 않겠지.
  • 2학기 내내 인프라쪽으로 많이 하면서 내 커리어가 어디로 가나 하는 생각을 했는데, 설계를 생각하면 잘 한 선택이었다고 생각한다. 젠킨스를 안했으면 환경변수에 대한 개념을 익히지 못했을거고, 쿠버네티스와 MSA를 안했으면 설계시에 뭐가 필요하고, 뭘 안할 수 있는지 몰랐을 것이다.
  • 지금은 프로젝트 마감이 있어 k8s를 여기서 마무리하겠지만, 이번 플젝이 끝나면 강의를 마저 들으면서 조금 더 공부하려고 한다.

'개발 기타 > 인프라' 카테고리의 다른 글

[K8S] kubeadm init 에러  (0) 2022.05.13
[linux] 리눅스 시간을 한국 기준으로 바꾸기  (0) 2022.05.05