docker - Kubernetes YAML是否在同一个Pod中部署了多个镜像?

标签 docker kubernetes

我将通过kubernetes在本地 docker镜像中部署两个应用程序(没有docker hub / artifactory)。我希望他们通过名称(没有ip)看到对方,因此我应该将它们部署在同一POD中,并将第一个的名称作为系统环境变量加载到第二个容器中。

它们都应该从外部可见,因此我需要部署NodePort,并且可以选择端口。

我知道如何通过kubectl cli命令达到此目标,但我希望通过YAML配置文件获得结果,因此可以使用kubectl apply -f deploy.yml命令进行应用

最佳答案

从技术上讲,您可以在同一个POD中部署多个应用容器,但应避免这种情况,因为

想要独立缩放它们的

  • (APP1的X个副本和APP2的Y个副本)
  • 还保留专用于一种应用程序
  • 的资源分配
  • 和隔离
  • 的更多好处

    就通过名称(无IP)进行通信而言,kubernetes具有services的概念,可以轻松实现这一目标。

    所有这些都可以用YAML格式编写

    您可以看到以下内容:

    https://kubernetes.io/docs/tasks/access-application-cluster/connecting-frontend-backend/

    https://kubernetes.io/docs/tutorials/stateless-application/guestbook/

    但是仍然要这样做........
    然后,同一容器中的容器可以使用localhost相互通信,并且在YML中可以为多个容器定义规范
    apiVersion: v1
    kind: Pod
    metadata:
      name: myapp-pod
      labels:
        app: myapp
    spec:
      containers:
      - name: app1-container
        image: app1
      - name: .... for app 2
        image: app2
    

    关于docker - Kubernetes YAML是否在同一个Pod中部署了多个镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60257822/

    相关文章:

    docker - 如何在 Docker .NET Core Web 应用程序中保存数据?

    kubernetes - 在 Kubernetes 中,将文件中的 secret 公开为环境变量

    docker - 使用 Kubernetes 进行本地开发的最佳实践是什么?

    containers - etcd成员没有leader

    amazon-web-services - GlusterFS/Heketi中的最小卷大小

    node.js - Docker - 从主机访问容器内的文件

    macos - Docker 拉取错误 : no space left on device

    amazon-web-services - 将 EC2 参数存储变量作为环境变量传递给 ECS 任务

    docker - 如何在 kubernete 的 pod yaml 文件中指定主机端口范围而不是主机端口?

    spring-boot - 在 Pod 上运行时获取 Spring Boot Heapdump 和线程转储