본문 바로가기

PVC 설정 없이 Wireguard VPN 세팅하기

Wireguard로 VPN 환경을 구축하려고 했다.

이 과정에서 몇 kb~mb 수준의 설정파일을 위해 pvc를 할당하는 것은 돈낭비 같다.

 

그렇다고 로컬에 저장하면 다른 노드에 pod가 생성되는 경우 대응을 못하기 때문에 k8s를 쓰는 의미가 없을 것 같다.

어떻게 하면 클라우드 서비스의 뽕을 뽑아먹으면서 무료로 vpn을 운용할까?

 

ConfigMap + Secret 활용

다음의 방식을 차용한다.

  1. Pod 시작 → initContainer가 Secret에서 wg0.json 복사
  2. wg-easy 실행, 클라이언트 추가

단, 위와 같이 진행하면 클라이언트 추가 후 수동으로 백업이 필요하다.

# 현재 설정 백업
kubectl cp vpn-system/<pod-name>:/etc/wireguard/wg0.json ./wg0.json

 

당연한 내용이지만 필요한 사람을 위해 secret 갱신 방법을 제공한다.

kubectl create secret generic wireguard-secret \
--from-file=wg0.json=./wg0.json \
--from-literal=PASSWORD_HASH='$2b$12$...' \
-n vpn-system --dry-run=client -o yaml | kubectl apply -f -

 

이제 내 설정파일은 내 돈주고 세팅하지 않고

오라클 클라우드가 관리한다 :)

NORMAL j/k: 이동 · Enter: 열기 · /: 검색 · ?: 도움말