网站建设的经过的阶段,WordPress文章模板修改,做网站用asp div代码,做推广都有哪些网站一、环境#xff1a;
k8s: v1.23.6
docker: 20.10.14 问题和故障现象#xff1a;devops主机集群主机节点到端口8082不通#xff08;网络策略已经申请#xff0c;并且网络策略已经实施完毕#xff09;#xff0c;而且网络实施人员再次确认#xff0c;网络策…一、环境
k8s: v1.23.6
docker: 20.10.14 问题和故障现象devops主机集群主机节点到端口8082不通网络策略已经申请并且网络策略已经实施完毕而且网络实施人员再次确认网络策略配置没有问题端口却依然不通。
解决简介
通过traceroute定位通过route -n 查看路由表信息查看VIP 子网掩码位数修改宿主机上的keepalived配置文件进入k8s-keepalive容器内部修改keepalive配置文件重启容器k8s-keepalive
二、问题排查
2.1、检查端口不通
检查xxx.xxx.25.226 到目标主机xxx.xxx..60.142 8082 端口不通也不能ping通。 K8s 集群信息如下 通过在目标主机上 tcpdump抓包
tcpdump -i any -nn host xxx.xxx.25.226
也没有抓到源主机 xxx.xxx.25.226的请求数据包 2.2 、网络策略策略实施人员确认
网络策略已经提交工单并且网络人员已经实施完毕再次和网络策略实施人员确认他那边网络策略实施的没有问题。 2.3、通过traceroute 定位分析 感觉有点怪异没有走网关 xxx.xxx.25.1
2.4、 通过rourt -n 查看本地路由表信息 通过路由表分析到目标 xxx.xxx.60.142 8082 匹配上了路由表的第二条路由规则没有经过网关 xxx.xxx.25.1
2.5、 通过ip a 查看 上面红色的IP xxx.xxx.25.226/24是宿主机的地址下面绿色IP xxx.xxx.25.232/16的是k8s apiserver 高可用使用的VIP ,查看感觉这里的子网掩码16有点特别奇怪因为这个地址的存在所以路由表里面就有了上面的第二条路由规则的添加 我们从本机到目标地址 xxx.xxx.60.142 8082 的 数据包就匹配上了这条规则从本机直连而不通过网关 xxx.xxx.25.1了但因为我们本地xxx.xxx.25.226/24所在的网络xxx.xxx.25.0/24 显然和我们要访问的目标主机xxx.xxx.60.142/24 所在的网络xxx.xxx.60.0/24 不是同一网络必须要通过网关xxx.xxx.25.1才行问题就在这里。
三、问题解决
3.1、 找到 xxx.xxx.25.232/16配置的应用
查看VIP xxx.xxx.60.142/16 是keepalived容器在使用这个是apiserver 的高可用配置的VIP通过3个节点上运行的k8s-keepalive容器实现。
查看容器映射到宿主机的配置信息 [rootXX-XXpod2-c6-core-25-226 .kube]# cat /apps/k8s-ha/kconf/keepalived.conf ! Configuration File for keepalived global_defs { router_id LVS_1 } vrrp_script checkhaproxy { script /opt/check.sh interval 1 weight -30 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 232 priority 100 unicast_src_ip xxx.xxx.25.226 unicast_peer { xxx.xxx.25.227 xxx.xxx.25.228 } advert_int 1 authentication { auth_type PASS auth_pass !q12Q!waER43aS } virtual_ipaddress { xxx.xxx.25.232/16 } track_script { checkhaproxy } }
通过查看发现上面的VIP的子网掩码写成了16位了。
先备份3个master节点上的配置文件把配置文件里面的VIP子网掩码修改为24位。3个节点依次重启k8s-keepaive容器后通过ip a |grep xxx.xxx 查看VIP子网掩码依然为为16位.
3.2、 进一步进入到k8s-keepalive容器里面排查定位 在容器里面执行 ps -ef 命令 看下查看到 里面运行的keepalived进程用到的配置文件为
/usr/local/etc/keepalived/keepalived.conf
查看容器里面的配置文件内容查看配置文件里面VIP子网掩码修改依然为16位 bash-5.0# vi /usr/local/etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id LVS_1 } vrrp_script checkhaproxy { script /opt/check.sh interval 1 weight -30 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 232 priority 100 unicast_src_ip xxx.xxx.25.226 unicast_peer { xxx.xxx.25.227 xxx.xxx.25.228 } advert_int 1 authentication { auth_type PASS auth_pass !q12Q!waER43aS } virtual_ipaddress { xxx.xxx.25.232/16 } track_script { checkhaproxy } }
看来修改映射到宿主机的配置文件后没有用还需要修改容器里面的配置文件。 3.3 修改容器里面的配置文件后重启容器
修改完容器里面的配置文件后重启容器再次在宿主机上通过 ip a |grep xxx.xxx
查看 VIP子网掩码为24位了。 路由表也恢复正常了。
四总结
4.1 遇到类似问题要学会使用常用命令工具分析一步一步排查。
4.2 Keepalived容器在使用的时候修改宿主机配置文件后还要修改容器里面的配置文件。