cyl531207502 2024-04-09 17:28 采纳率: 71.4%
浏览 39
已结题

k8s部署后node节点不能访问问题

按照https://www.bilibili.com/video/BV1GT4y1A756/?p=21&spm_id_from=pageDriver&vd_source=e4ef1567861ef4debadeb054ff6bf19d%E8%BF%99%E4%B8%AA%E8%A7%86%E9%A2%91%E9%87%8C%E7%9A%84%E6%93%8D%E4%BD%9C%E8%BF%9B%E8%A1%8C%E5%AE%89%E8%A3%85%E7%9A%84%EF%BC%8C%E6%8B%89%E4%BA%86%E4%B8%80%E4%B8%AAnginx%E9%95%9C%E5%83%8F%EF%BC%8C%E4%BD%86%E6%98%AF%E9%80%9A%E8%BF%87node ip+端口号的方式访问,始终只有一个node节点可以访问,另一个节点不能访问,删除nginx服务重新拉取以后,有可能另外一个可以,但是之前可以的又不行了,感觉配置这些都是对的,防火墙也是关了的,但是为什么只能有一个节点才能访问呢,确实找不到问题了,有朋友之前遇到过吗,麻烦说下怎么解决的,谢谢了

[root@k8s-master ~]# kubectl get pods -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP           NODE        NOMINATED NODE   READINESS GATES
nginx-6799fc88d8-q86cq   1/1     Running   1          59m   10.244.2.3   k8s-node2   <none>           <none>
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   82m   v1.20.9
k8s-node1    Ready    <none>                 80m   v1.20.9
k8s-node2    Ready    <none>                 80m   v1.20.9
[root@k8s-master ~]# kubectl get svc 
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        82m
nginx        NodePort    10.107.254.166   <none>        80:30338/TCP   60m
[root@k8s-master ~]# kubectl -n kube-system get pods -o wide
NAME                                 READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
coredns-7f89b7bc75-d62fb             1/1     Running   3          82m   10.244.1.9    k8s-node1    <none>           <none>
coredns-7f89b7bc75-nmnpp             1/1     Running   3          82m   10.244.1.8    k8s-node1    <none>           <none>
etcd-k8s-master                      1/1     Running   1          82m   10.10.2.206   k8s-master   <none>           <none>
kube-apiserver-k8s-master            1/1     Running   1          82m   10.10.2.206   k8s-master   <none>           <none>
kube-controller-manager-k8s-master   1/1     Running   1          82m   10.10.2.206   k8s-master   <none>           <none>
kube-proxy-7ss54                     1/1     Running   1          82m   10.10.2.206   k8s-master   <none>           <none>
kube-proxy-m42kp                     1/1     Running   1          81m   10.10.2.208   k8s-node2    <none>           <none>
kube-proxy-tfrvj                     1/1     Running   3          81m   10.10.2.207   k8s-node1    <none>           <none>
kube-scheduler-k8s-master            1/1     Running   1          82m   10.10.2.206   k8s-master   <none>           <none>

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-04-16 09:25
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    根据提供的信息,nginx服务已经成功部署在kubernetes集群中,但是只有一个node节点可以访问,另一个节点不能访问。解决这个问题,可以尝试以下步骤:

    1.检查所有node节点的网络状态是否正常,尤其是节点之间的网络是否可以正常通信。

    2.检查node节点上是否安装了iptables软件,若安装了iptables软件,则需要检查iptables的配置是否正确。可以使用以下命令查看iptables规则:

    iptables -t filter -nvL
    

    3.检查是否在防火墙中开放了Kubernetes需要的端口。Kubernetes所需的端口可以参考以下链接:

    https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#check-required-ports
    

    4.检查nginx服务是否正确配置了端口。可以使用以下命令查看服务的端口:

    kubectl get svc nginx
    

    5.尝试在另一个不可访问的节点上运行以下命令,检查是否可以ping通nginx服务所在的节点:

    ping <nginx服务所在的节点IP>
    

    6.检查nginx服务所在的节点是否已经正确绑定了服务端口。可以使用以下命令查看服务的绑定端口:

    netstat -anpt | grep LISTEN
    

    7.如果以上所有步骤都正常,可以尝试重启Kubernetes集群和nginx服务,重新拉取镜像。并检查是否可以正常访问nginx服务。

    综上所述,如果只有一个节点可以访问nginx服务,可以从以下几方面进行排查和修复,包括检查网络状态,检查iptables配置,检查防火墙配置,检查nginx服务配置等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 4月9日