刚学 k8s, 准备将之前走 idocker 上部署的服务迁移到 k3s 上, 发现 node 无法连接 master, 找了好几天也不是知道原因, 特来求助
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
sh -s - server \
--docker \
--kube-apiserver-arg advertise-address=$master_ip \
--node-external-ip $master_ip \
--tls-san=$master_ip
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_TOKEN=$master_k3s_token \
K3S_URL=https://$master_ip:6443 \
sh -s - agent \
--docker \
--node-external-ip $node_ip
我在 master 部署了 harbor 但是在 node 上无法访问 提示连接超时
但是 ping 是可以成功的
2台服务器是通过公网ip来互相访问
他俩之间的任意通信协议和端口都开放了
目前的问题是 worker
机器上通过 bash
执行 curl $master_ip
无法访问,最终超时, 但是ping是可以ping通的, 所以很疑惑
master 或者 其他机器 通过 bash
执行 curl $master_ip
返回的是 默认的404
1
wcyl OP 他俩之间的通信问题, 大佬们不用考虑, 我是让他们互相全开放的
这也是实在找不到原因才这样干的 |
2
zzl22100048 2022-06-20 18:04:25 +08:00
这是走公网创建的集群?你说的无法访问是 worker 机器上不能访问,还是 worker 的 pod 内部不能访问 harbor
|
3
wcyl OP @zzl22100048 #2 对的
是 worker 机器无法 curl 访问 master 上部署的服务, 哪怕是单纯的 curl master ip 也不行 而在部署 k3s 之前 是返回的默认的 404 的 |
4
wcyl OP @zzl22100048 #2 2 台云服务一台是腾讯云 一台是华为云 所以只能通过公网创建集群
|
5
m4d3bug 2022-06-20 18:13:38 +08:00 via Android 1
跨公网的得去改 k3s 的 systemd 给它写个变量吧,可以去看基基杨的博客,他也是玩的跨云 k3s ,不过就多了个 WireGuard
|
6
wcyl OP |
7
m4d3bug 2022-06-20 19:19:21 +08:00 via Android
@wcyl 是他,好像是 fuckcloudnative.io
|
8
m4d3bug 2022-06-20 19:24:26 +08:00 via Android
@wcyl 主要是很多 vps 没有把公网 ip 绑到网卡吧,这对 k8s 本身设计的工作场景有区别,WireGuard 弥补了这一区别,倒不是说非得加密
|
9
wcyl OP @zzl22100048 @m4d3bug
node 之间通信是通过 flannel, 和 wg 关系不大 [内网不互通的解决办法]( https://icloudnative.io/posts/deploy-k3s-cross-public-cloud/#6-内网不互通的解决办法), 这里修改了所有 node 的 flannel 的公网 ip 并重启了`所有`node 的 k3s 服务, 就可以了 我之前以为启动 k3s 加了 `node-external-ip`就可以覆写 flannel 的内网 ip (文档上说 flannel 会优先使用 EXTERNAL-IP) 但是不行. tips: 覆写 flannel 的 ip 后光重启 master 的 k3s 服务是不够的, 还要重启 worker 的 k3s-agent 服务, 这里停滞了好久 |
10
wcyl OP 特别感谢 2 位的帮助 最终解决了这个问题
|