6个出色的Kubernetes发行版,哪款最适合你?
作者简介
Christopher Tozzi,自2008年来以自由职业者的身份对Linux、虚拟化、容器、数据存储及其相关主题进行报道。
本文来自Rancher Labs
时至今日,通过Kubernetes编排容器化应用程序已经成为绝大多数人的第一选择,Kubernetes可以帮助用户轻松实现企业级部署。但是,在安装Kubernetes之前,你还需要再了解一件事:Kubernetes发行版。绝大多数情况下,用户不会直接从源代码中安装Kubernetes,而是在软件公司和云供应商提供的众多Kubernetes发行版中进行选择。
那么,什么是Kubernetes发行版?当前又有哪些出众的Kubernetes发行版呢?
什么是Kubernetes?
在讨论Kubernetes发行版之前,我们先来回顾一下什么是Kubernetes。
Kubernetes是一个用于容器编排的开源平台,它使容器部署应用程序所需的许多任务实现了自动化,包括启动和停止单个容器,以及确定集群中的哪些服务器应当承载哪些容器。如果你还想了解更多关于Kubernetes的基础知识,欢迎查阅以下文章:
再也不用担心学不会K8S!17个K8S初学者必须掌握的知识点
Kubernetes是容器生态系统中的其中一个容器编排平台,另外两个容器编排工具分别是Docker Swarm和Mesos Marathon,在本文中我们不会详述。当我们提及容器编排平台时,我们首先想到的是Kubernetes——因为Kubernetes享有最高的市场关注度,或许还占有最大的市场份额。
什么是Kubernetes发行版?
作为一个开源项目,用户可以在GitHub上免费获取Kubernetes的源代码。任何人都可以使用这个源代码在自己选择的基础架构上下载、编排和安装Kubernetes。然而,大多数想要安装Kubernetes的人并不会选择下载和编排源代码,主要有如下三方面的原因:
费时费力:Kubernetes源代码数量非常庞大,从头开始构建它们需要花费大量的时间和精力。另外,无论你什么时候要更新安装,都必须重新构建所有内容。
多组件:Kubernetes不是单一应用程序,而是一套不同的应用程序和工具。如果你从源代码安装它,那么你必须在构建Kubernetes集群的所有服务器上分别安装这些组件。
配置复杂:由于Kubernetes没有安装向导或是自动配置脚本,因此你还必须手动配置Kubernetes的所有组件。
大多数人选择Kubernetes发行版来满足他们的容器编排需求。Kubernetes发行版是一个提供了预先构建版本的Kubernetes的软件包。大多数Kubernetes发行版还提供了安装工具,使安装过程变得更加简单。部分Kubernetes发行版还集成了其他软件,可以处理集群监控和安全性等任务。
从这个意义上讲,你可以将Kubernetes发行版看作是Linux发行版的同类。当大多数人想要在PC或是服务器上安装Linux的时候,他们使用的发行版是一个预先构建的Linux内核,该内核与各种其他软件包集成在一起。几乎没有人会选择从头下载Linux源代码。
主要的Kubernetes发行版有哪些?
从技术上看,任何包含Kubernetes预先构建版本的Kubernetes的软件包或平台都可以算作Kubernetes发行版。就像任何人都可以构建自己的Linux发行版一样,任何人都可以建立一个Kubernetes发行版。

但是,如果你希望使用Kubernetes发行版来完成重要的工作,你可以在以下几个主要的发行版中进行选择:
Rancher:Rancher容器管理平台是基于Kubernetes来构建的,多集群Kubernetes部署是Rancher的Kubernetes发行版强调的重点。如果你想跨多个云部署Kubernetes,或者由于某些原因不希望使用命名空间隔离Kubernetes工作负载,那么Rancher将是你的首选项。Rancher可以部署在本地数据中心和云上,甚至可以在包含两者的跨基础设施架构上工作。Rancher和OpenShift的相似之处在于它在Kubernetes上集成了多种工具,但Rancher更为灵活,基于Rancher你可以自由选择组件。
OpenShift:OpenShift是一个包含了Kubernetes以及其他各种运行、部署和管理容器所需工具的容器化平台。这是一个相对不太灵活的Kubernetes发行版,当你在使用工具和平台来构建完整的容器化堆栈时,它并不会给予你太多的选择。另一方面,OpenShift提供了几乎所有你可能需要的开箱即用的工具,你将获得尽可能接近完整的Kubernetes。OpenShift由Red Hat开发,可以同时在本地数据中心和云中运行。
Canonical Kubernetes:开发Ubuntu Linux的Canonical公司提供了功能强大且具有支持良好的Kubernetes发行版。除了要求你必须使用Ubuntu,Canonical的Kubernetes发行版相对“纯粹”,如果你希望安装组件,你可以将它与你所需的任何组件进行集成。它可以在本地数据中心或者云中运行。
Google Kubernetes Engine:当其他云供应商专注于自己的编排工具时,谷歌云就已经押注在Kubernetes身上了,这并不稀奇,从Kubernetes项目伊始,Google便是Kubernetes的主要支持者。如今,Google Kubernetes Engine是一种灵活且简单的Kubernetes发行版。由于它运行在谷歌云中,因此你无需担心安装问题。
Azure Kubernetes Service:Azure曾经将赌注押在Docker Swarm上,但是Azure Kubernetes Service(AKS)现在是Azure云的主要编排解决方案。这是一款仅运行在云上的Kubernetes发行版。
AWS Elastic Kubernetes Service:虽然AWS云上的容器服务Elastic Container Service(ECS)拥有自己的编排器,但AWS还提供了Elastic Kubernetes Service(EKS),这是一种围绕Kubernetes构建的替代方案。和AKS一样,EKS仅在云上运行。
结 语
Kubernetes是一个复杂的容器编排平台,并非每个人都可以消化它。但幸运的是,Kubernetes发行版可以轻松实现Kubernetes的优势,而无需自己从头开始建立Kubernetes。对于大多数用例而言,以上所提及的Kubernetes发行版是安装和运行Kubernetes最实用的解决方案。
6个出色的Kubernetes发行版,哪款最适合你?的更多相关文章
- 主流 Kubernetes 发行版梳理
2014 年,Kubernetes 作为内部 Google orchestrator Borg 开源版本推出,目前已是最成功和发展最快的 IT 基础架构项目之一.2018 年,Kubernetes 已 ...
- 五个你可能闻所未闻的出色的Ubuntu替代发行版
你在使用Ubuntu,可是希望桌面体验……来得更眩目一点.虽说你总是可以添加新的桌面背景,或者索性切换桌面,但是你还有这个选择:换成一种全然不同的发行版. 本文就介绍了五个极其出色的Ubuntu替 ...
- Linux发行版及其目标用户
1.Debian Debian 众所周知,是Deepin,Ubuntu和Mint等流行Linux发行版的母亲,这些发行版提供了可靠的性能,稳定性和无与伦比的用户体验.最新的稳定发行版是Debian 1 ...
- 全球最受欢迎的十大Linux发行版(图)
帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...
- 一款国内好用的Linux发行版?Deepin(深度)Linux
一款国内好用的Linux发行版?Deepin(深度)Linux 目前来说,要将Linux作为桌面解决方案,对于大多数PC用户来说,当然是不现实的,毕竟Linux的主力用户群体依然是少数极客用户.说白了 ...
- 世界上最受欢迎的10个Linux发行版
帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...
- spark发行版笔记9
感谢DT大数据梦工厂支持提供技术支持,DT大数据梦工厂专注于Spark发行版定制. 本期概览: 1 Receiver生命全周期 首先,我们找到数据来源的入口,入口如下 Receiver的设计是极其巧妙 ...
- 最适合和最不适合新手使用的几款 Linux 发行版
大多数知名的Linux发行版都属于"比较容易使用"这一类.一些观察人士可能会驳斥这个观点,但事实上,说到Linux,大多数并非从事IT或软件开发工作的人会被最容易的使用体验所吸引. ...
- 十大广泛使用的Linux发行版
回到上世纪90年代,Mandrake Linux还是唯一的Linux发行版:而今天,Linux发行版的数量变得数不胜数.本文为大家整理出了十大广泛使用的Linux发行版,希望能帮助大家在选择合适的Li ...
随机推荐
- POJ 2226 Muddy Fields 二分图(难点在于建图)
题意:给定一个矩阵和它的N行M列,其中有一些地方有水,现在有一些长度任意,宽为1的木板,要求在板不跨越草,用一些木板盖住这些有水的地方,问至少需要几块板子? 思路:首先想到如果没有不准跨越草的条件则跟 ...
- MySQL5.7报错[ERROR] Unix socket lock file is empty /tmp/mysql.sock.lock的解决方法
发现MySQL服务器因系统磁盘写满导致服务停了,清理磁盘后启动服务时无法正常启动,查看localhost.err日志发现如下报错: [ERROR] Unix socket lock file is e ...
- List.remove()的使用注意
不使用forEach的循环 使用forEach循环 参考 今天修改一个bug,需要取一个List和一个Set的交集,使用了双重循环.想着提高循环效率,每加入一个交集中的元素,就将List中的元素删除, ...
- cordova+jquery form上传里面的一些诡异坑
在浏览器里面执行很正常的代码,打包到手机上测试就出问题了,浏览器中的执行版本如下: <!DOCTYPE html> <html lang="en"> < ...
- [css-animation-101] 8 multiple transitions
原文地址:css animation 101 #multiple-transitions 原文作者:Donovan Hutchinson 译者:JobbyM 到目前为止,我们已经讨论了一个过渡如何在一 ...
- 数据大爆炸:KDD 2016
2016"> 饕餮盛宴 ACM SIGKDD国际会议(简称KDD)是数据挖掘领域的顶级国际会议,由ACM (计算机协会)的数据挖掘及知识发现专委会(SIGKDD)负责组织筹办.在现今如 ...
- 使用Lucene.Net做一个简单的搜索引擎-全文索引
Lucene.Net Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎. ...
- 一个简单的爬取b站up下所有视频的所有评论信息的爬虫
心血来潮搞了一个简单的爬虫,主要是想知道某个人的b站账号,但是你知道,b站在搜索一个用户时,如果这个用户没有投过稿,是搜不到的,,,这时就只能想方法搞到对方的mid,,就是 space.bilibil ...
- Javascript学习笔记-基本概念-函数
ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体.函数的基本语法如下所示: function functionName(arg0, arg1,...,argN) ...
- 使用cookie
概述 虽说在现代Web开发过程中讨论Cookie有些不合时宜,但是这是开发人员如今可以使用的最古老.最稳定的客户端存储形式.当然,我们并不推荐使用Cookie,只是说它是一种选择. Cookie于19 ...