我已经在GKE中部署了一个mongo,Spring,角应用程序。我的FE服务是一个负载均衡器,它需要与BE连接以获取数据,但我在浏览器中得到一个控制台错误: get http://contactbe.default.svc.cluster.local/contacts http://contactbe.default.svc.cluster.local/contacts我的FE需要使用/contacts端点来获取数据。我在我的角度应用程序中使用来自BE服务(contactbe.default.svc.cluster.local)的DNS。我用来创建部署的是我的yml文件:
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
run: mongo
spec:
type: NodePort
ports:
- port: 27017
targetPort: 27017
protocol: TCP
selector:
run: mongo
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mongo
spec:
template:
metadata:
labels:
run: mongo
spec:
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
name: contactbe
labels:
app: contactbe
spec:
type: NodePort
ports:
- port: 8181
targetPort: 8181
protocol: TCP
selector:
app: contactbe
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: contactbe
spec:
template:
metadata:
labels:
app: contactbe
spec:
containers:
- name: contactbe
image: glgelopfalcon/k8s_contactbe:latest
ports:
- containerPort: 8181
---
apiVersion: apps/v1beta1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: angular-deployment
spec:
selector:
matchLabels:
app: angular
replicas: 2 # tells deployment to run 2 pods matching the template
template:
metadata:
labels:
app: angular
spec:
containers:
- name: angular
image: glgelopfalcon/my-angular-app:latest
ports:
- containerPort: 80
---
# https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
kind: Service
apiVersion: v1
metadata:
name: angular-service
spec:
selector:
app: angular
ports:
- port: 80
targetPort: 80
protocol: TCP
type: LoadBalancer 我搜索了很多,但我仍然没有找到如何解决这个问题。如果有人能帮忙,我会很感激的。
发布于 2019-02-25 04:13:07
检查您的负载均衡器是否有打开端口27017作为发送请求发送到端口27017。
否则,可以将服务节点端口更改为80,目标端口将相同。
发布于 2019-02-25 08:09:19
port#在URL中缺失。试着在下面
contactbe.default.svc.cluster.local:8181/contacts发布于 2019-02-28 19:43:03
我找到了解决办法。我改变了后端的服务方式。我使用的不是ClusterIP,而是负载均衡器,它的工作原理与预期一样
https://stackoverflow.com/questions/54858192
复制相似问题