VPSサーバーにk3sをインストールする手順(マルチサーバー編)
インストール手順
ファイアウォールの設定
- マスターノード(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"
ネットワーク名を指定します。
サービスの再起動と設定のコピー
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"になっていれば、クラスター構成が完了