查看“Nodeport”的源代码
←
Nodeport
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=原因和分析= <pre> (1)找到pod所在节点,从pod所在k8s节点上通过{nodeIp}:{nodePort}访问,如果访问不了,可能是pod或service没有成功部署; (2)从其它node节点通过{nodeIp}:{nodePort}访问,如果不能访问,执行 kubectl describe pod {podName} -n={namespace} 查看pod描述信息,找到pod ip,直接对着pod访问{podIp}:{containerPort},如果无法访问,尝试ping一下{podIp},如果ping不通,说明k8s节点之间docker容器网络不通,需要安装网络组件如flannel之类; (3)从master节点通过{nodeIp}:{nodePort}访问,如果node节点可以访问{nodePort}而master节点无法访问,执行 netstat -nlp | grep {nodePort} 查看{nodePort}端口是否有服务在监听,正常会看到类似: tcp6 0 0 :::30804 :::* LISTEN 3089/kube-proxy 说明nodePort 30804端口正在被kube-proxy服务在3089进程监听,如果没有则可能是没有启动kube-proxy服务,在k8s里面service相关的功能是依赖kube-proxy实现的。 master节点无须启动kubelet和kube-proxy服务,如果想从master节点访问service,可以在master节点上启动kube-proxy服务,如果想让pod调度到master节点,可以启动kubelet服务 或者master node also master 也当作node 这里的master hostname 为 ubuntu18OB evan@ubuntu18:~$ kubectl taint node ubuntu18 node-role.kubernetes.io/master- node/ubuntu18 untainted #master only kubectl taint node ubuntu18 node-role.kubernetes.io/master="":NoSchedule </pre> =现象= <pre> evan@k8s-master:~$ kubectl apply -f httpd-svc.yml service/httpd-svc created evan@k8s-master:~$ kubectl get service httpd-svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE httpd-svc NodePort 10.99.34.189 <none> 8080:31101/TCP 14s evan@k8s-master:~$ sudo netstat -nlpt | grep 31101 #用上master ip访问不了 不过我的master不是node evan@k8s-master:~$ curl 192.168.88.58:31101 curl: (7) Failed to connect to 192.168.88.58 port 31101: Connection refused evan@k8s-master:~$ curl 192.168.88.59:31101 <html><body><h1>It works!</h1></body></html>evan@k8s-master:~$ evan@k8s-master:~$ curl 192.168.88.60:31101 <html><body><h1>It works!</h1></body></html>evan@k8s-master:~$ evan@k8s-master:~$ sudo ps -ef | grep kube-prox evan 29440 14359 0 11:31 pts/0 00:00:00 grep --color=auto kube-prox evan@k8s-master:~$ kubectl get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-service NodePort 10.111.31.36 <none> 80:30046/TCP 3d4h evan@k8s-master:~$ kubectl delete deployments/nginx services/example-service service "example-service" deleted </pre> =see also= [https://blog.csdn.net/weixin_38380858/article/details/88830853 kubernetes踩坑:nodePort拒绝访问的问题] [[category:k8s]]
返回至
Nodeport
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息