ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

超详细,阿里内部都在用的K8S实战手册,看这一篇就够了

2021-12-23 21:32:04  阅读:341  来源: 互联网

标签:Kubernetes ACK 就够 手册 问题 集群 K8S 节点


一直关注云计算领域的人,必定知道Kubernetes的崛起。

如今,世界范围内的公有云巨头(谷歌、亚马逊、微软、华为云、阿里云等等)都在其传统的公共云服务之上提供托管的Kubernetes服务。而且云服务龙头AWS也终于落地,进入企业商用K8s软件市场,这让它成了可以通吃主流公私有云的唯一基础架构平台

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

信息来源:猎聘网

可以看出,不少年薪30w及以上的运维岗位,都要求会K8s技术了。K8s 凭借在扩展性、管理、大数据分析、网络场景、兼容性、负载均衡、灰度升级、失败冗余、容灾恢复、 DevOps 等方面的优势,受到不少企业的青睐。

今天给大家分享一份阿里内部流传的《Kubernetes实战手册》  ,该文档将K8S分为理论和实践两个部分进行讲解,双管齐下,事半功倍,让你能够迅速搞懂核心原理,吃透基础理论,一次学会并开始使用K8s!

【资料领取见文末!!】

【资料领取见文末!!】

理论模块

理解集群控制器

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

这个章节,我们通过分析一个简易冰箱的设计过程,来深入理解集群控制器的产生,功能以及实现方法。

  • 控制器原理
  • 统一入口
  • 控制器
  • 控制器管理器
  • SharedInformer
  • ListWatcher
  • 服务控制器
  • 路由控制器

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

集群网络详解

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

这个章节,我们以 flannel 为例,深入分析阿里云 K8S 集群网络的实现方法。我会从两个角度去分析,一个是网络的搭建过程,另外一个是基于网络的通信。我们的讨论基于当前的 1.12.6 版本。

  • 集群网络搭建
  • 通信

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

集群伸缩原理

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

这一章节,我们讨论阿里云 K8S 集群扩容与缩容的实现原理。理解实现原理,在遇到问题的时候,我们就可以高效地排查并定位原因。我们的讨论基于当前的1.12.6 版本。

  • 节点增加原理
  • 手动添加已有节点
  • 自动添加已有节点
  • 集群扩容
  • 自动伸缩
  • 节点减少原理

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

认证与调度

不知道大家有没有意识到一个现实,就是大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了。现在我们上微博、或者网购,操作的其实不是眼前这台设备,而是一个又一个集群。

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

通常,这样的集群拥有成百上千个节点,每个节点都是一台物理机或虚拟机。集群一般远离用户,坐落在数据中心。为了让这些节点互相协作,对外提供一致且高效的服务,集群需要操作系统。Kubernetes 就是这样的操作系统。

比较 Kubernetes 和单机操作系统,Kubernetes 相当于内核,它负责集群软硬件资源管理,并对外提供统一的入口,用户可以通过这个入口来使用集群,和集群沟通。

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

而运行在集群之上的程序,与普通程序有很大的不同。这样的程序,是“关在笼子里”的程序。它们从被制作,到被部署,再到被使用,都不寻常。我们只有深挖根源,才能理解其本质。

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

  • “关在笼子里”的程序
  • 双向数字证书验证
  • KubeConfig文件
  • Pod配置

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

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

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

这体现在,对于新手来说,ping 不通服务的 IP 地址这样基础的问题,都很难理解;而就算对经验很丰富的工程师来说,看懂服务相关的 iptables 配置,也是相当的挑战。

这一章节,将深入解释一下 K8S 集群服务的原理与实现,便于大家理解。

  • K8S集群服务的本质是什么
  • 自带通信员
  • 把服务照进现实
  • 过滤器框架
  • 节点网络
  • 升级过滤器框架
  • 用自定义链实现服务的反向代理

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

镜像拉取

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

  • 理解OAuth2.0协议
  • Docker扮演的角色
  • K8s实现的私有镜像自动拉取
  • 阿里云实现的Acr credential helper

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

实践

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

排查完全陌生的问题,完全不熟悉的系统组件,是售后工程师的一大工作乐趣,当然也是挑战。今天借这个章节,跟大家分析一例这样的问题。排查过程中,需要理解一些自己完全陌生的组件,比如 systemd 和 dbus。但是排查问题的思路和方法基本上还是可以复用了,希望对大家有所帮助。

  • 需要知道的Kubernetes知识
  • 什么是PLEG
  • 容器runtime
  • Docker Daemon调用栈分析
  • Containerd调用栈分析
  • 什么是Dbus
  • RunC请求Dbus
  • Systemd
  • Live Debugging
  • 问题修复

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

节点下线姊妹篇

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

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

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

  • 问题现象
  • 止步不前的 PLEG
  • 无响应的 Terwayd

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

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

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

这样的问题就像冰山,隐藏在它们背后的复杂逻辑,往往超过我们的预想。

  • 从集群入口开始
  • Controller 在做什么?
  • API、Group、Version
  • Controller 为什么不能删除命名空间里的资源
  • 节点与 Pod 之间的通信
  • Route Controller 为什么不工作?
  • 集群节点访问云资源

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

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

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

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

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

  • 安全组在 ACK 产品中扮演的角色
  • 安全组与 ACK 集群网络
  • 怎么样管理 ACK 集群的安全组规则
  • 限制集群访问外网
  • IDC 与集群互访
  • 使用新的安全组管理节点
  • 典型问题与解决方案
  • 使用多个安全组管理集群节点
  • 限制集群访问公网或者运营级 NAT 保留地址
  • 容器组跨节点通信异常

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

二分之一活的微服务

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

Istio 的现状是,聊的人很多,用的人其实很少。所以导致我们能看到的文章,讲道理的很多,讲实际踩坑经验的极少。

阿里云售后团队作为一线踩坑团队,分享问题排查经验,我们责无旁贷。这一章节,我就跟大家聊一个简单 Istio 问题的排查过程,权当抛砖。

  • 代理与代理的生命周期管理
  • 就绪检查的实现
  • 控制面和数据面

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

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

11 月 22 号半夜 2 点,被值班同学的电话打醒。了解下来,大概情况是,客户某一台 K8s 集群节点重启之后,他再也无法创建 Istio 虚拟服务和 Pod 了。

一来对 Istio 还不是那么熟悉,二来时间可能有点晚,脑子还在懵圈中,本来一个应该比较轻松解决掉的问题,花了几十分钟看代码,处理的惨不忍睹。最终还是在某位大神帮助下,解决了问题。

鉴于此问题,以及相关报错,在网上找不到对应的文章,所以这里分享下这个问题,避免后来的同学,在同样的地方踩坑。另外谨以此篇致敬工作中遇到过的大神!

  • 不断重启的 Citadel
  • 一般意义上的证书验证
  • Citadel 证书体系

超详细!阿里内部都在用的K8S实战手册,新手看这一篇就够了

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

需要这份资料的小伙伴麻烦点赞转发关注后,私信小编666免费获取

标签:Kubernetes,ACK,就够,手册,问题,集群,K8S,节点
来源: https://blog.csdn.net/zybb166/article/details/122116865

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有