なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Tailscale を使っている状態で k3s クラスタを構築したい

k3s という軽量 Kubernetes があります。 これを Oracle Cloud 上にある、 Tailscale で接続している Compute Instance に構築しようとしていて、ハマってしまったので備忘録。

前提:

  • Tailscale
  • k3s

ドキュメント通りに行くなら、マスターノードとなるインスタンスに k3s をインストールします:

$ curl -sfL https://get.k3s.io | sh -

次に、エージェントとなるインスタンスに k3s をインストールします:

$ curl -sfL https://get.k3s.io | K3S_URL="https://<tailscale-hostname>:6443" K3S_TOKEN=xxx sh -

......としても、

[INFO]  systemd: Starting k3s-agent

となったまま、エージェントがマスターに繋がる気配が無い。なぜだろう、というのが今回の記事。 実は、 Tailscale を使っている場合はオプションを使う必要があるのでした。ということでそのやり方。
まずはマスターノードから:

$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-iface tailscale0 --advertise-address <tailscale-master-node-ip> --node-ip <tailscale-master-node-ip> --node-external-ip <tailscale-master-node-ip>" sh -s

そして、エージェント側:

curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="agent --server https://<tailscale-master-node-hostname>:6443 --token <token>--flannel-iface tailscale0 --node-ip <tailscale-agent-node-ip> --node-external-ip <tailscale-agent-node-ip>" sh -s

これで、コマンドが正常に終了する。そしてマスターノードの様子を見に行くと:

$ sudo k3s kubectl get nodes
NAME    STATUS   ROLES                  AGE    VERSION
noa     Ready    <none>                 3m3s   v1.28.8+k3s1
toki    Ready    control-plane,master   13m    v1.28.8+k3s1
momoi   Ready    <none>                 12m    v1.28.8+k3s1

いっぱいいますね。ということで、メモでした。

参考: