我是通过yaml脚本创建容器的,初版yaml脚本应该都有能影响容器创建的报错,直接查报错信息在网上查都是可以找到的,我想说的是一些容器已经创建成功了,容器状态正常,但是网络不通的问题。
在我部署项目时导致网络不通的有两方面
一.service
1.我遇到的第一个关于service的问题其实原因是在沟通上
我的pod 之间互相访问是通过服务名+端口 注意一下这个端口是service 的端口,开发想的是service 端口和容器端口是一样的,我又新启了一个端口,so… ,这里要说一下修改yaml 脚本service端口后,要把service删除重启
2.第二个问题是在service 的 selector 字段下 有一个type的字段
出现的问题是,通过容器的IP+端口可以访问,但是通过serviceIP + 端口访问被拒绝,值得一说的是,有一个容器访问是正常的,我对比和其他容器的区别的时候发现它和其他容器相比,它的service没有type: Cluster IP,我注释掉了service 配置里 selctor type 字段,问题恢复,
这里出现问题的原因我不清楚是不是service type要一致,还是就是不需要type这个地段,或者说我把type格式写错了,有空的朋友可以验证一下
查看同一命名空间的service 的命令 kubectl get service -n namespace -o wide
二.yaml
这个纯靠排查
我出现问题的现象是通过容器的IP+端口可以访问,但是通过serviceIP + 端口访问被拒绝,嗯现象和上面是一样的,
1.先查一遍yaml 脚本,对yaml玩的如果不是特别透的话values值是一样的key也全写成一样的吧,这是我遇到的第一个坑
2.通过查看容器信息辅助排查,
kubectl -n namesbace describe service servicename
kubectl -n namesbace describe pod servicename

补充一个网络查询命令:在node(centos7)节点上,iptables-save |grep service信息IP或端口等 ,可以看当前网络状态,如果是新部署的项目问题基本还是在yaml 上,去排查yaml 脚本吧

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐