问题详情
karmada集群无法访问,查看karmada-apiserver日志报错如下: authentication handshake failed: x509: certificate has expired or is not yet valid
解决
查看官方文档和github的issue只找到了 https://github.com/karmada-io/karmada/issues/4787, 但是也没有给出解决方案。
karmadactl命令中有一个参数是:
--cert-validity-period=8760h0m0s:
the validity period of Karmada certificate (e.g 8760h0m0s, that is 365 days)
所以我这里采用了移除控制平面重新init的方法。
karmadactl deinit
karmadactl init --crds crds.tar.gz --kube-image-registry=registry.cn-hangzhou.aliyuncs.com/google_containers --cert-validity-period=876000h0m0s
这样重新init后,push模式的集群会恢复正常,但是pull模式的集群状态会变为Unknown。
尝试删除member3集群卡主,强制删除也无法删除。
k delete cluster member3 --kubeconfig karmada-apiserver.config
k delete clusters member3 --kubeconfig karmada-apiserver.config --force
备份后直接删除目录和karmada相关服务。
cp -r /etc/karmada/ karmada-bak
rm -rf /etc/karmada/
k delete secrets -n karmada-system karmada-kubeconfig
k delete sa -n karmada-system karmada-agent-sa
k delete deploy karmada-agent -n karmada-system
重新打印token,再次注册。
karmadactl token list
karmadactl token create --print-register-command=true --kubeconfig=karmada-apiserver.config
karmadactl register 172.16.255.183:32443 --token y4pxld.zwkxsgbg6usqwnqn --discovery-token-ca-cert-hash sha256:7ff44770280230290394262c258d950134480a694fc69f4bb765747bd7dcc665 --cluster-name=member3
查看集群已恢复。