读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
更多笔记分享
-
为什么 kubernetes 不能固定 IP 地址?容器网络连不通,该如何 debug?
-
k8s 中 statefulSet 和 operator 到底什么区别?pv 和 pvc 又该怎么用?
这些问题的答案和原理并不复杂。但对初学者来说,很难用一两句话就解释清楚。因为容器技术涉及操作系统、网络、存储、调度、分布式原理等等方方面面的知识,是个名副其实的全栈技术。
而其技术体系里那些“牵一发而动全身”的主线,比如 Linux 进程模型对容器本身的重要意义,“控制器”模式对整个 k8s 项目提纲挈领的作用等等,并不会详细展现在 docker 或 kubernetes 官方文档中,但偏偏就是它们,才是掌握容器技术体系的精髓所在。
在这里分享我偶然间得到的一份文档,该文档将K8S分为理论和实践两个部分进行讲解,双管齐下,事半功倍,让我们来看看文档内容
=======================================================================
理解集群控制器
基本上来说,K8S集群的控制器,其实扮演着集群大脑的角色。有了控制器,K8S集群才有机会摆脱机械和被动,变成一个自动、智能、有大用的系统。
-
控制器原理
-
统一入口
-
控制器
-
控制器管理器
-
SharedInformer
-
ListWatcher
-
服务控制器
-
路由控制器
集群网络详解
我们主要通过网络搭建和通信两个角度去分析K8S集群网络。其中网络搭建包括初始阶段,集群阶段,节点阶段以及Pod阶段,这么分类有助于我们理解这些复杂的配置。而理解了各个配置,集群通信原理就比较容易理解了。
-
集群网络搭建
-
通信
集群伸缩原理
总体上来说,K8S集群节点的增加与减少,主要涉及四个组件,分别是Cluster Autoscaler,ESS, 管控以及节点本身(准备或清理)。根据场景不同,我们需要排查不同的组件。其中Cluster Autoscaler是一个普通的Pod,其日志的获取和其他Pod无异;ESS弹性伸缩有其专门的控制台,我们可以在控制台排查其伸缩配置、伸缩规则等相关子实例日志和状态;而管控的日志,可以通过查看日志功能来查看;最后,对于节点的准备与清理,其实就是排查对应的脚本的执行过程。
-
节点增加原理
-
手动添加已有节点
-
自动添加已有节点
-
集群扩容
-
自动伸缩
-
节点减少原理
认证与调度
在这节中,我们以一个简单的容器化web程序为例,着重分析了客户端怎么样通过Kubernetes集群API Server认证,以及容器应用怎么样被分派到合适节点这两件事情。
-
“关在笼子里”的程序
-
双向数字证书验证
-
KubeConfig文件
-
Pod配置
集群服务的三个要点和一种实现
-
K8S集群服务的本质是什么
-
自带通信员
-
把服务照进现实
-
过滤器框架
-
节点网络
-
升级过滤器框架
-
用自定义链实现服务的反向代理
镜像拉取
-
理解OAuth2.0协议
-
Docker扮演的角色
-
K8s实现的私有镜像自动拉取
-
阿里云实现的Acr credential helper
=====================================================================
读懂这一篇,集群节点不下线
-
需要知道的Kubernetes知识
-
什么是PLEG
-
容器runtime
-
Docker Daemon调用栈分析
-
Containerd调用栈分析
-
什么是Dbus
-
RunC请求Dbus
-
Systemd
-
Live Debugging
-
问题修复
节点下线姊妹篇
- 问题现象
最后
针对以上面试题,小编已经把面试题+答案整理好了
面试专题
除了以上面试题+答案,小编同时还整理了微服务相关的实战文档也可以分享给大家学习
存中…(img-HDofuA3p-1715703816114)]