🆔
k3sクラスタを立ち上げたあとに、control-planeのIPアドレスを変えた時の対処方法
はじめに
k3s version v1.28.4+k3s2 (6ba6c1b6)
クラスタ立ち上げ後にIPアドレスを変えると…
自己署名の証明書のCNに新しいIPアドレスが含まれていないのでkubectl等がエラーになります。
Unable to connect to the server: tls: failed to verify certificate: x509: certificate is valid for 192.168.1.123, 10.43.0.1, 127.0.0.1, ::1, not 新しいIPアドレス
解決策
上記に書かれている通り…
以下の操作は、すべてk3sのコントロールプレーンのノードで実行する。
secrets/k3s-serving の変更
kubectl -n kube-system edit secrets/k3s-serving
エディタが開く。以下のような行があるので新しいIPアドレスを追加する。
例えば、追加したいIPアドレスが 192.168.123.234 ならば以下のようにする
listener.cattle.io/cn-10.43.0.1: 10.43.0.1
listener.cattle.io/cn-127.0.0.1: 127.0.0.1
listener.cattle.io/cn-192.168.123.234: 192.168.123.234 // この行追加
k3s 停止
証明書を作り直すので一旦k3sを止める
sudo systemctl stop k3s
証明書作り直し
sudo k3s certificate rotate
k3s 開始
sudo systemctl start k3s
リモート接続が必要なPCに証明書をコピーしなおし
sudo cat /etc/rancher/k3s/k3s.yaml
の中身を必要なPCにコピーして、IPアドレスを書き換える。 k8sクラスタが一個しかないのであれば、 .kube/config
にコピーすればOK。
コピー後、 kubectl get nodes
して表示されればOK。
Discussion