带你深入学习k8s--(四) 控制器(k8s核心)

目录

一、概念

1、什么是控制器

2、控制器执行流程

3、控制器类型

二、控制器的使用

1、ReplicaSet

2、Deployment

1、版本迭代

2、回滚 

3、修改滚动更新策略

4、暂停与恢复

3、daemonset

4、job

5、cronjob


前言:

上一章我们说到,pod有两种,分别为自主式 Pod,Pod 退出后不会被创建;和被控制器管理的 Pod,在控制器的生命周期里,始终要维持 Pod 的副本数目。本章我们来讲解下k8s的核心控制器,在官方文档中也叫工作负载资源。

官方文档:工作负载资源 | Kuberneteshttps://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/

一、概念

1、什么是控制器

Kubernetes 中内建了很多 controller(控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为。

2、控制器执行流程

通过yaml文件把用户期望的状态存入etcd,控制器会通过ApiServer访问etcd,时刻去listwatch,检索当前的状态,并获取应用的状态,不断比对当前状态和你期望的状态是否是一致的,如果不一致由代码自驱动完成修复。

3、控制器类型

Replication Controller和ReplicaSet(RC已经被RS取代,RS一般不会单独用,一般都是和deployment一起使用)
Deployment
DaemonSet
StatefulSet
Job
CronJob
HPA全称Horizontal Pod Autoscaler

二、控制器的使用

1、ReplicaSet

rs主要控制的是pod的副本数

案例:证明k8s的控制器在自动的维护pod的副本数

[root@k8s2 pod]# vim rs-example.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: replicaset-example
spec:
  replicas: 3
  selector:
    matchLabels:		#通过选择标签
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx

[root@k8s2 pod]# kubectl apply -f rs-example.yml

[root@k8s2 pod]# kubectl get pod --show-labels

replicaset是通过标签匹配pod,我们修改其中一个pod的标签,控制器会始终维护yaml中定义的3个副本数,所以他就会新创建一个标签为myapp的pod
[root@k8s2 pod]# kubectl label pod replicaset-example-q2sq9 app=myapp --overwrite
[root@k8s2 pod]# kubectl get pod --show-labels 

我们把刚在修改的pod再改回来,发现还是只有3个副本数

[root@k8s2 pod]# kubectl label pod replicaset-example-q2sq9 app=nginx --overwrite
[root@k8s2 pod]# kubectl get pod --show-labels 

删除掉其中的一个pod控制器仍然会自动创建一个

replicaset自动控制副本数量,pod可以自愈

[root@k8s2 pod]# kubectl delete pod replicaset-example-q2sq9

[root@k8s2 pod]# kubectl get pod --show-labels

回收资源

[root@k8s2 pod]# kubectl delete -f rs-example.yml

2、Deployment

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值