K8S的Pod概念

Pod类型

自主式pod:不是被控制器管理的pod,pod挂掉后没有办法自动拉起,做不到创建一个新的pod达到期望值。
控制器管理的pod

pause:网络栈
一个pod里边可以有一个或多个容器,
只要有pod,这个容器就要被启动。
在同一个pod里边,容器的端口不能冲突。
在同一个pod里边,既共享网络战,又共享数据卷。

在这里插入图片描述

Pod控制器类型

ReplicationController & ReplicaSet & Deployment

ReplicationController用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的Pod来替代;而如果异常多出来的容器也会自动回收。在新版本的kubernetes中建议使用ReplicaSet来取代ReplicationController
ReplicaSetReplicationController没有本质的不同,只是名字不一样,并且ReplicaSet支持集合试的selector
虽然ReplicaSet可以独立使用,但一般还是建议使用Deployment来自动管理ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet不支持rolling-update,但Deployment支持)


deployment滚动更新
(1)deployment创建RS,RS创建pod。
(2)容器滚动更新,创建一个新的RS,启动一个新的容器v2,退出一个旧的容器v1。循环往复,直到更新完成。
deployment滚动更新


deployment回滚
(1)deployment在滚动更新以后,旧的RS并不会被删除,而是被停用。
(2)当我们进行回滚操作的时候,deployment会把旧的RS版本重新启用。
(3)旧的RS重新创建pod,启动备份的容器数据。
在这里插入图片描述

HPA(HorizontalPodAutoScale)

Horizontal Pod Autoscaling仅适用于Deployment和ReplicaSet,在V1版本中仅支持根据Pod的CPU利用率扩缩容,在vlalpha版本中,支持根据内存和用户自定义的metric扩缩容。
在这里插入图片描述

StatefullSet

StatefulSet是为了解决有状态服务的问题,(对应Deployments和ReplicaSet是为无状态服务而设计)其应用场景包括:

  • 稳定的持久化存储,即pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现。
  • 稳定的网络标志,即pod重新调度后期PodName和HOSTName不变,基于HeadlessService(即没有Cluster IP 的Service)来实现。
  • 有序部署,有序扩展,即pod是有序的,在部署或者扩展的时候要依据定义的顺序依次进行,(即 从0到N-1,在下一个pod运行之前所有之前的pod必须都是running和ready状态),基于init containers来实现。
  • 有序收缩,有序删除(即从N-1到0)。

DaemonSet

DaemonSet确保全部(或者一些)node上运行的pod的副本。当有node加入集群时,也会为他们新增一个pod。当有node从集群被移除时,这些pod也会被回收。删除DaemonSet将会删除它创建的所有pod
使用DaemonSet的一些典型用法:

  • 运行集群存储daemon,列如在每个node上运行glusterd、ceph。
  • 在每个node上运行日志收集daemon,例如fluentd、logstash。
  • 在每个node上运行监控daemon,例如Prometheus Node Exporter

Job,Cron job

job负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个pod成功结束
Gron Job管理基于时间的Job,即:

  • 在给定时间点只运行一次
  • 周期性地在给定时间点运行

服务发现

在这里插入图片描述

client访问一组pod
service是通过标签收集的一组pod


pod与pod的通讯方案:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
K8s中的Pod控制器是用来管理和控制Pod的一种机制。Pod控制器负责创建、启动、停止、重启和删除Pod,以及监控和调节Pod的状态。Pod和Controller之间是通过label标签来建立关系,Controller又被称为控制器工作负载。Pod控制器可以根据需要创建多个Pod实例,以满足应用程序的需求。 常见的Pod控制器包括Deployment、ReplicaSet、StatefulSet和DaemonSet等。Deployment控制器是K8s中最常用和最重要的Pod控制器之一。它通过创建和管理ReplicaSet来实现对Pod的控制。Deployment控制器可以定义应用的副本数、升级和回滚策略,以及弹性伸缩等功能。通过使用Deployment控制器,可以方便地部署和管理应用程序。 在使用K8s时,可以使用yaml文件来定义Pod控制器的配置和参数。通过指定不同的字段和数值,可以实现对Pod控制器的定制化配置。例如,可以在yaml文件中指定应用程序的镜像、资源需求、副本数等信息。 总结来说,K8s中的Pod控制器是用来管理和控制Pod的机制,通过label标签与Pod建立关系。常见的Pod控制器包括Deployment、ReplicaSet、StatefulSet和DaemonSet。使用yaml文件可以对Pod控制器进行配置和定制化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [k8s技术交流,包括Pod概念和特点Pod种类Pod镜像拉取策略Pod重启策略Pod控制器Pod探针、Pod调度](https://download.csdn.net/download/lingmeng447/85358750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【k8s】6、pod控制器](https://blog.csdn.net/hancoder/article/details/118064163)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值