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基础的同学,可以查看实验楼课程:

《Linux 基础入门》(免费)

《动手实战学 Docker》

已经了解Kubernetes,并想深度学习的同学可以继续学习实验楼课程:

《Kubernetes 进阶(一):Pod 与 Service》

《Kubernetes 进阶(二):控制器、存储与网络》

《Kubernetes 进阶(三):Helm、集群安全、日志与监控》

零基础入门 Kubernetes,你需要知道这些的更多相关文章

  1. 从零基础入门JavaScript(1)

    从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了j ...

  2. 函数:我的地盘听我的 - 零基础入门学习Python019

    函数:我的地盘听我的 让编程改变世界 Change the world by program 函数与过程 在小甲鱼另一个实践性超强的编程视频教学<零基础入门学习Delphi>中,我们谈到了 ...

  3. Cloudera Manager、CDH零基础入门、线路指导 http://www.aboutyun.com/thread-9219-1-1.html (出处: about云开发)

    Cloudera Manager.CDH零基础入门.线路指导http://www.aboutyun.com/thread-9219-1-1.html(出处: about云开发) 问题导读:1.什么是c ...

  4. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  5. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  6. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  7. 【JAVA零基础入门系列】Day6 Java字符串

    字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...

  8. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  9. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

随机推荐

  1. H5浏览器强制手机横屏

    H5强制手机横屏 1. 通过screen.orientation可以定义手机屏幕的方向,但是lock()方法仅在浏览器已经通过requestFullscreen()切换到全屏模式时起作用,例:强制手机 ...

  2. 5分钟看懂系列:HTTP缓存机制详解

    原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! 什么是HTTP缓存 HTTP 缓存可以说是HTTP性能优化中简单高效的一种优化方式了,缓存是一种保存资源副本并在下次请求时直接使 ...

  3. 从零开始学习MySQL全文索引

    目录 一.为什么要用全文索引 二.什么是全文索引 三.如何创建全文索引 四.创建测试数据 五.查询-使用自然语言模式 六.查询-使用布尔模式(强大的语法) 语法 示例 七.查询-使用扩展模式 八.注意 ...

  4. 死磕Lambda表达式(一):初识Lambda

    弱小和无知不是生存的障碍,傲慢才是.--<三体> 什么是Lambda表达式 Lambda表达式是表示可传递匿名函数的一种简洁方式,Lambda表达式没有名称,但是有参数列表.函数主体.返回 ...

  5. 聊聊GIS数据的四个分层与GIS服务

    本篇不讨论矢量栅格数据的结构,也不讨论矢量与栅格的区别(即设定读者有这方面的基础). 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://w ...

  6. 【React Native错误集】* What went wrong: Execution failed for task ':app:installDebug'.

    错误1:* What went wrong: Execution failed for task ':app:installDebug'. > com.android.builder.testi ...

  7. Centos 7.5 搭建FTP配置虚拟用户

    Centos 7.5 搭建FTP配置虚拟用户 1.安装vsftpd #vsftpd下载地址 http://mirror.centos.org/centos/7/os/x86_64/Packages/v ...

  8. k8s强制删除pod

    有时候pod一直在Terminating kubectl delete pod xxx --force --grace-period=

  9. Spring Boot JPA分页 PageRequest报错

    在使用Spring Boot JPA分页 PageRequest分页时,出现如下错误: 本来以为是包导入出现了问题,结果发现并不是.导入包如下: 后来在网上查找相关资料,发现这样的用法,好像也可以用, ...

  10. Play! 1.x Eclipse Debug调试报错解决方法记录

    使用Play eclipsify xxxx[项目路径],可以把play new xxxx[项目路径]创建的工程生成为Eclipse的项目 但是在Debug AS 调试的时候,会报以下错误 Error ...