Rancher Server の CA 証明書を入れ替えた後に cluster が Inactive になる件
背景
最近自前で簡単な PKI を運用し始めたので、これまで自己署名証明書で運用していた Rancher Server のCA証明書/サーバー証明書/秘密鍵をそこで作った第四種オレオレ証明書*1へと移行した。
ところ、数時間後に cluster 画面で state が Inactive となってしまい、確認したところ cattle-cluster-agent
が以下のようなログを吐いていた。
2019/05/30 15:53:24 [INFO] 2019/05/30 15:53:24 http: TLS handshake error from {ランチャーサーバー}: remote error: tls: bad certificate
環境
- Rancher 2.3
- Imported k3s 0.5.0 Cluster
対処
cattle-cluster-agent
および cattle-node-agent
の環境変数 CATTLE_CA_CHECKSUM
をなんとかする。
Rancher Server の Docker コンテナが動いている場所で、次のようにすると新しいチェックサムが得られる。
$ docker exec ${rancher-server container id} kubectl get setting cacerts -o json | jq -r .value | sha256sum | awk '{ print $1 }' 65a964b1fe8a39621f5096f47ca32a2327ac02886fe6ec0fde2121bff665abdb
ので、この値で CATTLE_CA_CHECKSUM
を上書きしてやる。ワイは k3s server 上で /opt/k3s kubectl edit deployment cattle-cluster-agent -n cattle-system
と /opt/k3s kubectl edit daemonset cattle-node-agent -n cattle-system
しました。
edit で再デプロイが走れば cluster が Active に帰ってくるはずです。
具体的なやり方についてはこちらの shell script を参考にさせていただいた。
CATTLE_CA_CHECKSUM
を空にしたらしたで良い感じに動くようだけど、ひとまずちゃんと上書きしたら良くなったので良かった。