如何在 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
我想使用内部 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