【发布时间】:2021-02-14 14:29:35
【问题描述】:
我有两个 Kubernetes 部署:composite-app(1 个 pod)和product-app(2 个 pod),它们都在 8080 端口进行监听。第一个有时需要调用第二个。
但是,第一个部署找不到第二个。当它尝试使用product.app 主机调用它时失败:
异常:“http://product-app:8080/product/123”的 GET 请求出现 I/O 错误:product-app; 嵌套异常是 UnknownHostException
我是否使用了正确的主机?到目前为止,我已经尝试过(无济于事):
productproduct-app.default.pod.cluster.localproduct-app
这是我的 YAML:
apiVersion: v1
kind: Service
metadata:
name: composite-service
spec:
type: NodePort
selector:
app: composite-app
ports:
- targetPort: 8080
port: 8080
nodePort: 30091
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: composite-deploy
spec:
replicas: 1
selector:
matchLabels:
app: composite-app
template:
metadata:
labels:
app: composite-app
spec:
containers:
- name: composite-container
image: 192.168.49.2:2376/composite-ms:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: product-deploy
spec:
replicas: 2
selector:
matchLabels:
app: product-app
template:
metadata:
labels:
app: product-app
spec:
containers:
- name: product-container
image: 192.168.49.2:2376/product-ms:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
【问题讨论】:
-
在清单中我没有看到 product-app 的服务。如果复合应用程序 pod 需要访问产品应用程序容器,那么您首先需要为产品应用程序创建一个服务(使用选择器“应用程序:产品应用程序”和端口 8080)。完成此操作后,
http://product-app将解析为集群内的产品应用程序 pod。
标签: kubernetes deployment microservices