0%

Pod和Deployment有什么区别

问题描述

我一直在创建类型为deploy的pod,但我看到一些文档使用的type是pod,更具体地说是多容器pod的文档

1
2
3
4
5
6
7
8
9
10
11
12
apiVersion: v1
kind: Pod
metadata:
name: ""
labels:
name: ""
namespace: ""
annotations: []
generateName: ""
spec:
? "// See 'The spec schema' for details."
: ~

但是要创建pod,我可以使用deployment类型:

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ""
spec:
replicas: 3
template:
metadata:
labels:
app: ""
spec:
containers:
etc

我注意到pod文档说:

create命令可用于直接创建pod,也可以通过Deployment创建pod或pods。强烈建议您使用deployment来创建pod。它会监视失败的pod,并根据需要启动新的pod以维持指定的数量。如果您不希望deployment监视您的pod(例如,您的pod正在编写非持久性数据,或者您的pod的生命非常短暂),则可以直接创建一个pod。

注意:我们建议使用“deployment”来创建pods。

但是这引出了一个问题:kind类型为pod有什么好处?你能以某种方式参考deployment中的pod吗?我没有看到办法。看起来使用pod获得的是一些额外的元数据,但没有任何deployment选项,如副本或重启策略。没有持久数据的pod有什么用,可以在重启后保存下来?我想我也可以创建一个deployment的多容器pod。

高票回答

Pod和Deployment都是Kubernetes API中的完整对象。Deployment通过ReplicaSet管理创建Pod。它归结为Deployment将使用模板中的规范创建Pod。您不太可能需要直接为生产用例创建Pod。

原文链接

What is the difference between a pod and a deployment?