gpt4 book ai didi

kubernetes - ReplicaSets 会取代 Pods 吗?

转载 作者:行者123 更新时间:2023-12-02 11:56:52 24 4
gpt4 key购买 nike

我有一个概念性的问题,ReplicaSets 是否使用 Pod 设置?
在我应用我的 ReplicaSets 之前,我删除了我的 Pod,所以没有关于我的旧 Pod 的信息?
如果我现在应用 Replicaset 是否引用 Pod 设置,那么所有设置都像 readinessProbe/livenessProbe ... ?
我的问题出现了,因为在我的 replicaset.yml 是一个容器部分,我在其中指定了我的 docker 镜像,但是为什么它需要该信息,这不是冗余信息吗,因为该信息在我的 pods.yml 中?

apiVersion: extensions/v1beta1
kind: ReplicaSet
metadata:
name: test1
spec:
replicas: 2
template:
metadata:
labels:
app: web
spec:
containers:
- name: test1
image: test/test

最佳答案

Pods are the smallest deployable units of computing that can be created and managed in Kubernetes.

A Pod (as in a pod of whales or pea pod) is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.



见, https://kubernetes.io/docs/concepts/workloads/pods/pod/ .

因此,您可以指定 Pod 的调度方式(一个或多个容器、端口、探测器、卷等)。
但是如果出现节点故障或任何可能损害 Pod 的不良情况,则不会重新调度该 Pod(您必须手动重新调度)。因此,在这种情况下,您需要一个 Controller 。 Kubernetes 提供了一些 Controller (每个 Controller 用于不同的目的)。他们是 -
  • ReplicaSet
  • ReplicationController
  • Deployment
  • StatefulSet
  • DaemonSet
  • Job
  • CronJob

  • 以上所有的 Controller 和 Pod 一起被称为 Workload。因为他们都有一个 podTemplate部分。它们都创建了一些由 spec.replicas 指定的相同 Pod 组合。字段(如果此字段存在于相应的工作负载 list 中)。它们都是比 Pod 更上层的概念。

    Though the Deployment is more suitable than the ReplicaSet, this answer focuses on ReplicaSet over Pod cause the question is between the Pod and ReplicaSet.



    此外,上述每个 Controller 都有自己的用途。就像 ReplicaSet 的目的是维护在任何给定时间运行的一组稳定的副本 Pod。因此,它通常用于保证指定数量的相同 Pod 的可用性。

    一个 ReplicaSet 包含一个 podTemplate字段,包括用于识别和获取 Pod 的选择器。一个 Pod 模板,指定它应该创建的新 Pod 的配置以满足副本数量标准。它会根据需要创建和删除 Pod,以达到所需的数量。当一个 ReplicaSet 需要创建新的 Pod 时,它使用它的 Pod 模板。

    ReplicaSet 维护的 Pod 有 metadata.ownerReferences字段,告诉哪个资源拥有当前 Pod。

    ReplicaSet 使用其选择器标识要获取的新 Pod。如果有一个 Pod 没有 OwnerReference 或者 OwnerReference 不是一个 Controller 并且它匹配到一个 ReplicaSet 的选择器,它会立即被该 ReplicaSet 获取。

    引用: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/

    **

    现在,是时候回答你的问题了

    由于 ReplicaSet 是 Pod Controller 之一(如上所列),显然,它需要一个 podTemplate (使用此模板,您的 Pod 将被安排)。 ReplicaSet 创建的所有 Pod 都将具有相同的 Pod 配置(相同的容器、相同的端口、相同的 readiness/livelinessProbe、卷等)。拥有这个 podTemplate不是多余的信息,它是必需的。所以,如果你有一个像 ReplicaSet 或其他(根据你的需要)的 Pod Controller ,你就不再需要 Pod 本身了。因为 ReplicaSet(或其他 Controller )将创建 Pod。

    **

    猜猜,你得到了答案。

    关于kubernetes - ReplicaSets 会取代 Pods 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57096795/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com