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