Tailscale でいつでもおうち kubernetes に VPN アクセス 🏠
おうちでKubernetesクラスターを運用しているんですが、外出先からアクセスしたいときがあります。そんなときに便利なのが Tailscale です!🚀
Tailscaleは簡単にVPN環境が構築できるアプリケーションで、VPNを使いたい端末にインストールして起動するだけ。学習コストがかなり低いのが魅力です 😊
無料プランでも20端末まで使用可能なので、個人利用や少人数のチームなら無料で十分使えます。Mac、Windows、Linuxなどあらゆるプラットフォームに対応していて、コミュニティーではDockerイメージやHelm Chartも公開されています。
今回はHelm Chartを使っておうちKubernetesに導入して、どこからでもVPNアクセスできる環境を作ってみます!
Auth Key の作成
まずはTailscaleにログインして、「Settings > Personal Settings > Keys」から Generate auth key... をクリックします。
IP アドレスレンジの取得
ServiceリソースのClusterIPで使用されるIPアドレスのサブネットを取得します。
SVCRANGE=$(echo '{"apiVersion":"v1","kind":"Service","metadata":{"name":"tst"},"spec":{"clusterIP":"1.1.1.1","ports":[{"port":443}]}}' | kubectl apply -f - 2>&1 | sed 's/.*valid IPs is //')
echo $SVCRANGE
tailscale-relay をインストール
Helm でインストールします。
helm repo add mvisonneau https://charts.visonneau.fr
helm install \
tailscale-subnet-router \
mvisonneau/tailscale-relay \
--set config.authKey=<YOUR_AUTH_KEY> \
--set config.variables.TAILSCALE_ADVERTISE_ROUTES=<YOUR_SUBNET_RANGE>
以下のリソースが作成されていることが確認できます。
❯ kubectl -n tailscale get all
NAME READY STATUS RESTARTS AGE
pod/tailscale-relay-0 1/1 Running 0 3m6s
NAME READY AGE
statefulset.apps/tailscale-relay 1/1 10m
tailscale.com を開いての Machines を確認すると、tailscale-relay-0 が追加されていることが確認できます。
Routing 設定
「Edit route settings」より Subnet routes を有効にします。
❯ip r get 10.43.0.0/16
10.43.0.0 dev utun5 src 100.97.218.103
Mac で tailscale を起動してみます。疎通確認をしてみます。 (特定の Pod と疎通が取れないので調査中)