文章目录[隐藏]
背景
在这篇 利用 3个树莓派搭建一个k3s 集群,并且在 Mac 上用 k3sup管理 文章中,在树莓派上搭建 k3s 集群,前面很顺利,但是每当添加新的 agent 节点
的时候,会发现新加的成功了,之前加的不见了,只能看到最后添加的节点。
说白了就是节点之间不能通信。
问题排查
然后分别 ssh 到对应的树莓派,查看k3s 安装状态,都是正常的。
然后用curl -sfL https://get.k3s.io | K3S_URL=https://server_ip:6443 K3S_TOKEN=您的Token sh -
手动去连接,还是没有成功。
用journalctl -xe
查看日志,发现如下报错
Apr 03 02:02:24 smp2 k3s[3584]: time="2023-04-03T02:02:24+08:00" level=error msg="CA cert validation failed: Get \"https://127.0.0.1:6444/cacerts\": x509: certificate has expired or is not yet valid: current time 2023-04-03T02:02:24+08:00 is before 2023-04-03T14:50:42Z"
看到这个还以为是 CA 证书问题,但是k3s 的证书是自签名的,刚创建不可能过期啊
一直在证书方面排查问题,在 github 上找了很多 issue,最终也没有解决问题。
差不多 3 多个小时之后,打算放弃了,等待第二天安装一下 ubuntu 再试一下。(其实理论上,都是基于 Linux 的,与系统没关系)
最后看日志的时候,发现日志时间不对,怎么是Apr 03 02:02:24
,这明显和当前 时间不符合。
解决问题
1. 通过树莓派设置
将树莓派的时间同步到当前时间
(1)打开终端,并以管理员身份执行以下命令来编辑 /etc/timezone 文件:
sudo vim /etc/timezone
(2)将时区设置为 “Asia/Shanghai”,:wq
退出保存
(3)也可以用以下命令来更新系统时间:
sudo dpkg-reconfigure tzdata
(4) 选择 “Asia”,然后选择 “Shanghai” 获取北京时间即东八区,按回车键确认。
(5)执行 date 命令来查看当前日期和时间是否正确。
date
到这儿,我以为就可以了,但是等了一会儿还是不行。
备注: 说不定您的可以了哦
2. 通过ntp 服务器 同步时间
如果还不行,可以用ntp 服务器 同步时间
(1)打开终端,并以管理员身份执行以下命令以更新所有软件包:
sudo apt-get update
sudo apt-get upgrade
(2)继续以管理员身份执行以下命令以安装时间同步软件:
sudo apt-get install ntp
(3)执行以下命令以从 NTP 服务器同步时间:
sudo /etc/init.d/ntp stop
sudo ntpd -gq
sudo /etc/init.d/ntp start
这些命令将停止 NTP 服务,将与 NTP 服务器进行时间同步,然后重新启动 NTP 服务。现在,您可以使用 date 命令检查时间是否已成功更新:
date
等了好久,等不及了,退出了
网上查了下说是一分钟左右
还可以通过以下方式:
sudo apt-get install ntpdate
sudo ntpdate ntp.aliyun.com
3. 手动设置时间和日期
如果时间仍然不正确,您可以尝试手动设置时间和日期,例如:
sudo date -s "2023-04-04 12:12:12"
至此时间设置完成。k3s 部署也正常了。
到此还有缺陷,当关机重启之后,树莓派的时间还是会落后,这就需要每次都要设置,很麻烦。
最好还是通过 ntp 方式同步。
如果实在不行,可以写一个脚本在机器启动、定期设置一次时间,这就要求能有一个时间对的服务存在。
最后
这个问题本身不大,微小到太容易让人忽视,导致我多为此花费了几个小时。
发表回复