AWS

[AWS] Rancher를 통한 Kubernetes 클러스터 구축

테런 2024. 4. 24. 17:46
Overview

 

AWS 환경에서 Rancher를 통한 Kubernetes 클러스터 구축하기

Architecture (HA)

 

AWS 환경에서 구축을 진행하지만, 베어 메탈 및 다양한 클라우드 플랫폼에서 적용 가능합니다.

 

Architecture

 

  • AWS 환경
  • VPC 구성 - 가용 영역(AZ) 3개 설정
    • 상용 서비스에서 고가용성을 확보하려면 최소 Master Node 3대와 Worker Node 2대 필요
  • Master Node 3대와 Worker Node 3대 클러스터링
  • Master Node를 Public 서브넷에 설치하는 이유
    • Kubernetes 클러스터 구축을 위해 Kubernetes 관리형 서비스로 Rancher를 사용하는데, Rancher로 Master Node를 생성할 때, Ingress Controller를 같이 설치하기 때문입니다.
    • Master Node를 Private 서브넷에 설치하고 싶다면 함께 설치되는 Ingress Controller를 제거하고, Public 서브넷에 Ingress Controller Node를 설치
  • Bastion 서버
    • 개발자가 직접 Master Node가 있는 서버에 접속해서 개발하는 것은 위험합니다. 따라서, Bastion 서버에서 API를 통해 Kubernetes 클러스터 리소스를 관리해야 합니다. (kubectl)
  • NAT gateway
    • Private 서브넷에 있는 EC2 인스턴스들은 외부에서 내부로 접속을 할 수 없고, 내부에서 외부로만 인터넷이 사용가능하도록 설정
  • Network Load Balancer
    • 부하 분산 
    • 사용자들은 Network Load Balancer > Master Node (Ingress) > Worker Node > Pod로 서비스를 받는다.

 

실습

Architecture (Dev)

 

AWS에서 진행하므로 비용이 발생할 수 있습니다. 간소화된 아키텍처로 실습을 진행하도록 하겠습니다. 실습이 끝난 후에는 꼭 리소스들을 제거하시길 바랍니다.

 

목차 - 계속 업데이트할 예정 (Last Updated: 24.06.20 09:49)

 

1. [IaC] Terraform을 통한 AWS 환경 구축 (링크) (Updated: 24.06.07 17:08)

2. [Rancher] Kubernetes 클러스터 구축 (링크) (Updated: 24.05.24 10:17)

3. [Kubernetes] Kubernetes 클러스터 외부에서 관리하기 (Bastion, Local) (링크) (Updated: 24.05.27 10:31)

4. [Kubernetes] ArgoCD 설치하기 (링크) (Updated: 24.05.30 13:16)

5. [Git] Docker를 통한 Gitea 구축하기(GitLab과 차이) (링크) (Updated: 24.05.31 15:23)

6. [Gitea] Gitea를 통한 CI 파이프라인 구축 (with Docker Hub) (링크) (Updated: 24.06.05 14:55)

7. [Nexus] Nexus를 통한 Private Image Registry 구축 (링크) (Updated: 24.06.14 13:34)

8. [Gitea] Gitea를 통한 CI 파이프라인 구축 (with Nexus) (링크) (Updated: 24.06.14 15:28)

9. [Kubernetes] Gitea와 ArgoCD를 통한 CD 파이프라인 구축 (링크) (Updated: 24.06.17 16:29)

10. [IaC] Ansible을 통한 Application 구축 자동화 (링크) (Updated: 24.06.20 09:49)

11. [Kubernetes] OpenSearch와 Fluent Bit를 통한 Log 모니터링 시스템 구축

12. [Kubernetes] Prometheus와 Grafana를 통한 Metric 모니터링 시스템 구축