Kubernetes是什么?
大概很多人对此都有疑问,不过在容器领域,Kubernetes却无人不晓。
阿里、字节跳动、腾讯、百度等中国互联网行业巨擘们,近年来都在深耕容器领域,而Kubernetes也是这些大厂未来的战略重心。
因此,若是你还不了解Kubernetes,这篇扫盲贴一定要收藏后认真看。
一、Kubernetes的前世今生
在《Kubernetes 基础:入门与安装配置》一课中,是这样描述Kubernetes的。
Kubernetes 是一个跨主机集群的、开源的容器调度平台,它可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。
它的名字源于希腊语,意为 “舵手” 或 “飞行员”,k8s 是通过将 8 个字母 “ubernete” 替换为 8 然后改成缩写,在中文中,k8s 的发音和 Kubernetes 的发音也比较接近。
Linux 基金会常务董事 Jim Zemlin 说:“Kubernetes 已经成为云计算时代的 Linux 操作系统。”
Kubernetes 是 Google Borg 项目的开源版本,Borg 是 Google 内部使用了十几年的非常有名的大规模集群管理系统,其原型图片如下所示:
因此,Kubernetes 构建于 Google 数十年经验,一大半来源于 Google 生产环境规模的经验,并结合了社区最佳的想法和实践。Kubernetes 的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为 Go 语言。
二、Kubernetes 成长历程及特点
Kubernetes 重要成长历程:
- 2014 年 6 月,Kubernetes 正式由 Google 开源
- 2015 年,Google 将 Kubernetes 捐赠给 Linux 基金会下属的 CNCF(Cloud Native Computing Foundation,云原生计算基金会)
- 2017 年,Kubernetes 战胜 Docker Swarm 和 Apache Mesos,成为容器管理与调度编排领域的首选平台和事实标准
Kubernetes 特点:
强大的容器编排能力
作为容器编排管理平台,拥有强大的容器编排能力。Kubernetes 与 Docker 共同发展并且深度集成了 Docker,因此适应容器的特点,比如容器组合、标签选择和服务发现等,可以满足企业级的需求。
轻量级
轻量级,对微服务架构有很好的支撑。
便携性
无论公有云、私有云、混合云还是多云架构都全面支持,可以随时随地地将系统整体进行“搬迁”。
无需改变配置文件就可以将系统从物理机迁移到公有云上,并且谷歌云(GCE)、华为云(CCE)、阿里云(ACK)和腾讯云(TKE)都支持 Kubernetes 集群。
三、使用 Kubernetes的 10 个理由
从生态圈的角度来看:
- Google 的业内最成熟的容器编排管理经验的输出
- 2017 年战胜 Docker Swarm 和 Apache Mesos,成为云原生应用唯一值得绑定的容器编排管理平台
- 传统云平台提供商的全面支持:Google k8s engine、Red Hat 的 OpenShift、Microsoft 的 Azure container service、IBM 的 cloud container service 等
有了 Kubernetes,你可以:
- 跨主机编排容器
- 更充分地利用硬件资源来最大化地满足企业应用的需求
- 控制与自动化应用的部署与升级
- 为有状态的应用程序挂载和添加存储器
- 线上扩展或裁剪容器化应用程序与它们的资源
- 声明式的容器管理,保证所部署的应用按照我们部署的方式运作
- 通过自动布局、自动重启、自动复制、自动伸缩实现应用的状态检查与自我修复
四、零基础入门Kubernetes
近期,实验楼推出了一系列的Kubernetes课程,难度各异,但我认为,最适合新人学习的课程是这门《Kubernetes 基础:入门与安装配置》
该课程为 Kubernetes 入门课程,将会从零开始带领大家一步一步深入学习 Kubernetes 相关知识。内容包括:Kubernetes 基础概念、微服务架构、部署实例、以及最常用的 YAML 语言格式。
你将学到:
课程内容:
实验环境:
本课程全部为云主机实验环境,Kubernetes 版本为 1.15,在环境中通过脚本执行命令即启动一个 3 节点的 Kubernetes 集群。
适合人群:
课程难度为简单,面向已经掌握 Linux 基础以及 Docker 基础,同时希望能够快速了解 Kubernetes 基础概念、进行单节点(多节点)安装部署、以及集群基本使用的同学。
Tips:
点击《Kubernetes 基础:入门与安装配置》,现在还有试学机会哦。
五、关于Kubernetes的补充阅读
还未熟悉Linux和Docker基础的同学,可以查看实验楼课程:
已经了解Kubernetes,并想深度学习的同学可以继续学习实验楼课程: