一、前言

  • 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 配置,也是相当的挑战。

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

​第六部分:镜像自动拉取

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

​实践篇

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

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

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

如果你对学习Kubernetes存在以上问题或者无从下手,这份手册可以很好地帮助到你

K8s项目实战笔记 图文并茂带你深度解析Kubernetes相关推荐

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

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

  2. 图文并茂——从Kubernetes的诞生背景到什么是Kubernetes, 带你深度解析Kubernetes

    在云原生技术发展的浪潮之中,Kubernetes作为容器编排领域的事实标准和云原生领域的关键项目,其诞生与完善有着对应的技术历史背景,了解这个过程,对于系统的理解Kubernetes的核心思想.架构设 ...

  3. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  4. 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!

    史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!! 部署jar 包方式: https://blog.csdn.net/weixin_45821811/article/d ...

  5. 1.vue项目实战笔记(已完结)

    vue项目实战笔记 目标 目录 1.项目概述 1.1电商项目基本业务概述 1.2电商后台管理系统的功能 1.3电商后台管理系统的开发模式(前后端分离) 1.4电商后台管理系统的技术选型 1.前端项目技 ...

  6. 开发android项目实战,Android 项目实战:手机安全卫士开发案例解析

    Android 项目实战:手机安全卫士开发案例解析 作 者:王家林,王家俊,王家虎 出版时间:2013 丛编项:移动互联应用开发系列 内容简介 本书通过对一款手机安全卫士开发案例的详细解析,讲解了一个 ...

  7. 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)

    前言 还剩下两个月就到了金九银十,一般来说,秋招的含金量明显是高于春招的. 那么如何准备即将到来的面试热潮呢?运筹帷幄之后,决胜千里之外! 坚决不打毫无准备的仗是小编的原则:不论是笔试还是面试都是有章 ...

  8. Vue全家桶-项目实战笔记

    写在前面 这是我跟着黑马程序员的Vue全家桶-项目实战教程写的一篇笔记,主要记录思路,内容不完整,这里只写到了用户列表管理,进来的友友们可以根据目录,看是否有自己需要的功能 这篇笔记记录的是基础vue ...

  9. Java Web项目源代码|CRM客户关系管理系统项目实战(Struts2+Spring+Hibernate)解析+源代码+教程

    客户关系管理 (CRM) CRM一般指客户关系管理 客户关系管理是指企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方式,向客户提供创新 ...

最新文章

  1. MSM--Memcached_Session_Manager介绍及使用
  2. Mysql删除语句优化_MySQL性能优化之常用SQL语句优化
  3. P1460 健康的荷斯坦奶牛 Healthy Holsteins (简单的dfs)
  4. 从如何优化SQL入手,提高数据仓库的ETL效率
  5. 如何通过反射将字符串转换为类
  6. Mysql 大量数据快速导出
  7. Laravel 不权威导航
  8. select系统调用
  9. 温州商学院计算机二级office考试时间,全国计算机二级最新报名通知,注意报名时间,千万别错过!...
  10. 数据库的主从复制原理(超级详细)
  11. 计算机网络系列选择题
  12. Wordpress 网站设计入门 联系表单设计
  13. 【调剂】上海科技大学信息学院2023年硕士招生调剂公告
  14. ArcGIS 制图搭配:文字、比例尺等大小
  15. 创智汇集,汉韵流芳!大创智国风汉服赏与您相约十月
  16. crt设置自动保存日志的方法
  17. 【淘宝】图片放大 代码
  18. 【问题解决】ftp“无法获得目录列表”错误解决办法
  19. 【图像检测】手指指尖的图像采集与检测附matlab代码
  20. 西门子S7-1500PLC大型程序,各种FB块PTO控制20多个轴

热门文章

  1. Git for windows下载、安装配置并从GitHub Clone项目
  2. RAS使用拨号网络拨号的类
  3. C# MessageBox.Show 用法
  4. PaperFree-论文查重
  5. 有哪些数据恢复软件?13个好用的数据恢复工具分享
  6. java高校人员信息管理系统
  7. MVP模式请求网络数据
  8. jq jqprint 设置页脚_jQuery 插件 jqprint 实现浏览器页面打印和设置页眉页脚
  9. Nature重磅:软硬分离、图灵完备,清华首次提出“类脑计算完备性”
  10. 无法打开源文件 ctype.h和.exe 进行写入