k8s控制器
集群环境创建一个HPA控制器,统计Cpu平均利用率,在k8s集群中基于cpu利用率或者其他应用程序提供的度量指标实现水平自动伸缩的功能,自动缩放Pod 的数量。用户---> ServiceClusterIP---> Pod ---> replacaSet --->deployment。有状态服务必须在特定的主机,特定的节点做请求(比如mysql主从,ceph数据分片,日志收集监控收集pod的不同指
管理工具,帮助用户实现Pod的自动部署,自维护,扩容,滚动更新等功能的自动化程序
deployment 控制器 用户定义的
replicaset pod 自动定义的 由deployment自动管理
matchLabels: 简单标签
matchExpressions 表达式语法(标签语法,类似污点语法)
- operator: In,NotIn,Exists
kubectl create deployment myweb --image myos:httpd --dry-run=client -o yaml
k8s中定义web集群的结构
用户---> Service ClusterIP ---> Pod ---> replacaSet --->deployment
创建服务访问集群 ClusterIP
Pod维护管理
自维护自治理 Pod 被删除后,Deploy 会自动创建新的 Pod 来维护集群的完整性
集群扩缩容
自动扩容 replicas副本数量
kubectl scale deployment myweb --replicas=1 (副本数量)
回滚更新策略
重建式更新
滚动式更新
百分比进行更新 :先创建控制器,先创建Pod总数的百分比,同时在原控制器上消减同百分比,同步
kubectl get deployments.apps myweb -o yaml | less
revisionHistoryLimit: 10 #保留10个历史版本
selector:
matchLabels:
app: httpd
strategy: #更新策略
rollingUpdate: #滚动更新策略
maxSurge: 25% #允许最大副本25%超量
maxUnavailable: 25% #允许最小副本25%不足
type: RollingUpdate #更新方式 Recreate,RollingUpdate
imagePullPolicy: IfNotPresent #镜像下载策略 [always,never,innotpresent]
查看历史版本信息
kubectl rollout history deployment myweb
kubectl annotate deployments.apps myweb kubernetes.io/change-cause="httpd.v1" #添加历史版本注释
滚动更新
修改镜像,滚动更新集群 (apache---》 nginx)
kubectl set image deployment myweb webserver=myos:nginx
给新版本添加注释信息
kubectl annotate deployments myweb kubernetes.io/change-cause="nginx.v1"
版本回滚
kubectl rollout undo deployment myweb --to-revision 1(版本数)
DaemonSet控制器
kind: DaemonSet
删除副本参数 replicas
无法自定义副本数量
所创建的Pod与node节点绑定
每个node上都会运行一个pod
当有新的node加入集群时,会为他新增pod副本,当node从集群移除时,这些pod也会被回收。kube-proxy
Job/CronJob控制器
Job是一个单任务控制器,负责执行一次任务,保证任务在一个或者多个Pod上执行成功
cronjob job的升级版 基于时间管理的Job控制器 按照时间周期创造job
crontab --》 job --》 Pod
schedule “* * * * *”时间周期 jobTemplate
statefulset控制器 有状态的控制器
有状态服务 必须在特定的主机,特定的节点做请求 (比如mysql主从,ceph数据分片,日志收集监控收集pod的不同指标)
headless 无头服务
无状态服务 每个请求都是独立的 主动注册新的ip
高级控制器
statefulset 与有状态的应用及分布式系统一起使用,涉及headless服务,存储卷,DNS....
配置headless服务 在配置statefulset的时候首先要定义一个headless的服务
创建pod的时候会自动把<Pod名称>注册为域名
弹性云服务 HPA控制器 支持自动扩缩容
集群环境创建一个HPA控制器,统计Cpu平均利用率,在k8s集群中基于cpu利用率或者其他应用程序提供的度量指标实现水平自动伸缩的功能,自动缩放Pod 的数量
控制器会周期性的获取平均利用率
与目标值相比较后来调整副本数量
resources: # 为该资源设置配额
requests: # HPA 控制器会根据配额使用情况伸缩集群
cpu: 200m # CPU 配额
更多推荐
所有评论(0)