深入剖析 Kubernetes
张磊
Kubernetes 社区资深成员与项目维护者
112983 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
再谈开源与社区 (1讲)
结束语 (1讲)
深入剖析 Kubernetes
15
15
1.0x
00:00/00:00
登录|注册

16 | 编排其实很简单:谈谈“控制器”模型

你好,我是张磊。今天我和你分享的主题是:编排其实很简单之谈谈“控制器”模型。
在上一篇文章中,我和你详细介绍了 Pod 的用法,讲解了 Pod 这个 API 对象的各个字段。而接下来,我们就一起来看看“编排”这个 Kubernetes 项目最核心的功能吧。
实际上,你可能已经有所感悟:Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。
说得更形象些,“容器”镜像虽然好用,但是容器这样一个“沙盒”的概念,对于描述应用来说,还是太过简单了。这就好比,集装箱固然好用,但是如果它四面都光秃秃的,吊车还怎么把这个集装箱吊起来并摆放好呢?
所以,Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给集装箱四面安装了吊环,使得 Kubernetes 这架“吊车”,可以更轻松地操作它。
而 Kubernetes 操作这些“集装箱”的逻辑,都由控制器(Controller)完成。在前面的第 12 篇文章《牛刀小试:我的第一个容器化应用》中,我们曾经使用过 Deployment 这个最基本的控制器对象。
现在,我们一起来回顾一下这个名叫 nginx-deployment 的例子:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入剖析 Kubernetes》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(39)

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

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

    5
    445
  • uncleli
    相当于select和epoll的区别

    作者回复: 太专业啦

    6
    126
  • 小小笑儿
    deployment会创建rs,然后由rs创建pod,所以pod的owner应该是rs?

    作者回复: 明白人。

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

    作者回复: 基本正确。

    2
    39
  • Pixar
    有一个疑问没太弄清楚, 比如Deployment, 是我创建一个Deployment 就会生成一个对应的 Deployment-Controller 实例来管理该它 还是整个k8s系统只有一个 Deployement-Controller 来同一管理该系统的所有Deployment呢?

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

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

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

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

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

    5
    16
  • Vincen
    后面文章会讲watch机制吗?

    作者回复: 会的

    5
  • Spark
    老师,我是初学者,这个课程让我获益匪浅,但每次都有很多问题想问但无人解答。请问能不能建一个交流群,大家共同讨论学习。

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

    4
    2
  • 择动
    老师,明白人说明白之后,我想明白deployment的owner又是谁?

    作者回复: 这个字段可以为nil啊

    2
收起评论
显示
设置
留言
39
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部