로딩...
vpn | virtual private network
가상으로 특정 네트워크에 속하도록 만든다
활용
- block, ban 등을 우회하는 용도로 사용
- 특정 국가 인증을 위해 사용
kubernetes
- proton vpn 을 기준으로 linux 설정을 제공한다
- terminal 만 존재하는 서버 환경에서도 사용할 수 있도록
config
를 제공- openvpn
- wireguard
- 간편하다고 해서 픽
- 파일 다운로드 후 pod 에 주입하기 위해서는
/etc/wireguard/[config_name.conf]
주입(마운트)이 필요- 이번 케이스는 configmap 을 통해서 주입
- 를 활성화해서 만들어진 config 를 적용할 필요있음,
.conf
제외하고 입력
`wg up [config_name]`
Dockerfile
단계에서ENTRYPOINT
를 통해서 스크립트로 활성 화 후CMD
진입
#!/bin/sh
# entorypoint 에 주입될 스크립트
wg-quick up [config_name]
exec "$@"
+ 로컬 환경 트래픽 지원
로컬 환경에도 접근을 해야하는 경우, eg, nas, db
- 이런 경우에는 추가 설정이 필요
ip route
에 로컬 서브넷들을 추가하여vpn
으로 트래픽이 가지 않도록 제외 시켜줘야 함- 이를 위해서는 kubernetes cluster 가 사용하는 subnet 을 알 필요가 있음
kube-system
namespace 의kubeadm-config
configmap 참조podSubnet
,serviceSubnet
확인
etc/wireguard/[config_name.conf]
에 마운트 되는 파일에 아래 내용이 필요
[Interface]
...
# DNS [VPN_DNS_IP]
PreUp = ip route add [KUBERNETES_SERVICE_SUBNET] dev eth0
PreUp = ip route add [KUBERNETES_POD_SUBNET] dev eth0
PostUp = echo 'nameserver [VPN_DNS_IP]' >> /etc/resolve.conf
PostDown = ip route del [KUBERNETES_SUBNET] dev eth0
PostDown = ip route del [KUBERNETES_POD_SUBNET] dev eth0
DNS ....
줄은 주석 처리한다. 안하는 경우/etc/resolve.conf
덮어 써짐.- 위에 내용이 추가됨으로 써 local network traffic 은 따로 라우팅
service
- proton vpn
- 무료로 제공