首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到k8s服务的外部ip

无法连接到k8s服务的外部ip
EN

Stack Overflow用户
提问于 2021-05-05 19:15:30
回答 2查看 63关注 0票数 0

我有以下服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: hedgehog
  labels:
    run: hedgehog
spec:
  ports:
  - port: 3000
    protocol: TCP
    name: restful
  - port: 8982
    protocol: TCP
    name: websocket
  selector:
    run: hedgehog
  externalIPs:
    - 1.2.4.120

其中我指定了一个externalIP。在运行kubectl get services时,我也在EXTERNAL-IP下看到了这个IP。然而,当我执行curl http://1.2.4.120:3000时,我得到一个超时。然而,这个应用程序应该会给我一个响应,因为部署中运行在容器中的jar在本地运行时会响应localhost:3000请求。

EN

回答 2

Stack Overflow用户

发布于 2021-05-05 19:40:48

如果您看到的服务类型可能是cluster IP,请尝试将类型更改为LoadBalancer

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: http-service
spec:
  clusterIP: 172.30.163.110
  externalIPs:
  - 192.168.132.253
  externalTrafficPolicy: Cluster
  ports:
  - name: highport
    nodePort: 31903
    port: 30102
    protocol: TCP
    targetPort: 30102
  selector:
    app: web
  sessionAffinity: None
  type: LoadBalancer

就像这样,type: LoadBalancer

票数 0
EN

Stack Overflow用户

发布于 2021-05-06 15:30:39

首先,您必须了解,您不能在ExternalIP字段中放置任何随机地址。这些地址不是由Kubernetes管理的,而是集群管理员或您的责任。使用externalIPs指定的外部IP地址与云提供商分配给LoadBalancer类型服务的外部IP地址不同。

checked the address,你在问题中提到,它看起来不是属于你的。这就是为什么我怀疑你在那里随机放了一个。

这个关于ExternalIParticle中也出现了相同的地址。正如您在这里看到的,本例中的地址是运行Kubernetes的节点的IP地址。这在您的情况下是一个潜在的问题。

另一种方法是验证您的应用程序是否在localhost0.0.0.0上侦听。如果它真的是本地主机,那么这可能是您的另一个潜在问题。您可以更改服务器进程侦听的位置。您可以通过监听0.0.0.0来实现这一点,这意味着“监听所有接口”。

最后,请验证您的服务选择器/端口是否正确,以及是否至少有一个endpoint支持您的服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67400212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档