极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:50
登录|注册

如何轻松学习Kubernetes?

讲述:初明明大小:5.34M时长:05:50
你好,欢迎收听极客视点。
Kubernetes 是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。很多人认为它门槛高、不易学习。最近阿里巴巴技术专家声东在公众号“阿里巴巴云原生”阐述了 Kubernetes 的学习难点,同时根据自己的经验给出一套学习方法,供你参考。

Kubernetes 学习难点

总的来说,Kubernetes 之所以门槛较高、难以学习,是出于三个原因。
一是因为它的技术栈非常深,包括内核、虚拟化、容器、软件定义网络 SDN、存储、安全、可信计算等。
二是因为 Kubernetes 在云环境的实现会牵扯到非常多的云产品,比如在阿里云上,Kubernetes 集群用到了 ECS 云服务器、VPC 虚拟网络、负载均衡、安全组、日志服务、云监控、中间件、弹性伸缩等大量云产品。
三是因为 Kubernetes 是一个通用的计算平台,它的适用边界广泛,比如数据库、IoT、机器学习、边缘计算、流计算、基因计算等。

了解、动手、思考

学习 Kubernetes,你需要从了解、动手、思考这三个方面着手。
首先,了解技术的演进史及其背后所解决的问题,还要了解技术全景图。对 Kubernetes 来说,你需要了解整个云原生技术栈,清楚 Kubernetes 在整个技术栈中所处的位置。
其次,学习 Kubernetes 技术,动手实践是非常关键的。很多工程师不会深入研究技术细节,遇到问题后先去浏览器搜索,如果搜不到答案,在不理解技术细节的情况下就直接开工单了。这样是很难深入理解一个技术的。
最后就是怎么去思考,怎么去总结了。你需要在理解技术细节之后,不断地问自己,细节的背后,有没有更本质的东西。你要把复杂的细节简单化,找出其中的规律。
下面用一个简单的例子来解释“了解、动手、思考”这套方法。
例:为什么删除不掉命名空间
命名空间是 Kubernetes 集群的一个收纳盒机制,如上图所示,这个盒子就是命名空间,它收纳了橡皮和铅笔。
命名空间可以被创建或者删除。你可能经常会遇到不能删除命名空间的问题,这时如果你完全不知道怎么排查,就需要了解它,并在过程中动手实践,深入研究问题。
第一步你可能会研究一下 API Server 是怎么处理这个删除操作的,因为 API Server 就是集群的管理入口。
API Server 本身是一个应用,你可以通过提升这个应用的日志级别,深入理解它的操作流程。在这个问题中,你会发现,API Server 只收到删除命令,没有其他信息。
你需要理解命名空间的删除过程,用户在删除命名空间的时候,其实命名空间并不会被直接删除掉,而是变为“删除中”的状态,这时命名空间控制器就会看到这个状态。
为了理解命名空间控制器的行为,你也可以把控制器的日志级别提高,查看详细的日志。你会发现控制器正在尝试获取所有的 API 分组。
API 分组是什么?为什么在删除命名空间时,控制器会去获取 API 分组?
首先,API 分组就是集群 API 的分类机制,比如网络相关的 API 就在 Networking 这个组里,而通过网络 API 分组创建出来的资源就属于这个组。
那为什么命名空间控制器会去获取 API 分组呢?这是因为在删除命名空间时,控制器需要删除命名空间里的所有资源。这个操作不像你删除文件夹一样,会把里边的文件都一起删掉。
命名空间收纳了资源,实际上是这些资源用类似索引的机制,指向了这个命名空间。集群只有遍历所有的 API 分组,找出指向这个命名空间的所有资源,才能逐个把它们删除掉。
而遍历 API 组这个操作,会使得集群的 API Server 和它的扩展进行通信。这是因为 API Server 的扩展,也可以实现一部分 API 分组。所以想知道被删除的命名空间里是不是有包括这个扩展定义的资源,API Server 就必须和扩展通信。
到这一步之后,删除资源的问题就变成了网络问题,也就是 API Server 和它的扩展之间通信的问题。
阿里云的 Kubernetes 集群,是在 VPC 网络,也就是虚拟局域网上创建的。默认情况下,VPC 只认识 VPC 网段的地址,而集群中的容器,一般会使用和 VPC 不同的网段。比如 VPC 使用 172 网段,那容器可能就使用 192 网段。通过在 VPC 的路由表里,增加容器网段的路由项,可以让容器使用 VPC 网络进行通信。
路由项是在节点加入集群的时候,由路由控制器来添加的。路由控制器在发现有新节点加入集群之后,会立刻做出反应,给路由表里增加一条路由项。这个操作也是对 VPC 的一次操作,需要使用一定的授权。授权是以 RAM 角色的方式绑定到路由控制器所在的集群节点上,而这个 RAM 角色,正常会有一系列的授权规则。
最后,你有可能通过检查发现是用户修改了授权规则,所以导致了这个问题。
以上就是今天的内容,关于更多 Kubernetes 的学习方法,你也可以在极客时间专栏《深入剖析 Kubernetes》中获得。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
76
沉浸
阅读
分享
手机端
快捷键
回顶部