본문 바로가기

프로젝트/회사 및 외주 프로젝트

서로 다른 클라우드 서버를 VPN으로 묶어 쿠버네티스 구축하기 (1) - VPN 설정

계기 

현재 회사에 자체 서버도 있고, 외부 업체에 호스팅을 맡긴 서버도 있으며, 클라우드로 운영하는 서버들도 있다.

 

이제 운영하다 보니 각 서버별로 관리 방식과 접근 방식이 제각각이라, 모니터링, 보안 정책 적용, 사용자 접근 제어 등에서 점점 관리의 불편함을 느끼기 시작했다.

현재 서버 현황

A 서버 : 회사 자체 서버 -성능이 가장 좋음 ( Ubuntu20.04 )

B 서버 : 외부 업체에 호스팅을 맡긴 서버 - 한곳에서 docker 기반으로 여러 사이트 운영중- ( Ubuntu20.04 )

C, D 서버 : 운영중인 클라우드 서버 (CentOS 7, 3버전대 커널)

 

위와같다. 이제 이런 서비스들을 각 쿠버네티스를 통해 관리하고싶은데, 서로 다른 네트워크로 분산되어 있기 때문에 기본적인 쿠버네티스간 통신이 불가능하다. 이를 위해 하나로 묶을수 있는 수단이 필요했다.

 

VPN (Virtual Private Network)

서로 떨어져있는 컴퓨터나 서버들을 가상의 하나의 네트워크로 묶어주는 기술이다. 이를 기반으로 하나의 네트워크에서 쿠버네티스를 운영하는것 또한 가능해진다.

 

이를 위해 VPN으로 고민한 기술들은 2가지였다.

 

  • WireGuard -  오픈소스기반 프로젝트
  • Tailescale - WireGuard 기반 서비스, 설정이 가장 간편, 로그인 필요,  100대가넘어가면 유료

여기서 처음에는 WireGuard를 통해 서비스를 구축해봤다. 

 

Ubuntu 20.04였던 두 서비스에는 정상적으로 설치및 테스트가  가능했지만 CentOs 7 버전에서는 제대로 동작하지 않았다.

(현재 쓰고있는 CentOs의 커널 버전대가 3버전대였는데 5버전대에서 지원이 가능하다는 얘기였다.)

 

클라우드 버전의 CentOs 7버전을 쓰고있던 나로써는 마음대로 커널버전을 올려서 운영할수 없었고 

CentOs 7버전대도 대응되는 TailScale을 사용하게 되었다.

 

Tailscale 세팅하기

Tailscale을 세팅하는법은 아주 쉽다.

 

  1. https://tailscale.com/ 에 회원가입하기 
  2. 각 서버별로 Tailscale 설치하고 tailscale에 로그인하기

해당과 같이 가입이 가능했다. 나는 다른사람도 접속할수 있다는 생각으로 회사 메인 GitHub 계정으로 회원가입했다.

(Github의 2FA는 Authy를 통해 해결하였다.)

 

 

이제 각 서버별로 tailscale을 설치, 로그인하면 마무리 된다. 

 

https://tailscale.com/download/linux

 

 

Ubuntu 20.04에서 설치하기 

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

 

 

sudo apt-get update
sudo apt-get install tailscale
sudo tailscale up

 

CentOs7에서 설치하기 

sudo yum install yum-utils
sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/centos/7/tailscale.repo
sudo yum install tailscale

 

sudo systemctl enable --now tailscaled
sudo tailscale up

 

 

위와 같이 tailscale up을 하게되면 로그인 하라는 링크를 보내주게 되는데

모바일이나 PC에서 해당 링크에 들어가 같은 아이디로 로그인하면 된다. 

 

 

 

 

 

나는 이렇게 총 4대의 서버를 VPN으로 연결하는데 성공하였고.

 

 

 

 

마지막으로 Ping 까지 보내서 마무리 해보았다. 

A에서 C로 ping을 보낸 상황, 잘 동작하는것을 확인할수 있다.

반응형