首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kubernetes中配置多个服务/容器?

如何在Kubernetes中配置多个服务/容器?
EN

Stack Overflow用户
提问于 2019-04-18 17:41:12
回答 2查看 4.1K关注 0票数 2

我是道克和库伯内特斯的新手。所使用的技术:

  • Dotnet Core 2.2
  • Asp.NET Core WebAPI 2.2
  • 启用Kubernetes支持的窗口码头(边缘)
  • 代码

我将两个服务托管到两个码头容器中,container1和container2。

下面是我的deploy.yaml

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: webapi-dockerkube
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: webapi-dockerkube
    spec:
      containers:
      - name: webapi-dockerkube
        image: "webapidocker:latest"
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        livenessProbe:
          httpGet:
            path: /api/values
            port: 80
        readinessProbe:
          httpGet:
            path: /api/values
            port: 80
      - name: webapi-dockerkube2
        image: "webapidocker2:latest"
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
        livenessProbe:
          httpGet:
            path: /api/other/values
            port: 80
        readinessProbe:
          httpGet:
            path: /api/other/values
            port: 80

当我运行命令时:

代码语言:javascript
复制
kubectl create -f .\deploy.yaml

我得到了CrashLoopBackOff的地位。

但是,当我只配置了一个容器时,运行正常也是一样。在检查日志时,我得到以下错误:Error from server (BadRequest): a container name must be specified for pod webapi-dockerkube-8658586998-9f8mk, choose one of: [webapi-dockerkube webapi-dockerkube2]

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-18 20:20:59

您正在同一个吊舱中运行两个容器,这两个容器都绑定到端口80。这在同一舱内是不可能的。想象一下像“服务器”这样的吊舱,您就不能将两个进程绑定到同一个端口。

解决方案在您的情况:使用不同的端口在舱内或使用单独的吊舱。从您的部署来看,似乎没有像文件系统这样的共享资源,因此可以很容易地将容器拆分成不同的荚。

请注意,如果您希望两个容器都运行在具有不同端口的同一个吊舱中,那么更改pod定义是不够的。容器中的应用程序也必须绑定到不同的端口。

票数 4
EN

Stack Overflow用户

发布于 2019-04-18 17:54:27

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: two-containers
spec:

  restartPolicy: Never

  volumes:
  - name: shared-data
    emptyDir: {}

  containers:

  - name: nginx-container
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html

  - name: debian-container
    image: debian
    volumeMounts:
    - name: shared-data
      mountPath: /pod-data
    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"] 

在这里,共享多个容器的示例,您可以使用此模板

此外,您还可以检查使用的日志。

库贝克尔原木

检查回崩溃环的原因

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55751220

复制
相关文章

相似问题

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