k8s主节点可以获取nodes节点信息,但是从节点无法获取,且报错"error: You must be logged in to the server (Unauthorized)"
排查思路:
当时证书过期了,只处理的主节点的证书过期,没有处理从节点的
bash
kubeadm alpha certs check-expiration
#用于检查 Kubernetes 集群中由 kubeadm 管理的所有证书的有效期
发现报错
从提供的错误信息来看,存在几个问题:
-
Error reading configuration from the Cluster. Falling back to default configuration 这个警告通常表示 kubeadm 在尝试从集群中读取配置时遇到了问题,因此回退到默认配置。这可能是因为集群尚未完全初始化或配置有误。
-
kubeadm cannot validate component configs for API groups 这个警告指出 kubeadm 无法验证某些 API 组的组件配置。这通常是由于集群版本或 kubeadm 版本与期望的 API 组版本不匹配所致。确保你的 kubeadm 和 Kubernetes 集群版本兼容。
-
Error checking external CA condition for ca certificate authority 这个错误表明 kubeadm 无法加载 API 服务器的证书文件(
/etc/kubernetes/pki/apiserver.crt
),因为该文件不存在。这通常是因为 Kubernetes 集群的证书尚未生成或证书目录路径配置错误。 -
kubectl -n kube-system get cm kubeadm-config -oyaml 错误 这个错误表示
kubectl
无法连接到 Kubernetes API 服务器,因为你没有通过身份验证。这可能是由于 kubeconfig 文件配置错误、集群未运行或网络问题导致的。
解决办法:
1.(主节点执行)将主节点(master节点)中的【/etc/kubernetes/admin.conf】文件拷贝到从节 点相同目录下:
bash
scp /etc/kubernetes/admin.conf 192.168.198.160:/etc/kubernetes/
2.(从节点都执行)配置环境变量
bash
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
3.(从节点都执行)立即生效
bash
source ~/.bash_profile
4、查看效果