Kubernetes,无法访问公开的服务
Kubernetes版本: v1.10.3 Docker版本: 17.03.2-ce 操作系统和内核: Centos 7 复制步骤: 结果: [root@rd07rd]#kubectl描述服务示例服务 名称:示例服务Kubernetes,无法访问公开的服务,kubernetes,Kubernetes,Kubernetes版本: v1.10.3 Docker版本: 17.03.2-ce 操作系统和内核: Centos 7 复制步骤: 结果: [root@rd07rd]#kubectl描述服务示例服务 名称:示例服务 名称空间:默认值 标签:运行=负载平衡器示例 注释: 选择器:运行=负载平衡器示例 类型:节点端口 IP:10.108.214.162 端口:9090/TCP 目标端口:9090/TCP 节点端口:31105/TCP 终点:192.168.1.23:9090192.168.1.2
名称空间:默认值
标签:运行=负载平衡器示例
注释:
选择器:运行=负载平衡器示例
类型:节点端口
IP:10.108.214.162
端口:9090/TCP
目标端口:9090/TCP
节点端口:31105/TCP
终点:192.168.1.23:9090192.168.1.24:9090
会话关联:无
外部流量策略:群集
事件:
期望值: 希望能够卷曲kubernetes服务中定义的集群ip 我不确定哪一个是所谓的“公共节点ip”,所以我尝试了所有相关的ip地址,只是当使用主ip作为“公共节点ip”时,它显示“没有到主机的路由” 我使用“netstat”检查端点是否被监听 我尝试“”刷新我的iptables,但它根本不起作用 我尝试了“”“查找主机名。默认设置”不起作用 这些服务似乎工作得很好,但仍然无法访问这些服务 我用的是“印花布”,法兰绒也试过 我尝试了太多的应用服务教程,它们都无法访问
我是kubernetes的新手,如果有人能帮助我,请告诉我。如果你在任何公共云上,你不应该通过
ip a
命令获得公共ip地址。但即使端口将暴露于0.0.0.0:31105
以下是您可以为配置验证的示例文件:
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: app-name
name: bss
namespace: default
spec:
externalIPs:
- 172.16.2.2
- 172.16.2.3
- 172.16.2.4
externalTrafficPolicy: Cluster
ports:
- port: 9090
protocol: TCP
targetPort: 9090
selector:
k8s-app: bss
sessionAffinity: ClientIP
type: LoadBalancer
status:
loadBalancer: {}
只需将您的
替换为externalIPs:
,并使用节点端口卷曲您的公共ip即可
如果您正在使用任何云部署应用程序,还需要验证云安全组/防火墙的配置以打开端口
希望这能有所帮助
谢谢大家! 我的k8s集群是一个主节点和一个节点。
服务盒正在节点上运行。
所以我用了,它显示“你好,库伯内特斯!”。
但仍然不起作用,这是正确的吗?
我检查了端点listen,31105在master上被监听。是否尝试卷曲负载平衡器IP以连接到节点?是的,在步骤“卷曲http://:”时被卡住,您的负载平衡器在9090中公开,负载平衡器IP为10.108.214.162。你应该把10.108.214.162:9090卷起来,上面说没有到主机的路线。[root@rd07rd]#curl 10.108.214.162:9090 curl:(7)连接到10.108.214.162:9090失败;没有到主机的路线。谢谢回答。我想知道如果没有iptables kubernetes就不能工作。因为我停止了防火墙服务。