kubernetes里面那些事————控制器

SharedInformer 作为控制器的代理,可以缓解入口压力

一,控制器作用

管理pod对象
使用标签与pod关联
控制器实现了pod运维,例如滚动更新、伸缩副本管理,维护pod状态等

二,控制器类型

2.1,Deployment:无状态应用部署

功能:管理pod和replicas
应用场景: 网站、API、微服务

2.2,DaemonSet:确保所有Node运行同一个pod

功能:在每一个node上运行一个pod
新加入的node也同样会自动运行一个pod
应用场景:网络插件(kube-proxy、calico)、其他agent应用

2.3,StatefulSet:有状态应用部署

结合headless service使用
功能特性:

  • 稳定的、唯一的网络标识符
  • 稳定的、持久化的存储
  • 有序的、优雅的部署和伸缩
  • 有序的、优雅的删除和终止
  • 有序的、自动滚动更新

Headless Service 特性:
未配置 ClusterIP,不通过 SVC 分配的 VIP 负载均衡访问 Pod
直接以 DNS 记录方式解析到 Pod 对应的IP地址

应用场景:

  • 稳定的持久化存储,即 Pod 重新调度后,还能够访问到相同的持久化数据,基于PVC来实现
  • 稳定的网络标识,即 Pod 重新调度后其 PodName 和 HostName 不变,基于 Headless Service (即没有Cluster IP的Service)来实现
  • 有序部署、有序扩展,即Pod是有序的,在部署和扩展时,要按照定义的顺序依次进行 (即从 0 到N - 1, 在下一个Pod 运行前,所有 Pod 必须是 Running 和 Ready 状态),基于 Init Containers 来实现
  • 有序收缩、有序删除(即从 N-1 到 0)

2.4,Job:一次性任务

功能:一次性执行
应用场景:离线数据处理

2.5,CronJob:定时任务

功能:定时任务
应用场景:通知、备份类任务

2.6,pod

Kubernetes应用程序的最小化部署和管理单元。
可以是一个容器也可以是多个容器组成

2.7,service

2.8,replicaset

维持一组pod副本的运行,保证运行数量
监听pod运行状态,pod增加或者故障减少时维持副本数量

2.9,endpoints

代理集群外部服务到kubernetes内部访问

三,控制器yaml应用

3.1,Deployment

Deployment进行pod升级时,采用滚动更新方式
更新策略:

  • maxSurge:滚动更新过程中最大pod副本数,确保在更新时启动的pod数量比期望(replicas)pod数量最大多出25%

  • maxUnavailable:滚动更新过程中最大不可用pod副本数,确保在更新时最大25%pod数量不可用,即确保75%pod是可用状态

    yaml例:

apiVersion: apps/v1            ##版本
kind: Deployment               ##类型
metadata:                      ##Deployment的元数据
  name: httpd                  ##Deployment的名字
  labels:                      ##标签
    app: httpd                 ##标签app=httpd
spec:                          ##Pod的信息
  replicas: 3                  ##Pod的副本数
  selector:                    ##标签选择器
    matchLabels:               ##查找匹配的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背锅攻城师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值