주니어 백엔드/DevOps의 우당탕탕 스토리

Story of Jr. Backend/DevOps Developer.
ko en

1. 여러 네트워크에 있는 노드를 연결해서 Kubernetes(K3S) 클러스터 구축하기 - 소개편

요 프로젝트는 뭐에요?

이 프로젝트는 여러 네트워크에 연결되어 있는 컴퓨팅 노드들을 연결해서 K3s(경량화 Kubernetes) 클러스터를 구축하는 프로젝트 입니다.

이걸.. 왜 해요?

일단 K8s 클러스터는 구축하고 싶은데요,

  • 집에 Raspberry Pi 4 2대,
  • 학교 연구실에 Jetson Nano 2대 + Jetson AGX Xavier 1대
  • 회사에 남는 맥북(19년도 16인치) 2대 이 모든 기기들을 모두 다 하나의 클러스터로 연결하고 싶었어요.

당시 환경!

  • 집에 있는 기기/네트워크는 제가 라우터에서 관리할 수 있어요.(iptime + 도메인 + 외부 접속 등)
  • 학교 연구실도 가능은 한데 외부 접속이 2주 간격으로 죽어요.
  • 회사에 있는 기기들은 보안상 제약은 없지만 라우터 관리 등을 제가 하지 않아서 사실상 외부 접속과 관련된 부분을 관리할 수 없어요.
  • (+ 따로 로드벨런서는 없고, NodePort/ClusterIP같은 것을 활용할 목적입니다.)

그래서 이 프로젝트는 이런걸 해볼거에요.

  • 외부 클라우드 VM 서비스를 이용해서 OpenVPN 구축(w. Microsoft Azure)
  • 각 기기들(Raspberry Pi, Ubuntu, macOS-Multipass)에서 OpenVPN 클라이언트 셋업 & 연결
  • K3s 설치 스크립트 + 기타 환경변수 설정들을 활용해서 클러스터 셋업
  • 간단하게 Service/Deployment를 배포하고 테스트