• Vincen
    2018-10-08
    因为是通过一个statefulset来实现的 感觉太复杂了,master和slave做成两个statefulset就非常简单了

    作者回复: 没错,这是一个很好的解决思路

     1
     30
  • 黄俊
    2018-12-29
    error: unable to recognize "rook-storage.yaml": no matches for kind "Pool" in version "ceph.rook.io/v1"

    应该是rook新版本的问题,rook-storage.yaml 文件中有两个位置需要修改。

    apiVersion: ceph.rook.io/v1
    kind: CephBlockPool
    展开
    
     10
  • DJH
    2018-10-10
    有一点我还是没想通,为啥数据复制操作要用sidecar容器来处理,而不用mysql主容器来一并解决。如果把数据复制操作和启动mysql服务一并写到同一个sh -c后面,这样算不算一个单一进程呢?

    作者回复: sidecar是常驻进程,要监听3370端口呢。一个容器里显然没办法管理两个常驻进程,这就是容器是单进程的意思啊。

    
     10
  • wtcctw
    2018-10-08
    张大大你好,
    我之前自己玩过docker,在看这个专栏之前,特意简单过了一下《Docker容器与容器云 第二版》,之前一些章节看得非常过瘾,讲解得非常透彻。
    但是看到StateFulSet的时候感觉有点晕。。。特别是里面的Pod YAML定义,感觉要记的东西非常多,学习曲线也比较陡峭,一段时间不用肯定就忘了。
    所以想问一下,作为非专业的运维人员,对于k8s的掌握大致要到何种程度,多谢多谢。

    作者回复: 遇到问题能迅速定位到源码即可

    
     5
  • V V
    2018-11-28
    这种部署方式,主节点pod挂了的时候,能自动重新创建一个出来吗?
    
     4
  • 彭锐
    2018-10-18
    这样的有状态应用有个约束,pod标识一旦确定,角色就确定了。但实际应用中,不能有这样的约束,主挂了,要有一个从升主。这就要求至少有选主机制,所有的配置文件也不能依赖id确定角色。
    这怎么玩呢?operater吗?operater可以看成一个特定应用的sre保姆吗?

    作者回复: 没错。你说的这种情况得用operator,后面会讲。

    
     4
  • sam700000
    2019-08-14
    通过这节我才更清晰理解了,kubernetes最小的管理单位是pod的概念,把思维从容器这层抽出来。然后也更清楚的理解了statefulset实现有状态,就是把特定的状态配置绑定在某个对象名称上面,然后通过之前说的控制循环不断的维护这个对象的特性,只要这写特定对象和它们各自绑定的状态配置不变就实现了有状态的应用部署和维护。果然实践出真知👍

    作者回复: 说的对!

    
     3
  • 侯操宇
    2018-10-11
    老师,我发现在initContainers 的ini-mysql容器中,执行的只是简单的文件拷贝工作,但镜像却用的是mysql的镜像,可以用其他镜像取代吗?镜像的选择有什么讲究吗?

    作者回复: 没啥讲究,能完成任务即可

    
     3
  • 风轨
    2018-10-08
    集群中的master/slave节点关系不对等。Service是通过label来绑定pod的,一个statefulSet中所有pod的label都是一样的,无法区分,因此service也是无法区别绑定slave pod的。所以答案应该是老师在文中多次提及的Operator,一次编排多个角色不同甚至镜像不同的服务。

    作者回复: 其实也可以写成两个statefulset

    
     3
  • 强者之风
    2019-04-13
    看不出来用MySQL-read service

    作者回复: 而通过连接 mysql-read 这个 Service,我们就可以用 SQL 进行读操作,如下所示:

     1
     2
  • D
    2018-12-28
    这里创建MySQL的时候,由于设定了readnessProbe在启动后30秒执行,但是当你没办法在30秒之内启动成功过一会执行logs就会看到一个—init……的错误,这是因为容器检测到不可用就重新创建了一个新的,但是新的容器MySQL执行初始化的时候发现所在的数据目录(/var/lib/MySQL)不为空,这时候只要响应的调高readnessProbe和livenessProbe的initialDelaySeconds值就好了
    
     2
  • 加菲老猫
    2018-11-28
    老师方便提供一个官方的mysql-statefulset.yaml样本嘛,我storageClassName: rook-ceph-block参数怎么加都跑不出来,多谢多谢!
    
     2
  • shadow
    2018-10-08
    总结里给的'mysql-statefulset.yaml'好像有点问题,在声明'volumeClaimTemplates'时,是不是应该通过'storageClassName'属性引用前面定义的'StorageClass':

    storageClassName: rook-ceph-block

    我开始一直遇到"pod has unbound immediate PersistentVolumeClaims" 错误,增加了这个属性就好了。
    展开

    作者回复: 对,用rook的环境应该加上这个,我加一句注释上去。

     2
     2
  • Caesar
    2018-10-08
    前面看大神说在搞kata-container,我有一个疑问,kata-container其实也是虚拟机加容器的方式,那它和docker加虚拟机的优势相比在哪呢

    作者回复: kata可不是虚拟机加容器,kata是用虚拟化实现的容器

    
     2
  • 彰玉
    2019-06-03
    集群建好了 数据也插入成功了 集群也正常后 主从节点的任何节点重启 是重新按yamL启动 还是直接挂数据盘启幼

    作者回复: 按yaml启动

    
     1
  • xfan
    2018-12-26
    感觉实现起来很复杂,不优美

    作者回复: 所以才要讲operator的

    
     1
  • eden
    2018-12-11
    老师,请问mysql persistent volume需要扩容怎么做?通过kubectl scale不能修改volume大小。

    作者回复: 需要存储插件支持

    
     1
  • Alery
    2018-10-16
    前辈你好,这里有个mysql数据库的疑问,既然xtrabackup与mysql这两个容器的启动顺序不一致会不会对mysql的数据产生影响?如果mysql先起来了,再恢复备份数据,mysql需要重启生效吗?

    作者回复: 有影响啊。文中不是讲到了sidecar要检查mysql的启动情况么?

    
     1
  • 钱晓明
    2018-10-15
    其实给slave节点增加一个新的标签,创建读Service的时候选择这个标签的容器就行了吧?

    作者回复: 这个事儿自动化能不能做?

    
     1
  • 侯操宇
    2018-10-11
    如果master和slave用两个StatefulSet的话,怎么来保证master和slave的启动顺序呢?

    作者回复: 两个statefulset 肯定需要你在外部控制了

    
     1
我们在线,来聊聊吧