Kubeadm安装完Kubernetes(K8S)后,ssh连不上了
Kubernetes(K8S)的安装方式主要有以下三种:
Minikube安装
适用于个人开发者和小团队,通过Docker快速创建单节点集群,适合本地开发测试。
Kubeadm安装
官方推荐的集群部署工具,支持高可用配置,通过kubeadm init和kubeadm join命令简化多节点集群搭建。
二进制安装
手动下载并配置K8S组件(如kube-apiserver、kubelet等),需自行处理依赖和配置文件,适合需要深度定制的场景。
补充说明
Minikube和Kubeadm安装的版本需注意兼容性,例如K8S 1.24后默认使用CRI-O而非Docker,需额外配置。
二进制安装需具备较强系统配置能力,建议仅在生产环境或需要深度定制时使用。
问题:用Kubeadm方式安装完k8s之后,发现ssh连不上了,检查了ssh配置相关,以及sshd状态都没有问题,之后ping了下发现ping不通。之前怀疑过网络插件calico的问题,尝试了彻底删除网络插件calico,又重新部署了calico也不行。重新初始化master节点等等也全都不好使。
解决方案:是因为kube-ipvs0
这个虚拟网路接口自动生成的一个ip中跟VMnet8的IP地址冲突了,导致所有虚机都ping不通了,也就无法ssh连接了。
在 Kubernetes 中,kube-ipvs0
是 kube-proxy 在 IPVS 模式下创建的虚拟网络接口,用于承载 Service 的 ClusterIP 流量转发。其设计目的是通过内核态的 IPVS 模块实现高效负载均衡,避免 iptables 规则过多导致的性能瓶颈。
kube-ipvs0
是 Kubernetes IPVS 模式的核心组件,用于绑定所有 Service 的 ClusterIP。- 多个 IP 出现在该接口上是因为每个 Service 都会分配一个唯一的 ClusterIP,并自动绑定到
kube-ipvs0
。 - 这些 IP 的分配和管理完全由 Kubernetes 自动完成,用户无需手动配置。
- 通过
ipvsadm -Ln
和kubectl get svc
可验证 IP 绑定和转发规则是否正常。
kube-ipvs0
这个虚拟网路接口自动生成的一个ip中跟VMnet8的IP地址冲突了,自动生成了一个192.168.231.1的地址,而现在VMnet8的地址刚好也是用的这个,之后把VMnet8的地址改为静态配置192.168.231.3,问题得以解决。