😽 yumenomatayume.log

Tailscale でいつでもおうち kubernetes に VPN アクセス

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 と疎通が取れないので調査中)

Reference(参考)
👍