一、前言

  • Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性。【Kubernetes是容器集群管理工具

文章内容可以过多,限于文章篇幅,没办法为大家展示全部内容,有感兴趣想要获取学习的朋友,后台 【笔记】,获取免费下载方式。

理论篇

第一部分:理解控制器

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

第二部分:网络详解

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

第三部分:伸缩原理

阿里云 Kubernetes 集群的一个重要特性,是集群的节点可以动态地增加或减少。有了这个特性,集群才能在计算资源不足的情况下扩容新的节点,同时也可以在资源利用率降低的时候,释放放节点以节省费用。

第四部分:认证与调度

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

在分析过程中,我们弃用了一些便利的工具,比如 kubectl,或者控制台。我们用了一些更接近底层的小实验,比如拆解 KubeConfig 文件,再比如分析调度器日志来分析认证和调度算法的运作原理。希望这些能对大家进一步理解 Kubernetes 集群有所帮助。

第五部分:服务原理

理解 Kubernetes 集群服务的概念,是比较不容易的一件事情。尤其是当我们基于似是而非的理解,去排查服务相关问题的时候,会非常不顺利。

这体现在,对于新手来说,ping 不同服务的 IP 地址这样基础的问题,都很难理解;而就算对方经验很丰富的工程师来说,看懂服务相关的 iptables 配置,也是相当的挑战。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

这部分来深入解释一下 Kubernetes 集群服务的原理与实现,便于大家理解。

第六部分:镜像自动拉取

相比 Kubernetes 集群的其他功能,私有镜像的自动拉取,看起来可能是比较简单的。而镜像拉取失败,大多数情况下都和权限有关。所以,在处理相关问题的时候,我们往往会轻松地说:这问题很简单,肯定是权限问题。但实际的情况是,我们经常为一个问题,花了多个人的时间却找不到原因。这主要还是我们对镜像拉取,特别是私有镜像自动拉取的原理理解不深。这篇文章,作者将带领大家讨论下相关原理。

实践篇

第七部分:节点就绪的问题之一

排查完全陌生的问题,完全不熟悉的系统组件,是售后工程师的一大工作乐趣,当然也是挑战。今天借这篇文章,跟大家分析一例这样的问题。排查过程中,需要理解一些自己完全陌生的组件,比如 systemd 和 dbus。

第八部分:节点就绪问题之二

之前分享过一例集群节点 NotReady 的问题。在那个问题中,我们的排查路径,从 Kubernetes 集群到容器运行时,再到 sdbus 和 systemd,不可谓不复杂。那个问题目前已经在解决 systemd 中做了修复,所以以前基本上能看到那个问题的几率是越来越低了。

但是,集群节点就绪问题还是有的,然而原因却有所不同。

这部分跟大家分享另外一例集群节点 NotReady 的问题。这个问题和之前那个问题相比,查路径完全不同。作为姊妹篇分享给大家。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upumWIHX-1653730277239)(https://upload-images.jianshu.io/upload_images/25002343-8a3cab364870d293.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

第九部分:命名空间删除问题

阿里云售后技术团队的同学,每天都在处理各式各样千奇百怪的线上问题。常见的有,网络连接失败,服务器宕机,性能不达标,请求响应慢等情况。但如果要评选,什么问题看起来微不足道事实上却足以让人绞尽脑汁,我相信答案肯定是“删不掉”的问题。比如文件删不掉,进程结束不掉,驱动卸载不了等。这样的问题就像冰山,隐藏在它们背后的复杂逻辑,往往超过我们的预想。

第十部分:集群安全组配置管理

阿里云容器产品 Kubernetes 版本,即 ACK,基于阿里云 IaaS 层云资源创建。资源包括云服务器 ECS,专有网络 VPC,弹性伸缩 ESS 等。以这些资源为基础,ACK 产品实现了 Kubernetes 集群的节点,网络,自动伸缩等组件和功能。

一般而言,用户对 ACK 产品有很大的管理权限,这包括集群扩容,创建服务等。与此同时,用户可以绕圈过去 ACK 产品,对集群底层资源进行修改。如释放 ECS,删除 SLB。如果不能理清背后的影响,这样的修改会损坏集群功能。

这部分会以 ACK 产品安全组的配置管理为核心,深入讨论安全组在集群中扮演的角色,安全组在网络链路中所处的位置,以及非法修改安全组会产生的各类问题。文章内容适用于专有集群和托管集群。

第十一部分:二分之一活的微服务

Istio is the future!基本上,我相信对云原生技术趋势有些微判断的同学,都会有这个感悟。其背后的逻辑其实是比较简单的:当容器集群,特别是 Kubernetes 成为事实上的标准之后,应用必然会不断地复杂化,服务治理肯定会成为强需求

第十二部分:服务网格证书过期问题

客户某一台 Kubernetes 集群节点重启之后,他再也无法创建 Istio 虚拟服务和 Pod 了。一来对 Istio 还不是那么熟悉,二来时间可能有点晚,脑子还在懵圈中,本来一个应该比较轻松解决掉的问题,花了几十分钟看代码,处理的惨不忍睹。最终还是在某位大神的帮助下,解决了问题。鉴于此问题,以及相关报错,在网上找不到对应的文章,所以这里分享下这个问题,避免后来的同学,在同样的地方踩坑。另外谨以此篇致敬工作中遇到过的大神!

总结

也许你在学习和实践上也有过这样的难点与困惑:

网上检索大量资料来学习,往往会一头雾水,找不到正确的切入点;而官方文档像工具书一样晦涩难懂,往往学起来不得其法,事倍功半。

大部分图书更为体系化,但重理论多于实践,而实践经验才是帮助你在工作中快速上手,真正落地到自己的项目中的助推剂。

自己“硬啃”Kubernetes源码,但这注定是一条非常非常非常难的路。别问我为什么知道,因为我就是这么死磕代码过来的。

如果你对学习Kubernetes存在以上问题或者无从下手,这份手册可以很好地帮助到你,有需要的话麻烦在我主页回复【笔记】即可获取!

阿里P8架构师力荐K8s项目实战笔记 图文并茂带你深度解析Kubernetes相关推荐

  1. K8s项目实战笔记 图文并茂带你深度解析Kubernetes

    一.前言 Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署.自动扩缩容.维护等功能.它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案.在Doc ...

  2. 阿里P8架构师手写12W字“Java并发手册”带你横扫全网

    序言 很多同学学习Java并发一头扎进源码,最后头破血流,无功而返.横看成岭侧成峰,远近高低各不同.学习要始终从不同的视角来看待问题.学习并发亦是如此,需要通过理论远看轮廓,然后通过源码近看明细. 今 ...

  3. 看了阿里P8架构师的工资单,我决定死磕“微服务”架构!

    前段时间一位阿里p8架构师朋友来做技术交流,我不小心看到他手机里的工资单,我当时沉默了很久.他是微服务架构方面的专家,技术钻研得很深,当生产上出现微服务的问题,他都要第一时间去解决. 很多企业常常面临 ...

  4. 从普通JAVA程序员到阿里P8架构师,他用了六年

    工作年限:8 年服务公司:4 家(含四大门户中的两家)最近职业:Java 架构师职场关键词:社交平台.高并发系统架构设计.技术团队管理.多款从零到一的产品城市! 六年间,这位职人呆过四大门户中的两家, ...

  5. 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景

    什么是 Zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如: 统一命名服务 状态同步服务 集群 ...

  6. 阿里P8架构师谈:微服务Dubbo和SpringCloud架构设计、优劣势比较

    本文主要围绕微服务的技术选型.通讯协议.服务依赖模式.开始模式.运行模式等几方面来综合比较Dubbo和Spring Cloud 这2种开发框架.架构师可以根据公司的技术实力并结合项目的特点来选择某个合 ...

  7. 阿里P8架构师谈:MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

    NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻.在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数 ...

  8. 阿里P8架构师谈:开源搜索引擎Lucene、Solr、Sphinx等优劣势比较

    开源搜索引擎分类 1.Lucene系搜索引擎,java开发,包括: Lucene Solr Elasticsearch Katta.Compass等都是基于Lucene封装. 你可以想象Lucene系 ...

  9. 一名年薪百万阿里P8架构师写给Java程序员一些建议(架构师必备)

    阿里P8架构师-Peter 毕业于海南大学,曾就职于阿里.苏宁易购等一线互联公司,十余年Java从业经验,系统架构师及微服务之先驱,JEECG急速开发框架的设计与布道者.重点关注微服务设计与编排.高并 ...

最新文章

  1. 使数组中奇数位于偶数前面
  2. 基于SSM实现垃圾分类信息管理系统
  3. 优化算法optimization:AdaDelta
  4. 20135203齐岳 信息安全系统设计基础第十三周学习总结
  5. C语言程序练习-L1-023 输出GPLT (20分)
  6. laravel允许所有网站进行跨域操作
  7. C语言 字符串的声明与使用
  8. UVA401 ​​​​​​​Palindromes【字符串】
  9. mint-ui之toast使用(messagebox,indicator同理)
  10. java反射怎么获取结构体_java反射-使用反射获取类的所有信息
  11. 传文件 华为云桌面_怎么避免亚马逊账号关联(二)?阿里云华为云ECS远程桌面教程...
  12. linux上openmp测试
  13. 从哪查找当前程序所有可用的环境变量?
  14. python合并工作簿所有内容_使用Python将多个工作簿合并为一个xlsx工作簿
  15. 使用fiddle进行苹果手机app抓包教程
  16. A3NCF: An Adaptive Aspect Attention Model for Rating Prediction
  17. web网页设计——体育气步枪射击主题(5页面)带图片轮播特效(HTML+CSS) ~学生网页设计作业源码
  18. 百度地图-新手入门教程
  19. 【Android Studio】Android Studio 搭建开发环境(Linux Ubuntu篇)
  20. HNUST 计算机组成原理课设

热门文章

  1. tuple在python中什么意思_在Python中,*tuple和**dict是什么意思?
  2. android 自定义分辨率,Moonlight Android端自定义分辨率,解决黑边问题
  3. 100Audio和Asset Store游戏音乐素材对比
  4. 深度解读基于commons-compress解压文件——7z与常规解压
  5. 【Java】【Flume】Flume-NG源代码分析的启动过程(两)
  6. 感知机与多层网络,解决异或问题可视化
  7. java实现乘法口诀表
  8. exfat安装linux系统,在CentOS 7系统上安装exFAT驱动器/启用exFAT支持的方法
  9. Headless Services
  10. vuex总结(四)——mutations