【发布时间】:2021-02-21 14:06:39
【问题描述】:
我是 Kubernetes 新手,我尝试创建两个可以相互通信的服务。第一个服务是一个简单的静态 Web(HTML、js),类型为 LoadBalancer,第二个服务是 express.js 后端,类型为 ClusterIP。这是我的service.yaml 文件:
apiVersion: v1
kind: Service
metadata:
name: number-generator
spec:
selector:
app: number-generator
ports:
- port: 3000
targetPort: 3000
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: number-web
spec:
selector:
app: number-web
ports:
- port: 80
targetPort: 80
type: LoadBalancer
这是我的deployment.yaml 文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: number-generator
spec:
selector:
matchLabels:
app: number-generator
template:
metadata:
labels:
app: number-generator
spec:
containers:
- name: number-generator
image: cantdocpp/number-generator
ports:
- containerPort: 3000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: number-web
spec:
selector:
matchLabels:
app: number-web
template:
metadata:
labels:
app: number-web
spec:
containers:
- name: number-web
image: cantdocpp/number-web:v5
ports:
- containerPort: 80
所以在localhost:80可以访问的number-web服务内部,应该访问number-generator API来获取一个随机数。我尝试使用http://number-generator/ 和http://number-generator:3000/ 访问它,但它们都返回如下网络错误:
GET http://number-generator/ net::ERR_NAME_NOT_RESOLVED
无论我调用http://number-generator/ 或http://number-generator:3000/,错误应该或多或少相同。那么如何让这两个服务相互通信呢?
【问题讨论】:
-
当您尝试使用
http://number-generator.default.svc.cluster.local:3000而不是http://number-generator:3000时,您的请求是否通过? -
嗨@rkosegi,它仍然无法正常工作
标签: kubernetes kubernetes-pod kubernetes-service