我将通过kubernetes在本地 docker镜像中部署两个应用程序(没有docker hub / artifactory)。我希望他们通过名称(没有ip)看到对方,因此我应该将它们部署在同一POD中,并将第一个的名称作为系统环境变量加载到第二个容器中。
它们都应该从外部可见,因此我需要部署NodePort,并且可以选择端口。
我知道如何通过kubectl cli命令达到此目标,但我希望通过YAML配置文件获得结果,因此可以使用kubectl apply -f deploy.yml
命令进行应用
最佳答案
从技术上讲,您可以在同一个POD中部署多个应用容器,但应避免这种情况,因为
想要独立缩放它们的
就通过名称(无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/