阿里P8说:掌控了这份K8s源码解析就等于掌控了云计算的未来
很多人都在说掌控了Kubernetes等于掌控了云计算的未来,这是为什么呢?在过去的几年里,Kubernetes 发展飞速,社区也随之壮大,截至本书截稿时,Kubernetes项目在 GitHub 上已有接近6万个 Star,拥有8万多次提交量。
Kubernetes系统已经越来越成熟,很多企业对它的应用从试水阶段逐步走向大规模落地阶段,但随着Kubernetes系统越来越稳定、成熟,代码的迭代能力逐渐变弱了。底层代码的成熟和健壮能够支撑更大的上层应用,这便让更多优秀的生态应用围绕着Kubernetes系统各自发展。这得益于Kubernetes系统的高扩展性,Kubernetes越来越像一个系统核心,对外提供通用接口,实现了众多标准化。另外,Kubernetes得到了许多云服务提供商(Cloud Provider)的支持,例如Google、Cisco、VMware、Microsoft、Amazon及许多其他大型公司。
本书主要分析了Kubernctes核心功能的实现原理,是一本帮助读者了解Kubernetes 架构设计及内部原理实现的书。由于Kubernetes 代码量较大,源码不容易理解,所以本书将梳理相关知识点,帮助读者快速学习。
主要内容:
第1章Kubernetes架构:主要介绍了Kubernetes架构的核心组件,以及每个核心组件在架构中的作用;
Kubernetes是 Google 公司开源的一个容器(Container)编排与调度管理框架,该项目最初是 Google 内部面向容器的集群管理系统,而现在是由Cloud NativeComputing Foundation(CNCF,云原生计算基金会)托管的开源平台,由Google、AWS、Microsoft、IBM、Intel、Cisco 和Red Hat等主要参与者支持,其目标是通过创建一组新的通用容器技术来推进云原生技术和服务的开发。作为领先的容器编排引擎,Kubernetes提供了一个抽象层,使其可以在物理或虚拟环境中部署容器应用程序,提供以容器为中心的基础架构。
Kubernetes系统拥有一个庞大而活跃的开发人员社区,这使其成为历史上增长最快的开源项目之一。它是GitHub上排名前10的项目,也是Go语言最大的开源项目之一,Kubernetes也被称为K8s,是通过将8个字母ubernete替换为8而形成的缩写。
Kubernetes系统具有如下特点。
可移植:支持公有云、私有云、混合云、多重云(Multi-cloud)。
可扩展:模块化、插件化、可挂载、可组合。
自动化:自动部署、自动重启、自动复制、自动伸缩/扩展。
第2章Kubernetes构建过程:主要介绍了Kubernetes构建过程中的源码实现;
第3章Kubernetez核心数据结构:主要介绍了Kubernetes 的核心数据结构定义及围绕资源展开的核心功能;
理解Kubernetes核心数据结构,在阅读源码时可以事半功倍并能够深刻理解Kubernetes核心设计。Kubernetes核心数据结构非常关键,建议读者在阅读Kubernetes核心组件的相关内容之前优先阅读本章。
Kubernetes是一个完全以资源为中心的系统,所以本章围绕资源展开,详解Kubernetes核心数据结构。
第4章kubectl命令行交互:主要介绍了kubectl 命令行交互工具的实现机制;
第5章client-go编程式交互:主要介绍了client-go 编程式交互工具的实现机制;
Kubernetes系统使用client-go 作为Go语言的官方编程式交互客户端库,提供对Kubernetes API Server服务的交互访问。Kubernetes的源码中已经集成了client-go的源码,无须单独下载。client-go源码路径为vendor/k8s.io/client-go。
开发者常使用client-go基于Kubernetes做二次开发,所以client-go是开发者应熟练掌握的必会技能。
第6章Etcd存储核心实现:主要介绍了Etcd存储的核心实现:
第7章kube-apiserver核心实现:主要介绍了kube-apiserver组件的核心实现;
kube-apiserver组件负责将Kubernetes的“资源组、资源版本、资源”以RESTful风格的形式对外暴露并提供服务。该组件是Kubernetes系统集群中所有组件沟通的桥梁,例如在创建Pod资源对象时,所有组件都需要与kube-apiserver组件进行交互。Kubernetes Pod资源对象创建流程如图7-1所示。
第8章kube-scheduler核心实现:主要介绍了kube-scheduler组件的核心实现。
需要获取这份《Kubernetes源码剖析》》的小伙伴可以直接转发+关注后私信(学习)即可免费获取!