K3s搭建k8s环境网络代理问题

通过k3s搭建k8s环境,在k8s中通过如下命令跑了一个nginx

kubelet run ng --image=nginx:1.22

然后查看日志和进入pod中都报错

感觉像是网络代理问题,这什么情况啊,希望有经验的大佬出来帮忙看下

kubectl logs -f ng

kubectl exec -it ng -- bash

【root@k8s-master network-scripts】# kubectl logs -f ng
Error from server: Get “https://10.0.2.15:10250/containerLogs/default/ng/ng?follow=true”: proxy error from 127.0.0.1:6443 while dialing 10.0.2.15:10250, code 503: 503 Service Unavailable
【root@k8s-master network-scripts】# kubectl exec -it ng – bash
Error from server: error dialing backend: proxy error from 127.0.0.1:6443 while dialing 10.0.2.15:10250, code 503: 503 Service Unavailable

跨主机之间的网络有问题,检查检查主机的防火墙、安全组啥的都有没有放开吧

防火墙没开,我是在visualbox虚拟机里面搞的,网络环境没问题,3个centos虚拟机都是nat+host-only双网卡模式,网络通信没问题,因为这3台主机都是从最开始安装的centos复制的,原先那个系统里面安装了docker,不知道是不是受docker影响了,偶尔成功,部署了n多次,后面agent节点加入master都会在控制台哪儿卡住,看日志也都是无法和master通信,报错就是那个proxy error

十有八九就是 vbox 的问题,因为 vbox 虚拟机的第一个网卡是 nat 的网卡,每个虚拟机的 nat 的网卡的 ip 是一样的,而且相互不能访问呢。当你使用默认的方式注册节点,使用的就是这个 nat 的网卡。

你日志里也写了,是通过 10.0.2.15 去连接的,所以出现问题了 。

就是这个问题,虚拟机是NAT+host-only模式,集群搭建默认用的是nat网卡的ip作为他的INTERNAL-IP

  • 需要在脚本出指定--node-ip=主机间能通信的局域网ip,这点适用于多网卡的主机环境,单网卡无需设置

若不设置,搭建集群环境节点ip默认为10.0网段,并且报错如下

当每个节点都指定了ip,暴露出来的就是指定的ip,这个ip=物理机的ip(host-only网卡ip)

  • master节点配置server --node-ip=

  • 工作节点配置agent --node-ip=

1 个赞

精细!可否帮个忙,写个文章,然后发布到 rancher 公众号上!

这里:在虚拟机CentOS中通过k3s部署k8s集群

1 个赞

多谢