根据Kubernetes文档,Deployment和ReplicaSets之间存在1:1对应。同样,根据副本属性,副本集可以管理n个相同性质的容器。这是正确的理解吗?
从逻辑上讲(假设Deployment是包装器/控制器),我觉得Deployment可以有多个复制集,而每个copyingSet可以有多个Pod(相同或不同种类)。如果这一说法正确,那么有人可以分享一个示例K8S模板吗?
答案 0 :(得分:2)
1。)是的,部署是一个副本集,在更高级别进行管理。
2。)不,一个部署不能有多个副本集,一个部署几乎就是一个副本集。通常,您永远不会直接使用ReplicaSet,只需部署。不,您不能在一个Deployment或ReplicaSet中拥有不同的Pod模板。复制的重点是创建同一事物的副本。
关于每个Deployment可以运行多少个Pod,除非指定,限制实际上并不是每个Deployment的。通常,您可以在“展开”中设置所需的副本数,也可以使用带有最小和最大数量的Pod的“水平Pod自动缩放器”。并且除非节点限制较小,否则以下限制适用:
https://kubernetes.io/docs/setup/best-practices/cluster-large/
答案 1 :(得分:1)
根据Kubernetes文档,Deployment和ReplicaSets之间存在1:1对应。同样,根据副本属性,副本集可以管理n个相同性质的容器。这是正确的理解吗?
是的。它将不会创建与replicas
字段值相等的值的Pod。
部署管理副本集,您不/不应该直接与副本集进行交互。
从逻辑上讲(假设Deployment是包装器/控制器),我觉得Deployment可以有多个复制集,而每个copyingSet可以有多个Pod(相同或不同种类)。如果这一说法正确,那么有人可以分享一个示例K8S模板吗?
进行滚动部署时,它将使用新的Pod(更新的容器)创建一个新的ReplicaSet,并按比例缩小在较旧的副本集中运行的Pod。
我猜它不支持使用不同的容器/容器运行两个不同的ReplicaSet(不是部署更新)。
https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment
更新部署后:
运行:
kubectl describe deployments
输出:
.
.
.
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-1564180365 (3/3 replicas created)