报错集------部署K8S负载均衡时,在node节点上访问nginx网页出现不了页面

18 篇文章 0 订阅
16 篇文章 0 订阅

报错现象:
在master节点上查看pod网络获得IP后,在node节点上自带的浏览器中访问时出现不了nginx的页面

1、获取pod网络的IP

[root@master1 ~]# kubectl get pods -o wide
NAME                    READY   STATUS    RESTARTS   AGE    IP            NODE             NOMINATED NODE
nginx-dbddb74b8-fskqq   1/1     Running   1          157m   172.17.63.2   192.168.200.40   <none>

2、在对应网段的node节点上可以访问,但是在另外一台Node节点上访问不了。按照之前做的flannel网络,两个节点之间是可以ping通的,所以按照逻辑是可以在另外一台node节点上进行nginx网页的访问的

解决思路:
1、因为之前我的这台不能访问nginx网页的node节点的network网卡丢失了。我使用一下命令将网卡找回:

service NetworkManager stop       #关闭 NetworkManger 服务
chkconfig NetworkManager off      #永久关闭 Manager网卡
service network restart           #重启network网卡

2、我就在思考,是不是因为网卡重新找回了,导致相关联的flannel网桥产生了变化,此时我使用systemctl status flannel命令查看flannel的状态,发现已经done掉了。此时我重新启动了flannel、network与docker,使flannel重新恢复到active状态,但是还是在该节点上不能访问nginx网页。

3、然后我使用ip a命令查看了该出错节点的ip,发现flannel 的ip和之前首次获取时的ip不一致了。所以我得出结论:网卡丢失以后使用命令重新找回网卡后,导致之前分配的flannel的ip产生了变化,重新分配了一个新的ip,但是另外 一个正常的node的ip还是之前分配的ip,没有变化,导致两个节点之间不能进行正常的通信。
4、为了验证我上面的猜想,我在node1节点上使用ping 命令ping node2节点的flnnel的ip,发现确实是已经ping不通了。说明我的结论是正确的。
5、此时解决以上问题就是将K8S中flannel部分再重新在所有节点上重新部署一遍。部署详细命令可以参考之前写的博客《简单易懂的Kubernetes(K8S)单节点二进制部署详细步骤》博客链接
以下为我操作解决错误时使用的命令:

1、开启flannel网络功能(所有节点)

[root@localhost ~]# bash flannel.sh https://192.168.200.10:2379,https://192.168.200.40:2379,https://192.168.200.60:2379

2、重启docker服务(所有节点)

systemctl daemon-reload
systemctl restart docker

3、测试ping通对方docker0网卡 证明flannel起到路由作用

[root@node1 ~]# ping 172.17.86.1
PING 172.17.86.1 (172.17.86.1) 56(84) bytes of data.
64 bytes from 172.17.86.1: icmp_seq=1 ttl=64 time=0.513 ms
64 bytes from 172.17.86.1: icmp_seq=2 ttl=64 time=0.324 ms

4、查看状态

[root@master1 ~]#  kubectl get pods
NAME                    READY   STATUS              RESTARTS   AGE
nginx-dbddb74b8-fskqq   0/1     ContainerCreating   0          21s

[root@master2 cfg]# kubectl get pods
NAME                    READY   STATUS    RESTARTS   AGE
nginx-dbddb74b8-fskqq   1/1     Running   0          56s

5、查看pod网络

[root@master1 ~]# kubectl get pods -o wide
NAME                    READY   STATUS    RESTARTS   AGE    IP            NODE             NOMINATED NODE
nginx-dbddb74b8-fskqq   1/1     Running   1          157m   172.17.63.2   192.168.200.40   <none>

6、在对应网段的node节点上操作可以直接访问

[root@node1 ~]# curl 172.17.63.2
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在将xxl-job部署Kubernetesk8s,有一些背景和目标需要注意。当你的Java服务部署K8S后,xxl-job的任务调度器需要对注册上来的执行器进行健康检测,而执行器的注册地址是Pod的IP地址。因此,任务调度器需要能够访问执行器的网络,这意味着xxl-job的任务调度器和执行器必须在同一个网络下并且能够相互通信。 为了实现这个目标,你可以按照之前的devops系列文章中的详细部署步骤进行操作,并根据需要修改xxl-job的源码、编写Dockerfile、在Jenkins创建Job、编写argocd-helm-yaml、在argocd创建Application,并创建xxl-job的数据库并执行相应的脚本。 在具体部署过程中,你需要注意一些细节。例如,你可以部署多个xxl-job的Pod节点以支持群模式,并使用Service地址对外提供服务,可以选择NodePort或LoadBalancer方式。此外,你还可以替代官方推荐的群模式,不再需要使用Nginx等组件来代理多个xxl-job任务调度器。最后,确保在K8S内部的Java服务能够正常地使用处于同一网络下的xxl-job来执行任务调度。 另外,部署过程中还可以执行一些其他操作,比如部署xxl-job-read-log服务,并在配置文件中设置xxl.job.read.log.path参数以指定执行日志的统一路径。同,配置流量转发将/xxl-job-admin/joblog/logDetailCat请求转发到xxl-job-read-log服务,以实现随查看执行日志的功能。 总之,在将xxl-job部署k8s,需要确保任务调度器和执行器在同一网络下,并能够相互通信。你可以按照上述步骤进行部署,并根据需要进行相应的配置和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [k8s部署xxl-job分布式任务调度服务](https://blog.csdn.net/zhuganlai168/article/details/132054392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [解决k8s中xxl-job执行器pod重建后无法读取到执行日志的问题](https://download.csdn.net/download/iam098/88250428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值