首页 > 其他分享 >在K8S中,静态、动态、自主式Pod有何区别?

在K8S中,静态、动态、自主式Pod有何区别?

时间:2024-01-28 12:35:25浏览次数:25  
标签:控制器 动态 自主 静态 创建 有何 Pod K8S

在Kubernetes(简称K8s)中,静态Pod、自主式Pod和动态Pod是不同管理方式下的Pod类型,它们的区别主要体现在创建和管理方式上:

  1. 静态Pod

    • 静态Pod是由kubelet直接管理的,其配置文件存储在节点本地而非通过API Server创建。
    • kubelet会根据指定路径下的静态Pod配置文件来创建和管理Pod,这些Pod不会被其他控制器如Deployment、ReplicaSet等控制。
    • 当kubelet重启时,它会自动重新创建静态Pod,并且由于静态Pod的元数据不存储在etcd中,因此不能通过kubectl命令进行直接操作。
  2. 自主式Pod(Ad-Hoc Pod或Non-Controller Managed Pod)

    • 自主式Pod是指那些由用户直接创建但不受任何控制器管理的Pod。它们通常通过kubectl run命令或直接向API Server提交YAML/JSON配置文件的方式来创建。
    • 自主式Pod一旦创建,除非手动删除,否则不会自动消失或者被重建。
    • 这类Pod没有与之关联的控制器,所以如果Pod出现故障,不会像受控制器管理的Pod那样自动恢复到期望状态。
  3. 动态Pod

    • 动态Pod一般指的是由控制器(如Deployment、StatefulSet、DaemonSet等)管理的Pod。
    • 控制器负责监视集群的状态并确保实际运行的Pod数量符合预期(例如保持一定数量的副本),当Pod因各种原因终止时,控制器会自动创建新的Pod以替代。
    • 动态Pod的生命周期受到控制器策略的严格管理和维护,包括健康检查、滚动更新、扩展缩容等功能。

综上所述,静态Pod适用于需要在特定节点上始终运行且无需集群级别管理的应用场景;自主式Pod用于临时性的或一次性任务,不依赖于控制器自动恢复机制;而动态Pod则是Kubernetes中常态化的应用部署方式,具有高度自动化和弹性伸缩能力。

标签:控制器,动态,自主,静态,创建,有何,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/17992721

相关文章

  • k8s创建NFS动态存储
    1.插件项目地址k8s实验版本:v1.28.2第三方插件地址:https://github.com/kubernetes-retired/external-storagenfs插件:https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client需要注意的是,nfs最新文档已经迁移到其他地址2. 创建存储类资源对象wg......
  • 在K8S中,Pod生命周期包含哪些?
    在Kubernetes(简称K8s)中,Pod的生命周期经历了一系列状态变化。以下是Pod可能处于的一些主要状态:Pending:当创建一个Pod时,它首先会进入Pending状态。这个状态下,Kubernetes正在为Pod分配节点、拉取容器镜像或等待其他资源就绪。在这个阶段,Pod尚未被调度到具体的Node上或者其依赖的......
  • 在K8S中,镜像拉取策略有哪些?
    在Kubernetes(简称K8s)中,镜像更新策略主要由imagePullPolicy参数控制。当Pod中的容器镜像需要更新时,Kubernetes会根据这个策略决定如何处理镜像拉取行为。Always:如果容器的imagePullPolicy设置为Always,每次创建Pod或者重启容器时,kubelet都会尝试从镜像仓库拉取最新的镜像版本。......
  • 在K8S中,Pod删除过程会发生什么?
    在Kubernetes(简称K8s)中,删除一个Pod时会发生以下一系列事件:发出删除命令:用户通过kubectl命令行工具或者API接口发出删除Pod的请求,例如执行kubectldeletepod<pod-name>。APIServer响应:KubernetesAPIServer接收到删除请求后,验证权限并更新其内部状态,标记指定Pod为待删......
  • 在K8S中,Pod创建过程包括什么?
    在Kubernetes(K8s)中,Pod的创建过程通常包括以下步骤:提交Pod定义:用户通过kubectl命令行工具或者调用APIServer接口,提交一个包含Pod配置信息的YAML或JSON文件。这个配置文件详细描述了Pod的元数据(如名称、标签等)、容器镜像、环境变量、端口映射、卷挂载以及其他运行时参数。接......
  • 在K8S中各个组件及其作用?
    Kubernetes(简称K8s)是一个强大的容器编排系统,其主要组件及其作用如下:kube-apiserver:集群的主入口点,提供了RESTfulAPI接口供用户或内部组件与集群进行交互。它负责验证和配置数据,并将所有请求持久化存储在etcd中。etcd:分布式键值存储系统,用于保存集群的所有关键配置数据......
  • K8S中组件是如何实现高可用?
    在Kubernetes(K8S)中,各个组件实现高可用的主要方法包括冗余部署和自动故障恢复机制。以下是Kubernetes主要组件的高可用性实现方式:kube-apiserver:高可用策略:通过在多个节点上部署多个API服务器实例,并使用负载均衡器(如云服务商提供的负载均衡或自建的负载均衡解决方案如HAProxy......
  • k8s 报错: node(s) didn't match Pod's node affinity.
    前言k8s集群中,有pod出现了Affinity,使用kubectldescribepod命令,发现了报错2node(s)didn'tmatchPod'snodeaffinity.这是因为节点被打上了污点,导致了pod没有节点可以起来解决kubectlgetnodes-ojson|jq'.items[].spec'orkubectlgetnodes-oyaml找到......
  • k8s .netcore webapi
    .netcorewebapi迁移到到k8s1.  kcreatedeploymentaaa--image=aaa-image:1.2 -r=2, 然后把生成的deploy,-oyaml,删除不必要信息,保存为yamlapiVersion:apps/v1kind:Deploymentmetadata: labels:  app:my-app name:my-app namespace:app-ns......
  • K8S 集群 apiserver-advertise-address实例节点IP切换VIP
    1.备份当前k8s集群配置文件(3个master都备份) cp-r/etc/kubernetes/etc/kubernetes.bak2.删除当前k8s集群的apiserver的cert和keyrm-rf/etc/kubernetes/pki/apiserver.*3.生成新的apiserver的cert和key,cd到pki目录下cd/etc/kubernetes/pki/---apiserver-advertise-......