我有两个服务auth和前端。如何在两者之间建立连接?
auth.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: auth
spec:
replicas: 1
selector:
matchLabels:
app: auth
template:
metadata:
labels:
app: auth
tier: backend
track: dev
spec:
containers:
- name: auth
image: auth:1
ports:
- name: auth
containerPort: 8000
----------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: auth
spec:
selector:
app: auth
tier: backend
ports:
- protocol: TCP
port: 3000
targetPort: auth
type: LoadBalancer
上述服务可以正常使用外部IP和端口。
fe.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: fe
spec:
replicas: 1
selector:
matchLabels:
app: fe
template:
metadata:
labels:
app: fe
tier: frontend
track: dev
spec:
containers:
- image: fe:1
name: nginx
ports:
- name: fe
containerPort: 80
------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name: fe
spec:
selector:
app: fe
tier: frontend
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
我可以使用外部IP单独访问这两项服务。
我希望这两种服务相互交互。我尝试在前端使用基于名称的呼叫服务,例如 - http://auth:3000
。
它似乎不起作用。
答案 0 :(得分:0)
服务目标窗格(通过其标签),而不是其他服务。要从另一个服务中获取一个服务,这就是流程:
用户 - > auth(服务) - > auth(pods) - > fe(服务) - > fe(豆荚)。
因此,您在auth中的pod需要将流量转发到其他服务。
请注意,不需要2个Load Balancer类型的服务。通过第一项服务,数据可以从外部世界传输到您的群集。此时,建议使用ClusterIP类型服务。