我们可以在 Kubernetes 的一个 Pod 中拥有相同类型的多个容器吗?
Can we have same kind of multiple containers in a Pod in Kubernetes?
例如,我可以使用以下 yaml 来生成包含多个容器的 pod:
apiVersion: v1
kind: Pod
metadata:
name: lampapp
labels:
app: app
spec:
containers:
- name: lampdb
image: mysql_test
- name: app
image: php-app-db-url-env
env:
- name: DB_URL
value: 127.0.0.1:3306
- name: app2
image: php-app-db-url-env
env:
- name: DB_URL
value: 127.0.0.1:3306
嗯,这正是 pod 的含义:多个容器共享一些命名空间和卷。
是的,您可以添加多个具有相同图像的容器。
容器对象必须包含:
- 名称: 容器名称。它必须是 DNS_LABEL 并且在广告连播中是
unique
。无法更新。
- 图片: Docker 图片名称。
您必须使容器名称唯一
您可以执行以下操作:
- name: app
image: php-app-db-url-env ---
- name: app2 |> same image
image: php-app-db-url-env ---
但不是这个:
- name: app
image: php-app-db-url-env
- name: app
image: <any image>
容器规范还应包括 Pod 中的唯一端口号
可以有相同类型的容器,但它们的端口会不同。
例如,我可以使用以下 yaml 来生成包含多个容器的 pod:
apiVersion: v1
kind: Pod
metadata:
name: lampapp
labels:
app: app
spec:
containers:
- name: lampdb
image: mysql_test
- name: app
image: php-app-db-url-env
env:
- name: DB_URL
value: 127.0.0.1:3306
- name: app2
image: php-app-db-url-env
env:
- name: DB_URL
value: 127.0.0.1:3306
嗯,这正是 pod 的含义:多个容器共享一些命名空间和卷。
是的,您可以添加多个具有相同图像的容器。
容器对象必须包含:
- 名称: 容器名称。它必须是 DNS_LABEL 并且在广告连播中是
unique
。无法更新。 - 图片: Docker 图片名称。
您必须使容器名称唯一
您可以执行以下操作:
- name: app
image: php-app-db-url-env ---
- name: app2 |> same image
image: php-app-db-url-env ---
但不是这个:
- name: app
image: php-app-db-url-env
- name: app
image: <any image>
容器规范还应包括 Pod 中的唯一端口号
可以有相同类型的容器,但它们的端口会不同。