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

时间:2020-02-17 07:38:51

标签: docker kubernetes

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

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

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

1 个答案:

答案 0 :(得分:2)

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