当前位置:首页 > 经验 >

常见的pod控制器有哪些(pol控制器的作用)

来源:原点资讯(www.yd166.com)时间:2022-11-04 17:56:56作者:YD166手机阅读>>

我们已经可以实现通过手工执行kubectl scale命令实现Pod扩容或缩容,但是这显然不符合Kubernetes的定位目标–自动化、智能化。 Kubernetes期望可以实现通过监测Pod的使用情况,实现pod数量的自动调整,于是就产生了Horizontal Pod Autoscaler(HPA)这种控制器。

HPA可以获取每个Pod利用率,然后和HPA中定义的指标进行对比,同时计算出需要伸缩的具体值,最后实现Pod的数量的调整。其实HPA与之前的Deployment一样,也属于一种Kubernetes资源对象,它通过追踪分析RC控制的所有目标Pod的负载变化情况,来确定是否需要针对性地调整目标Pod的副本数,这是HPA的实现原理。

HPA管理着deploy,deploy管理着rs,rs又去管理pod

本来这一节是要做好HPA的实验的,但是我发现我服务器连接不上github,所以只能是跳过了,但是原理还是得好好看一下的HPA通过监控pod的资源负载,一旦资源超过设置的警报线,HPA就会指挥deploy创建pod,如果资源负载减轻,又会减少pod,相当于是自动化的弹性伸缩

好了本节daemonset(DS)

DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个节点都需要且只需要一个),那么这类Pod就适合使用DaemonSet类型的控制器创建。

daemonset(DS)的特点是:

  • 第一,每当向集群中添加一个节点时,指定的pod副本也将添加到该节点上
  • 第二,当节点从集群中移除时,pod也就被垃圾回收了

下面先来看下DaemonSet的资源清单文件

apiVersion: apps/v1 # 版本号 kind: DaemonSet # 类型 metadata: # 元数据 name: # rs名称 namespace: # 所属命名空间 labels: #标签 controller: daemonset spec: # 详情描述 revisionHistoryLimit: 3 # 保留历史版本 updateStrategy: # 更新策略 type: RollingUpdate # 滚动更新策略 rollingUpdate: # 滚动更新 maxUnavailable: 1 # 最大不可用状态的 Pod 的最大值,可以为百分比,也可以为整数 selector: # 选择器,通过它指定该控制器管理哪些pod matchLabels: # Labels匹配规则 app: nginx-pod matchExpressions: # Expressions匹配规则 - {key: app, operator: In, values: [nginx-pod]} template: # 模板,当副本数量不足时,会根据下面的模板创建pod副本 metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:1.17.1 ports: - containerPort: 80

创建yaml文件

vi pc-daemonset.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: pc-daemonset namespace: dev spec: selector: matchLabels: app: nginx-pod template: metadata: labels: app: nginx-pod spec: containers: - name: nginx image: nginx:1.17.1

[qq@k8snode1 ~]$ kubectl create -f pc-daemonset.yaml daemonset.apps/pc-daemonset created [qq@k8snode1 ~]$ kubectl get ds,pod -n dev -o wide NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE CONTAINERS IMAGES SELECTOR daemonset.apps/pc-daemonset 1 1 1 1 1 <none> 2m17s nginx nginx:1.17.1 app=nginx-pod NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/pc-daemonset-tzmkf 1/1 Running 0 2m17s 172.17.0.6 minikube <none> <none>

栏目热文

pod测试原理(pod的原理)

pod测试原理(pod的原理)

本章节主要学习Flannel网络是如何通信,从而深刻理解从内部到外部,从外部到内部的资源访问。一、container-c...

2022-11-04 18:18:43查看全文 >>

pod实例是什么(pod创建原理)

pod实例是什么(pod创建原理)

作为CNCF成员,Weave Flagger提供了持续集成和持续交付的各项能力。Flagger将渐进式发布总结为3类:灰...

2022-11-04 18:17:38查看全文 >>

自行车的运动形式有哪些(有自行车的运动有哪些)

自行车的运动形式有哪些(有自行车的运动有哪些)

很多人都热衷于锻炼身体,改善健康,而生活中除了增加体育训练设施的数量外,运动形式也多样化,服务于众多不同人群的需求,比如...

2022-11-04 18:09:53查看全文 >>

自行车的车轮运动属于什么(自行车的车轮运动形式是滚动吗)

自行车的车轮运动属于什么(自行车的车轮运动形式是滚动吗)

齐鲁网·闪电新闻4月28日讯 《山东省电动自行车管理办法》自2022年5月1日起施行,对骑电动自行车带牌上路、骑电动车佩...

2022-11-04 18:20:21查看全文 >>

行驶的自行车轮子做什么运动(自行车齿轮与车轮运动方向示意图)

行驶的自行车轮子做什么运动(自行车齿轮与车轮运动方向示意图)

自全球变暖态势愈加严重之后,我国开始倡导“节能减排,绿色出行”,呼吁民众多乘坐公共交通,减少开车出行。此外中国在互联网和...

2022-11-04 18:35:47查看全文 >>

什么叫pod结构(pod的组成部分)

什么叫pod结构(pod的组成部分)

IT ___ InformationTechnology 信息技术POP ___ Procedure-Oriented ...

2022-11-04 18:20:20查看全文 >>

pod启动过程(pod调度失败怎么解决)

pod启动过程(pod调度失败怎么解决)

在上一章节,有一个问题一直没有解决[qq@k8snode1 ~]$ kubectl get pod -n dev NAM...

2022-11-04 18:06:18查看全文 >>

什么是pod网络(pod的网络模式)

什么是pod网络(pod的网络模式)

作者 | Aholiab责编 | Carol出品 | CSDN(ID:CSDNnews)封图|CSDN下载自视觉中国云原...

2022-11-04 18:22:53查看全文 >>

pod调度原理(pod调度使用法则)

pod调度原理(pod调度使用法则)

导读:在《一文读懂 K8s 持久化存储流程》一文我们重点介绍了 K8s 内部的存储流程,以及 PV、PVC、Storag...

2022-11-04 17:53:18查看全文 >>

pod命令怎么生成的(pod之间怎样通信的)

pod命令怎么生成的(pod之间怎样通信的)

pod生命周期我们一般将pod对象从创建致终的这段时间范围称为pod的生命周期,它主要包含下面的过程:pod创建过程运行...

2022-11-04 18:01:10查看全文 >>

文档排行