首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用服务与另一个Pod通信的Kubernetes Pod

无法使用服务与另一个Pod通信的Kubernetes Pod
EN

Stack Overflow用户
提问于 2021-03-23 09:38:30
回答 2查看 1.2K关注 0票数 0

我有两个口袋,每个有一个容器。容器名称是:

  1. mc1
  2. mc2

mc1容器拥有一个asp.net核心剃须刀页面应用程序,而mc2托管一个web应用程序。现在,mc1必须与mc2通信,也就是说,剃刀页面应用程序必须调用web应用程序。

我试着用下面的图片来解释:

我为这两个吊舱创建了2个部署:

代码语言:javascript
复制
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创建了一个服务。

代码语言:javascript
复制
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的外壳:

代码语言:javascript
复制
kubectl exec -it dep1-5c78b8c889-tjzzr -c mc1 -- /bin/bash

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

请注意,我已经使用以下两个命令安装了curl:

代码语言:javascript
复制
apt-get update
apt-get install curl

为什么不能使用服务调用mc2容器中的应用程序?我的操作系统是windows 10。

我正在接受以下两篇教程的帮助:

  1. 将部署为Linux容器的ASP.NET核心应用程序构建到AKS/Kubernetes编排器中
  2. 使用共享卷在同一个Pod中的容器之间进行通信
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-23 10:34:47

您已经将服务端口设置为8080,但是您正在调用端口80上的服务(这是容器的端口)。

这应该是可行的:

curl http://multi-container-service-2:8080

票数 3
EN

Stack Overflow用户

发布于 2021-03-23 10:07:45

kubernetes官方文件:所述

Kubernetes为服务和荚创建DNS记录。您可以使用一致的DNS名称而不是IP地址与服务联系。

为了通过集群中的服务进行Pod通信,您必须使用以下语法:

{service_name}.{namespace}.svc.cluster.local

所以在你的例子中,卷曲会是:

代码语言:javascript
复制
curl multi-container-service-2.default.svc.cluster.local
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66760610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档