首页 > 其他分享 >K8s部署遇到的问题总结

K8s部署遇到的问题总结

时间:2022-12-29 18:00:22浏览次数:30  
标签:总结 kubectl k8s 部署 网卡 pod K8s kube flannel

1、k8s-node1上无法访问k8s-node2的应用

部署模式:

k8s-master 192.168.137.201

k8s-node1 192.168.137.202

k8s-node2 192.168.137.203

问题描述:

创建一个nginx资源对象,只能在nginx资源运行的node上通过CLUSTER-IP访问,在其他node节点上无法访问。

#创建一个nginx资源对象
kubectl create deployment nginx --image=nginx
#将服务暴露出去(创建Service)
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看pod信息
kubectl get pod,sv

 

 在k8s-master服务器上访问(无法访问)

 在k8s-node1服务器上访问(正常访问)

  在k8s-node2服务器上访问(无法访问)

 

解决办法:

经过长时间的百度(各种方案都试过),最后看到这么一篇文档(https://www.haomeiwen.com/subject/gwfchctx.html),解决了这个问题,具体如下。

因为是用VirtualBox虚拟化出了三台Linux主机搭建的 k8s。在组网的过程中,采用了双网卡方案,网卡1使用NAT地址转换用来访问互联网,网卡2使用Host-only来实现虚拟机互相访问。flannel默认使用了网卡1的 ip 地址,而网卡1的NAT地址转换是无法访问其他虚拟机的,从而导致的问题的产生。

flannel使用的默认网卡1导致了这个问题的产生,所以我们需要使用--iface参数手动指定它使用网卡2来进行通信,这就需要修改flannel的配置文件,执行如下命令即可进行修改:

 

# 查看网络插件的pod名称
kubectl get pod -o wide -n kube-flannel

# 根据网络插件的pod名称,查看网络插件的配置文件名称
kubectl get po -n kube-flannel kube-flannel-ds-5dm4d -o yaml

# 编辑网络插件的配置文件
kubectl edit daemonset kube-flannel-ds -n kube-flannel

 

 网卡请根据实际修改(可用ifconfig命令查看网卡)。修改完成之后输入:wq保存退出。

 

# 查看网络插件的pod名称
kubectl get pod -n kube-flannel
# 删除网络插件的pod
kubectl delete pod -n kube-flannel  kube-flannel-ds-cpsn4  kube-flannel-ds-qbhv6  kube-flannel-ds-snj2x

验证问题已解决,k8s-master已经能通过CLUSTER-IP访问访问nginx

 

 

 

标签:总结,kubectl,k8s,部署,网卡,pod,K8s,kube,flannel
From: https://www.cnblogs.com/xiaoxietongxue/p/17012851.html

相关文章