如何在 Kubernetes 中使用映射到服务的 api

How to use an api that is mapped to a service in Kubernetes

我想使用内部 Kubernetes dns 名称访问我的后端 pods。而不是使用 http://somepodip:8080/get I want to use http://backend:8080/get 来使用我的后端。

我目前是 运行 我的后端 pods 并已将它们连接到服务。

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

这会将我的 pods 分配给后端服务。但是当我尝试将前端 pod 与 http://backend/get 一起使用时,它找不到资源。

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

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

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