• 周龙亭
    2018-11-26
    是因为envoy提供了api形式的配置入口,更方便做流量治理

    作者回复: 是的

     1
     30
  • Geek_zz
    2018-10-15
    居然看一遍就记住了这节课的原理
    
     21
  • shadow
    2018-10-15
    有个疑问,在envoy-initializer的“控制循环”中获取新创建的Pod,这个Pod是否已经在正常运行了?
    Initializer 提交patch修改Pod对象,Kubernetes发现Pod更新,然后以“滚动升级”的方式更新运行中的Pod?

    作者回复: 不会啊。注意看apiserver的流程图,initializer发生在admission阶段,这个阶段完成后pod才会创建出来。

    
     11
  • 虎虎❤️
    2018-10-15
    老师,用声明式api的好处没有体会太深刻。
    如果在dosomething中merge出新的yaml,然后用replace会有什么缺点?
    好像在这篇文章中仅仅提到声明式的可以多个客户端同时写。除此之外,还有其他优点吗?
    也就是说修改对象比替换对象的优势在哪?

    作者回复: istio不就是例子?系统里完全可以有好几个initializer在改同一个pod,你直接replace了别人还玩不玩了?

    
     10
  • Lis
    2018-11-09
    老师好,课后作业的方式非常棒,可否在下一节课的开始先总结一下课后作业呢?
    
     8
  • huan
    2018-10-15
    又查了下envoy的设计,感觉它支持热更新和热重启,应该很适合声明式规则的开发范式,这可以看做一种优势,相比而言,nginx的reload需要把worker进程退出,比较面向命令

    作者回复: 这确实是一个因素

    
     7
  • Alex
    2018-11-14
    Initializer与新的pod 在git merge冲突了该怎么解决?

    作者回复: 就不会注入成功了

    
     5
  • 虎虎❤️
    2018-10-16
    kubectl apply 是通过mvcc 实现的并发写吗?

    作者回复: 是啊

    
     5
  • Chumper
    2018-10-15
    磊哥竟然穿插了istio的讲解,后续有没有计划讲讲knative呢

    作者回复: knative没啥特别的,暂时就不给篇幅了

    
     5
  • DJH
    2018-10-15
    请教老师,Initializer和Preset都能注入POD配置,那么这两种方法的适用场景有何不同?

    作者回复: preset相当于initializer的子集,比较适合在发布流程里处理比较简单的情况。initializer是要写代码的。

    
     5
  • 羽翼1982
    2018-11-27
    所以这个问题的答案是什么呢?
    我的理解是Envy性能更高,占用系统资源更少

    作者回复: 编程友好的api,方便容器化,配置方便

    
     4
  • Frank_balabala
    2019-05-12
    老师你好!
    ”如果你对这个 Demo 感兴趣,可以在这个 GitHub 链接里找到它的所有源码和文档。这个 Demo,是我 fork 自 Kelsey Hightower 的一个同名的 Demo“

    我看这个initializer的plugin都已经没了,现在是不是都要写Admission hook了? https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#

    例如这个 https://github.com/kubernetes/kubernetes/blob/v1.13.0/test/images/webhook/main.go
    展开
    
     3
  • 王天明
    2018-11-05
    按GitHub里的启动的pod envoy-initializer-xxxx报状态crashloopbackoff,日志显示backoff restarting failed container,不知道大家有没有遇到这种情况
    
     3
  • 混沌渺无极
    2018-10-16
    dynamic admission control有点像防火墙的DNAT,数据包即将进入路由表的瞬间被修改了目的地址,这样路由表就对数据包的修改[无感]。
    patch就像多人使用git来进行文件的"合并型"修改。

    作者回复: 就是这么回事儿

    
     3
  • 虎虎❤️
    2018-10-15
    老师,为什么修改对象可以多个客户端同时写,而替换不行?感觉还差一层窗户纸,老师帮我捅破:)
    或者有什么资料可以让我更深入理解下吗?

    作者回复: 你的错误之处在于,patch数据只可能被PATCH API认识。你总想着让replace也能用patch数据,那replace不就成了patch api了?

     1
     3
  • Dillion
    2018-10-15
    我对声明式API的理解是:apiserver与etcd在不断维护者某个对象各个属性字段。修改对象状态的方式是修改这个对象的属性。也就是,对象的属性作为API,暴露给用户,用户通过修改对象属性,实现对对象的修改。
    
     3
  • 闫飞
    2019-01-16
    服务网格最初是由linkerd项目提出概念的,lstio是另外一个后起之秀,使大家都关注到了边车代理模式和服务治理的新方法的巨大威力。文中应该笔误写错为微服务了。

    不过瑕不掩瑜,本节写的极其精彩和深入浅出。

    作者回复: service mesh is just a fancy way of microservice

    
     2
  • gotojeff
    2018-10-17
    Hi 老师
    ‘’‘有个疑问: name 为envoy的configmap是在哪里定义的呢?
    2018-10-16
     作者回复
    文中不是贴出来了?
    ’‘’
    configmap模板中的 metadata - name是envoy-initializer,但是在下面的container volumes中的configmap name是envoy,我的疑惑是这是2个不同的configmap吧?后者是在其他地方定义的?
    展开

    作者回复: 哦哦,这个忘记贴了。没错,这个configmap需要使用envoy的配置文件创建出来,配置文件网上可以下到。kubectl create configmap envoy —from-file envoy.json

    
     2
  • 参悟
    2018-10-15
    我想envoy的成功,是因为它真正理解了k8s的技术精髓,并成功的应用到了当前最火的微服务领域,将微服务体系与K8S捆绑在一起,service mesh成为微服务新一代技术的代言,这无论从技术上还是战略上都赢得了google的芳心,成功也就水到渠成。

    作者回复: 但其实envoy发布的不算晚,称不上搭便车。

    
     2
  • divfor
    2019-01-05
    多路并发写我的理解是patchBytes := strategicpatch.CreateTwoWayMergePatch(pod, newPod)的时候pod的状态未必等于patch时候的pod状态,所以要先记下差异,中间给予其他写者机会,最后自己patch的时候只管自己记下的差异,而不动其他写者的部分。万一跟其他写者冲突了就失败吧,由人来解决
    
     1
我们在线,来聊聊吧