【问题标题】:How to use an api that is mapped to a service in Kubernetes如何使用映射到 Kubernetes 中服务的 api
【发布时间】:2019-04-18 01:48:12
【问题描述】:

我想使用内部 Kubernetes dns 名称访问我的后端 pod。我不想使用http://somepodip:8080/get,而是想使用http://backend:8080/get 来使用我的后端。

我目前正在运行我的后端 pod,并将它们连接到服务。

kind: Service
apiVersion: v1
metadata:
  name: backend
spec:
  selector:
    app: myapp-backend
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8080

这确实将我的 pod 分配给后端服务。但是当我尝试使用带有 http://backend/get 的前端 pod 时,它找不到资源。

我是否错误地配置了服务?

【问题讨论】:

  • 您的服务似乎没问题,问题可能是因为您的前端不是服务器呈现的,这意味着您的浏览器正在尝试查找名称backend,在这种情况下您不能依赖在 kubernetes 服务名称上,因为您的浏览器无法将其识别为有效的主机名。
  • 前端和后端 Pod 是否在同一个命名空间中? http://backend 应该可以工作
  • 是的,它们在同一个命名空间中
  • 不清楚您的问题。您的意思是使用入口并且无法访问后端服务吗?你用过什么前端?提供更多详细信息,您已完成的步骤。
  • 我无法使用服务访问我的后端,我现在按照建议使用 ingress

标签: kubernetes connection azure-aks kubernetes-service


【解决方案1】:

您的服务似乎没问题,问题可能是因为您的前端不是服务器呈现的,这意味着您的浏览器正在尝试查找名称backend,在这种情况下您不能依赖 kubernetes 服务名称作为您的浏览器无法将其识别为有效的主机名。

如果你想通过外部访问而不是ip,你想使用名字,检查如何设置一个入口入口https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 2018-03-04
    • 2021-10-27
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多