硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己

K8S实现了什么?

从架构设计层面,我们关注的可用性,伸缩性都可以结合k8s得到很好的解决,如果你想使用微服务架构,搭配k8s,真的是完美,再从部署运维层面,服务部署,服务监控,应用扩容和故障处理,k8s都提供了很好的解决方案。

具体来说,主要包括以下几点:

  1. 服务发现与调度
  2. 负载均衡
  3. 服务自愈
  4. 服务弹性扩容
  5. 横向扩容
  6. 存储端挂载

总而言之,k8s可以使我们应用的部署和运维更加方便。

过去几年,以 docker、kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 k8s 项目作为技术重心,试图“放长线钓大鱼”。

就说阿里吧,目前基本所有业务都跑在云上,其中有一半已迁移到自己定制 kubernetes 集群上。据说,今年计划完成 100% 基于 k8s 集群的业务部署。而服务网格这块儿,在阿里的一些部门(比如蚂蚁金服),已经有线上业务在用了。

这充分说明了容器在当今软件研发领域的地位。所以,掌握容器技术自然成为很多公司在招聘时的重要选项。

这几年K8S也列入了大厂面试必问的一项,比如:

1、K8s架构的组成是什么?
2、容器和主机部署应用的区别是什么?
3、为什么 kubernetes 不能固定 IP 地址?容器网络连不通,该如何 debug?
4、k8s 中 statefulSet 和 operator 到底什么区别?pv 和 pvc 又该怎么用?
5、请你说一下kubenetes针对pod资源对象的健康监测机制?
6、K8s中镜像的下载策略是什么?
7、Service这种资源对象的作用是什么?
8、描述一下pod的生命周期有哪些状态?

这些问题的答案和原理并不复杂。但对初学者来说,很难用一两句话就解释清楚。因为容器技术涉及操作系统、网络、存储、调度、分布式原理等等方方面面的知识,是个名副其实的全栈技术。

而其技术体系里那些“牵一发而动全身”的主线,比如 Linux 进程模型对容器本身的重要意义,“控制器”模式对整个 k8s 项目提纲挈领的作用等等,并不会详细展现在 docker 或 kubernetes 官方文档中,但偏偏就是它们,才是掌握容器技术体系的精髓所在

在这里分享一份文档,该文档将K8S分为理论和实践两个部分进行讲解,双管齐下,事半功倍,让我们来看看文档内容吧!

理论模块

理解集群控制器

当我们尝试去理解K8S集群工作原理的时候,控制器肯定是一个难点。这是因为控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但是,我们又不能绕过控制器,因为它是集群的“大脑”。

  • 控制器原理
  • 统一入口
  • 控制器
  • 控制器管理器
  • SharedInformer
  • ListWatcher
  • 服务控制器
  • 路由控制器
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第1张图片

集群网络详解

阿里云K8S集群网络目前有两种方案,一种是flannel方案,另外一种是基于calico和弹性网卡eni的terway方案。Terway和flannel类似,不同的地方在于,terway支持Pod弹性网卡,以及NetworkPolicy功能。

  • 集群网络搭建
  • 通信
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第2张图片

集群伸缩原理

阿里云K8S集群的一个重要特性,是集群的节点可以动态的增加或减少。有了这个特性,集群才能在计算资源不足的情况下扩容新的节点,同时也可以在资源利用率降低的时候,释放节点以节省费用。 这篇文章,我们讨论阿里云K8S集群扩容与缩容的实现原理。

  • 节点增加原理
  • 手动添加已有节点
  • 自动添加已有节点
  • 集群扩容
  • 自动伸缩
  • 节点减少原理
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第3张图片

认证与调度

在这节中,我们以一个简单的容器化web程序为例,着重分析了客户端怎么样通过Kubernetes集群API Server认证,以及容器应用怎么样被分派到合适节点这两件事情。

  • “关在笼子里”的程序
  • 双向数字证书验证
  • KubeConfig文件
  • Pod配置
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第4张图片

集群服务的三个要点和一种实现

  • K8S集群服务的本质是什么
  • 自带通信员
  • 把服务照进现实
  • 过滤器框架
  • 节点网络
  • 升级过滤器框架
  • 用自定义链实现服务的反向代理
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第5张图片

镜像拉取

  • 理解OAuth2.0协议
  • Docker扮演的角色
  • K8s实现的私有镜像自动拉取
  • 阿里云实现的Acr credential helper
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第6张图片

快速入手通道:以上的文档已整理成册,点击这里可获取全部内容

实践

读懂这一篇,集群节点不下线

  • 需要知道的Kubernetes知识
  • 什么是PLEG
  • 容器runtime
  • Docker Daemon调用栈分析
  • Containerd调用栈分析
  • 什么是Dbus
  • RunC请求Dbus
  • Systemd
  • Live Debugging
  • 问题修复
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第7张图片

节点下线姊妹篇

  • 问题现象
  • 止步不前的 PLEG
  • 无响应的 Terwayd
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第8张图片

我们为什么会删除不了集群的命名空间?

  • 从集群入口开始
  • Controller 在做什么?
  • API、Group、Version
  • Controller 为什么不能删除命名空间里的资源
  • 节点与 Pod 之间的通信
  • Route Controller 为什么不工作?
  • 集群节点访问云资源
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第9张图片

阿里云ACK产品安全组配置管理

  • 安全组在 ACK 产品中扮演的角色
  • 安全组与 ACK 集群网络
  • 怎么样管理 ACK 集群的安全组规则
  • 限制集群访问外网
  • IDC 与集群互访
  • 使用新的安全组管理节点
  • 典型问题与解决方案
  • 使用多个安全组管理集群节点
  • 限制集群访问公网或者运营级 NAT 保留地址
  • 容器组跨节点通信异常
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第10张图片

二分之一活的微服务

  • 代理与代理的生命周期管理
  • 就绪检查的实现
  • 控制面和数据面
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第11张图片

半夜两点Ca证书过期问题处理惨况总结

  • 不断重启的 Citadel
  • 一般意义上的证书验证
  • Citadel 证书体系
    硬核!阿里内部都在强推的K8S(kubernetes)学习指南,不吃透感觉都对不起我自己_第12张图片

以上就是这份文档的概况,一次搞懂6个核心原理吃透基础理论,学会6个典型问题的华丽操作,不管是架构师还是开发者,又或是运维,都能够从中学到不少。

快速入手通道:以上的文档已整理成册,点击这里可获取全部内容

整理不易,觉得有帮助的朋友可以帮忙一键三连支持一下博主~

你的支持,我的动力;祝各位前程似锦,offer不断!!!

你可能感兴趣的:(Java,java,kubernetes,k8s,阿里,程序员)