Kubernetes,无法访问暴露的服务

问题描述 投票:0回答:4

Kubernetes 版本: v1.10.3

Docker 版本: 17.03.2-ce

操作系统和内核: Centos 7

重现步骤: https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/

结果:

[root@rd07 rd]# kubectl 描述服务示例-服务

名称:示例服务
命名空间:默认
标签:run=负载均衡器示例
注释:
选择器:run=load-balancer-example
类型:节点端口
IP: 10.108.214.162
端口:9090/TCP
目标端口:9090/TCP
节点端口:31105/TCP
端点:192.168.1.23:9090,192.168.1.24:9090
会话亲和力:无
外部流量策略:集群
活动:

预计:

期望能够curl kubernetes服务中定义的集群ip

我不太确定哪个是所谓的“公共节点IP”,所以我尝试了每个相关的IP地址,只有当使用主IP作为“公共节点IP”时,它显示“没有到主机的路由” ”.

我使用“netstat”来检查端点是否被监听。

我尝试“https://github.com/rancher/rancher/issues/6139”来刷新我的iptables,但它根本不起作用。

我尝试了“https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/”,“nslookup hostnames.default”不起作用。

服务看起来工作得很好,但服务仍然无法访问。

我正在使用“印花布”,也尝试过“法兰绒”。

我尝试了很多应用服务的教程,都无法访问。

我是 kubernetes 新手,请帮助我。

kubernetes
4个回答
1
投票

如果您在任何公共云上,则不应通过

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: {}

只需将您的

<private-ip>
替换为
externalIPs:
并使用您的节点端口来卷曲您的公共 IP。

如果您使用任何云来部署应用程序,还要验证云安全组/防火墙的配置以打开端口。

希望这会有所帮助。

谢谢!


0
投票

我的k8s集群是1个master和1个节点。
服务 Pod 正在节点上运行。
所以我使用了http://nodeip:31105,它显示“Hello Kubernetes!”。
但是 http://masterip:31105 仍然无法正常工作,这应该是正确的吗?
我检查了端点监听,31105在master上监听。


0
投票

使用此命令:

kubectl get service

如果您的服务“TYPE”是“NodePort”并且“EXTERNAL-IP”列是“none”,那么您可以从以下 URL 访问或卷曲您的服务:

http://<localmachine_ip>:<port_no>

端口号也可在

kubectl get service
列中命令
PORT(S)
的结果中找到。 例如,如果
PORT(S)
的值为
1000:31918/TCP
,则端口号为
31918

如果服务类型为

ClusterIP
,则首先使用命令
kubectl delete service <servie_name>
删除服务,然后使用以下命令:

kubectl expose deployment <deployment_name> --type=NodePort --port=80

此命令将启动

TYPE
=
NodePort

的服务

注意:您必须公开部署。我假设您了解 K8s 中的部署。


0
投票

使用入口或端口转发。

© www.soinside.com 2019 - 2024. All rights reserved.