我一直在创建豆荚type:deployment
但我看到一些文档使用type:pod
, 进一步来说多容器 Pod 的文档 http://kubernetes.io/docs/user-guide/pods/multi-container/:
apiVersion: v1
kind: Pod
metadata:
name: ""
labels:
name: ""
namespace: ""
annotations: []
generateName: ""
spec:
? "// See 'The spec schema' for details."
: ~
但要创建 pod,我可以使用部署类型 http://kubernetes.io/docs/user-guide/deployments/:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ""
spec:
replicas: 3
template:
metadata:
labels:
app: ""
spec:
containers:
etc
我注意到 pod 文档说:
create命令可以直接创建pod,也可以
通过 Deployment 创建一个或多个 Pod。强烈推荐
您使用 Deployment 来创建 Pod。它监视失败的情况
pod 并将根据需要启动新的 pod 来维护指定的
数字。如果您不希望 Deployment 监控您的 pod(例如您的
pod 正在写入非持久数据,这些数据在重新启动后将无法保存,或者
你的 pod 的寿命很短),你可以创建一个 pod
直接使用create命令。
注意:我们建议使用 Deployment 来创建 Pod。你应该使用
仅当您不想创建部署时才遵循以下说明。
但这提出了一个问题:kind:pod
有什么好处?您能以某种方式在部署中引用 Pod 吗?我没有看到办法。看起来您通过 Pod 获得的是一些额外的元数据,但没有任何部署选项,例如replica
或重启策略。不保留数据且重启后仍然存在的 pod 有什么好处?我想我也可以创建一个具有部署的多容器 Pod。
Radek的回答非常好,但我想根据我的经验来参与,你几乎永远不会使用object与kind pod,因为这在实践中没有任何意义。
因为你需要一个部署对象 - 或其他 Kubernetes API 对象,例如复制控制器 or 复制集- 需要保留replicas(pod) 活着(这就是使用 kubernetes 的意义)。
您在典型应用程序的实践中将使用以下内容:
部署对象(您将在其中指定您的应用程序容器),它将托管具有其他一些规范的应用程序容器。
服务对象(这就像一个分组对象,并为其提供一个所谓的虚拟IP(集群IP)pods
有特定标签的 - 以及那些pods
基本上是您使用前者部署的应用程序容器部署目的)。
您需要拥有service对象因为pods
部署对象中的 IP 地址可以被终止、放大或缩小,并且您不能依赖它们的 IP 地址,因为它们不会持久。
所以你需要一个像service,这给了那些pods
稳定的IP。
只是想给你一些背景信息pods
,这样您就知道事物如何协同工作。
希望这能为您清除一些事情,不久前我也处于您的处境:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)