📚

Wireguardとk3s

2024/07/27に公開

どうもインフラを専門にやっているtuna2134です。

ところで、みなさーん、k8sやってますかー?

僕は当然やっています。

さて今回はwireguardを使っておうちにあるサーバをドイツのマスターノードに参加させてみようと思います。

けしからんぐらい遠いですけど、やります。
keshiakran

構成

  • Contabo (ドイツ、マスターノード)
  • 普通のVM (日本、ワーカーノード)

OSは基本的にdebian使います。

まずWireguardをインストール

これはすべてのノードで実行してください。

apt-get install wireguard-tools

wireguard設定

まずキーを生成します。

  • server.keyはサーバのプライベートキーです
  • server.pubはサーバのパブリックキーです

サーバーのキーを生成

wg genkey | tee server.key | wg pubkey > server.pub

クライアントキーの設定

wg genkey | tee client.key | wg pubkey > client.pub

サーバ側のwireguardの設定

/etc/wireguard/wg0.confを編集して以下のように編集してください。

[Interface]
PrivateKey=$(Server private key)
Address=172.16.42.1
ListenPort=51820

[Peer]
PublicKey=$(Client public key)
AllowedIPs=172.16.42.2
PersistentKeepAlive=30

wireguardを起動

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

クライアント側のwireguardの設定

/etc/wireguard/wg0.confを編集して以下のように編集してください。

[Interface]
PrivateKey=$(Client private key)
Address=172.16.42.2

[Peer]
PublicKey=$(Server public key)
AllowedIPs=172.16.42.1/24
Endpoint=$(server ip):51820
PersistentKeepAlive=25

wireguardを起動

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

k3sの設定

マスターノードを作成

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

その後、/var/lib/rancher/k3s/server/node-tokenに書かれている内容を控えてください。

ワーカーノードの参加

curl -sfL https://get.k3s.io | K3S_URL=https://172.16.42.1:6443 K3S_TOKEN=$(控えたもの) sh -

これで構築完了しました。お疲れ様です。

最後に

Kubernetesの軽量版k3sでk8sクラスターを構築しました。
ドイツという場所が遠いので、かなりレスポンスなどが遅いです、、、
なので、できるだけ近いところ同士でつなぎましょう。

GitHubで編集を提案
Neody

Discussion