VPSサーバーにk3sをインストールする手順(マルチサーバー編)
2025-07-25
Post Image

インストール手順

ファイアウォールの設定

  • マスターノード(Master node) とワーカーノード(Worker node)の両方で
sudo ufw allow from (XX.XX.XX.0/24) to any port 6443 proto tcp
sudo ufw allow from (XX.XX.XX.0/24) to any port 10250 proto tcp
sudo ufw reload

※XX.XX.XX.0/24は、wiregaurdで設定したノード間を接続に用いるローカルIP

  • port 6443: ノード間通信
  • port 10250: はkubectl logでポッドのログを見るため

マスターノード(Master node)へk3sをインストールする。

curl -sfL https://get.k3s.io | sh -s - server --cluster-cidr=<your-cluster-cidr> --service-cidr=<your-service-cidr> --node-ip=<your-internal-node-ip> --node-external-ip=<your-external-node-ip> --cluster-domain="<your-cluster-domain>" --write-kubeconfig-mode 644
 --disable-network-policy --flannel-backend="wireguard-native" --flannel-iface="wg0"
  • --cluster-cid:
    クラスタのPodネットワークのCIDR(Classless Inter-Domain Routing)を設定します。クラスター内のすべてのPodに対して使用されるIPアドレス範囲を定義します。
  • --service-cidr:
    クラスタ内のサービスのCIDRを設定します。クラスター内のすべてのサービスに対して使用されるIPアドレス範囲を定義します。
  • --node-ip:
    現在のノードの内部IPアドレスを指定します。 wiregaurdで設定したマスターノードのローカルIPを指定します。
  • --node-external-ip:
    現在のノードの外部IPアドレスを指定します。 この設定により、ノードに外部からアクセスする際に、このIPアドレスを使用するように指示されます。
  • --disable-network-policy'
    エージェントノードのkubectl logsを機能させるために設定します。
  • --flannel-backend="wireguard-native" ノード間の接続にwireguardを用いるために設定します。
  • --flannel-iface="wg0"
    ネットワーク名を指定します。

K3sクラスタの安全なネットワーク構築:WireGuardを用いたVPN設定手順

サービスの再起動と設定のコピー

sudo systemctl daemon-reload
sudo systemctl restart k3s

sudo cp /etc/rancher/k3s/k3s.yaml ~/<dir>/.kube/config

sudo chown $(id -u):$(id -g) ~/<dir>/.kube/config
chmod 600 ~/<dir>/.kube/config

k3sの設定変更をインストール後に行う場合

sudo nano /etc/systemd/system/k3s.service

適宜修正し、

sudo systemctl daemon-reload && sudo systemctl restart k3s

アンインストール方法

sudo /usr/local/bin/k3s-uninstall.sh

or

sudo k3s-killall.sh
sudo rm -rf /var/lib/rancher/k3s

ワーカー(worker node)へk3sをインストールする。

  • ワーカーノードがマスターノードへ接続するためのトークンを確認する。(マスターノードにて)
sudo cat /var/lib/rancher/k3s/server/node-token

出力されたトークンをコピーして以下に用いる。

curl -sfL https://get.k3s.io | K3S_URL=https://(Master node's IP):6443 K3S_TOKEN=XXXXXXXXXX::server:XXXXXXXXXXXXXXXXX sh -s - --node-ip=(Worker node's IP) --bind-address=(Worker node's IP) --flannel-iface="wg0"

k3sの設定変更をインストール後に行う場合

sudo nano /etc/systemd/system/k3s-agent.service

適宜修正し、

sudo systemctl daemon-reload && sudo systemctl restart k3s-agent.service

アンインストール方法

sudo /usr/local/bin/k3s-agent-uninstall.sh

インストールの確認

kubectl get node -o wide

サーバー名の横のSTATUSが"Ready"になっていれば、クラスター構成が完了

VPSサーバーにk3sをインストールする手順(マルチサーバー編)
https://notes.midnightstops.com/posts/16/
作者
Author
公開日
2025-07-25