我有两个口袋,每个有一个容器。容器名称是:
mc1容器拥有一个asp.net核心剃须刀页面应用程序,而mc2托管一个web应用程序。现在,mc1必须与mc2通信,也就是说,剃刀页面应用程序必须调用web应用程序。
我试着用下面的图片来解释:

我为这两个吊舱创建了2个部署:
name: dep1
labels:
app: mc-app1
spec:
replicas: 1
selector:
matchLabels:
app: mc-app1
template:
metadata:
labels:
app: mc-app1
spec:
containers:
- name: mc1
image: multiapp
imagePullPolicy: Never
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dep2
labels:
app: mc-app2
spec:
replicas: 1
selector:
matchLabels:
app: mc-app2
template:
metadata:
labels:
app: mc-app2
spec:
containers:
- name: mc2
image: multiapi
imagePullPolicy: Never
ports:
- containerPort: 80我还为包含mc2容器(即web )的POD创建了一个服务。
apiVersion: v1
kind: Service
metadata:
name: multi-container-service-2
spec:
type: NodePort
selector:
app: mc-app2
ports:
- port: 8080
targetPort: 80部署和服务成功地应用于k8s集群。
接下来,我输入容器"mc1“并试图压缩名为mc1的服务,但这是行不通的。
我正在犯错误:
curl:(7)未能连接到多容器服务-2端口80:连接被拒绝
在下面的图像中,我使用命令输入容器mc1的外壳:
kubectl exec -it dep1-5c78b8c889-tjzzr -c mc1 -- /bin/bash

在下一张图片中,我做的是产生错误的卷曲:

请注意,我已经使用以下两个命令安装了curl:
apt-get update
apt-get install curl为什么不能使用服务调用mc2容器中的应用程序?我的操作系统是windows 10。
我正在接受以下两篇教程的帮助:
发布于 2021-03-23 10:34:47
您已经将服务端口设置为8080,但是您正在调用端口80上的服务(这是容器的端口)。
这应该是可行的:
curl http://multi-container-service-2:8080
发布于 2021-03-23 10:07:45
Kubernetes为服务和荚创建DNS记录。您可以使用一致的DNS名称而不是IP地址与服务联系。
为了通过集群中的服务进行Pod通信,您必须使用以下语法:
{service_name}.{namespace}.svc.cluster.local
所以在你的例子中,卷曲会是:
curl multi-container-service-2.default.svc.cluster.localhttps://stackoverflow.com/questions/66760610
复制相似问题