【问题标题】:Kubernetes YAML deploy for multiple images in same pod?Kubernetes YAML 为同一个 pod 中的多个图像部署?
【发布时间】:2020-02-17 16:12:21
【问题描述】:

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

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

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

【问题讨论】:

标签: docker kubernetes


【解决方案1】:

从技术上讲,您可以在同一个 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/

但是如果你想这样做............ 然后同一个 pod 内的容器可以使用 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

【讨论】:

    猜你喜欢
    • 2019-02-13
    • 1970-01-01
    • 2023-03-14
    • 2021-12-02
    • 2019-02-03
    • 2019-12-22
    • 2019-06-28
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多