Kubernetes version: v1.10.3
Docker version: 17.03.2-ce
Operating system and kernel: Centos 7
Steps to Reproduce: https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/
Results:
[root @ rd07 rd] #kubectl描述服务example-service
名称:示例服务
命名空间:默认
标签:run = load-balancer-example
注释:
选择器:run = load-balancer-example
类型:NodePort
IP:10.108.214.162
端口:9090 / TCP
TargetPort:9090 / TCP
NodePort:31105 / TCP
终点:192.168.1.23:9090,192.168.1.24:9090
会话亲和力:无
外部交通政策:集群
事件:
Expected:
期望能够卷曲kubernetes服务中定义的集群ip
我不确定哪个是所谓的“public-node-ip”,所以我尝试了每个相关的ip地址,只有当使用master ip作为“public-node-ip”时才会显示“No route to host” .
我用“netstat”来检查 endpoints 是否被监听 .
我试着用“https://github.com/rancher/rancher/issues/6139”冲洗我的iptables,但根本没用 .
我试过“https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/ ", " nslookup hostnames.default”无效 .
服务似乎工作得很好,但服务仍然无法访问 .
我正在使用“calico”和“法兰绒”也尝试过 .
我尝试了很多应用服务的教程,但都无法访问 .
我是kubernetes的新手,如果有人能帮助我的话 .
2 回答
如果您在任何公共 Cloud 上,则不应在
ip a
命令获取公共IP地址 . 但即使该端口将暴露于0.0.0.0:31105
以下是您可以验证配置的示例文件:
只需在
externalIPs:
处替换<private-ip>
并使用您的节点端口卷曲您的公共IP .如果您使用任何 Cloud 部署应用程序,还要验证 Cloud 安全组/防火墙中的配置以打开端口 .
希望这可能有所帮助 .
谢谢!
我的k8s群集是1个主节点和1个节点 .
服务pod正在节点上运行 .
所以我使用了http://nodeip:31105,它显示了"Hello Kubernetes!" .
但http://masterip:31105仍然无法正常工作,它是否正确?
我检查了 endpoints 监听,31105是高手听的 .