• jasine
    2018-09-28
    除了上面朋友提到的主动与被动区别,事件往往是一次性的,如果操作失败比较难处理,但是控制器是循环一直在尝试的,更符合kubernetes申明式API,最终达到与申明一致,这样理解对吗

    作者回复: 厉害。这个就说到点子上了。

     1
     139
  • uncleli
    2018-09-28
    相当于select和epoll的区别

    作者回复: 太专业啦

    
     32
  • 小小笑儿
    2018-09-28
    deployment会创建rs,然后由rs创建pod,所以pod的owner应该是rs?

    作者回复: 明白人。

    
     24
  • 龙坤
    2018-09-28
    老师,大概可以这样理解吧。一个是主动,一个被动
    “事件驱动”,对于控制器来说是被动,只要触发事件则执行,对执行后不负责,无论成功与否,没有对一次操作的后续进行“监控”
    “控制器模式”,对于控制器来说是主动的,自身在不断地获取信息,起到事后“监控”作用,知道同步完成,实际状态与期望状态一致

    作者回复: 基本正确。

    
     13
  • 包子
    2018-09-28
    控制器主动获取pod状态,在这个集群中,有那么多pod,某个pod在某一时刻状态有变,怎样及时通知到控制器呢?

    作者回复: informer机制,后面会讲到

    
     6
  • Dale
    2018-09-28
    控制器模型是在一个循环中主动收集各个pod的运行状态,预先知道自己要处理哪些模块,然后比较状态来触发对应的操作,有点像有序同步操作。
    事件驱动模型是一个异步回调过程,各个模块向控制器注册好事件方法,当模块自己检测到事件发生了,则将事件添加到控制器处理队列,控制器不关心各个模块状态,只关心队列中是否有事件。
    请指正。
    
     6
  • 蜗牛
    2018-10-07
    有一个疑问没太弄清楚, 比如Deployment, 是我创建一个Deployment 就会生成一个对应的 Deployment-Controller 实例来管理该它 还是整个k8s系统只有一个 Deployement-Controller 来同一管理该系统的所有Deployment呢?

    作者回复: 当然只有一个controller

    
     4
  • chf007
    2018-10-10
    我可以先写Pod,再写Deployment,不写 template,只靠标签控制 Pod 么?

    K8s只靠标签进行match控制,如果万一写错便签会不会直接调度了以前就存在的Pod,但是 不是我想要操作的 Pod 呢?

    作者回复: 不可以,控制器需要使用模版。的确会有重合的可能。

    
     3
  • Jeff.W
    2018-10-15
    唯一的不变就是变化本身,你所看到的稳定不变的状态,都是有人在默默付出的。pod的稳定状态,背后控制器的默默奉献~
    
     2
  • 北卡
    2018-10-02
    对于十一还在上班的我,摸鱼时间看这套教程让我感到了莫大的快乐。
    
     2
  • Vincen
    2018-09-28
    后面文章会讲watch机制吗?

    作者回复: 会的

    
     2
  • Harvey
    2019-09-04
    这个区别国外有个专门的术语,level trigered 和 edge trigered 是借用数字电路的术语,控制器使用了level trigered 保证状态的变化最终被执行
    
     1
  • 哈哼
    2019-02-21
    面向目标的代码好写,不用处理event失败,丢了等问题,因为这些问题很不好处理
    
     1
  • Spark
    2018-09-29
    老师,我是初学者,这个课程让我获益匪浅,但每次都有很多问题想问但无人解答。请问能不能建一个交流群,大家共同讨论学习。

    作者回复: 极客时间好像马上要上线这个功能

    
     1
  • A-
    2018-09-28
    我理解:
    事件驱动是被动的:被控制对象要自己去判断是否需要被编排,调度。实时将事件通知给控制器。
    控制器模式是主动的:被控制对象只需要实时同步自己的状态(实际由kubelet做的),具体的判断逻辑由控制去做。
    不对请指正

    作者回复: 基本正确,还可以再深入

    
     1
  • Godruoyi
    2019-09-15
    控制器循环的伪代码实现

    while (true) {
        $lebels = Etcd.getLebels();
         $pods = k8s.allPods()->filter($lebels)->get();
        $count = count($pods) - Etcd.replicas();

        if ($count > 0) {
            // 删除指定数量的 Pod
            destory($pods, $count)
        } elseif ($count < 0) {
            // 创建指定数量的 Pod
            create($count)
        }
    }
    展开
    
    
  • 牛头人
    2019-01-24
    ownerReference 应该是metadata下全部的kv吧
    
    
  • 勇敢的心
    2019-01-08
    复习一下
    
    
  • jimmy
    2018-10-18
    命令式api和声明式api的区别
     1
    
  • 广宇
    2018-10-06
    控制器的作用是确保对象处在所定义的状态上,这跟很多运维自动化工具中的概念是类似的,确保一致性,不一致的要回归收敛到一致。
    
    
我们在线,来聊聊吧