我正在附上我的应用程序流的图像。这里,网关和其他服务是使用NestJS创建的。对任何API的请求都是通过网关发出的。
网关-pod和API使用协议进行通信.
部署后,网关无法发现任何API pods.
我也为网关和Pods附加YAML映像文件。请告诉我我在YAML文件中做了什么错误。
**APPLICATION DIAGRAM**

网关YAML
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: roushan
name: gateway-deployment
spec:
replicas: 1
selector:
matchLabels:
app: roushan-app
template:
metadata:
labels:
app: roushan-app
spec:
containers:
- name: gateway-container
image: nest-api-gateway:v8
ports:
- containerPort: 1000apiVersion: v1
kind: Service
metadata:
namespace: roushan
name: gateway-svc
spec:
selector:
app: roushan-app
ports:
- name: gateway-svc-container
protocol: TCP
port: 80
targetPort: 1000
type: LoadBalancerPod YAML
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: roushan
name: pod1-deployment
spec:
replicas: 1
selector:
matchLabels:
app: roushan-app
template:
metadata:
labels:
app: roushan-app
spec:
containers:
- name: pod1-container
image: nest-api-pod1:v2
ports:
- containerPort: 4000apiVersion: v1
kind: Service
metadata:
namespace: roushan
name: pod1-srv
spec:
selector:
app: roushan-app
ports:
- name: pod1-svc-container
protocol: TCP
port: 80
targetPort: 4000发布于 2022-01-17 00:03:36
网关应该能够通过其DNS名称访问服务。例如,pod1-srv.svc.cluster.local,如果不起作用,您可能需要查看Kubernetes DNS设置。
我没有使用AKS,他们可能对集群使用不同的域名,而不是svc.cluster.local。
发布于 2022-01-21 10:09:20
YAML点
理想情况下,您应该在整个部署中保留不同的选择器。
在这两种部署中都使用相同的选择器。网关和应用程序部署。
服务将根据选择器和标签将流量转发到部署,这可能会将服务-2请求重定向到POD-1。
网络
您的网关服务(Pods)仅通过service-name连接到内部服务,比如:pod1-srv,如果在相同的名称空间中。
如果网关和应用程序在不同的命名空间中,您必须像http://<servicename>.<namespace>.svc.cluster.local那样相互调用
https://stackoverflow.com/questions/70680067
复制相似问题