作者简介

Christopher Tozzi,自2008年来以自由职业者的身份对Linux、虚拟化、容器、数据存储及其相关主题进行报道。

本文来自Rancher Labs

时至今日,通过Kubernetes编排容器化应用程序已经成为绝大多数人的第一选择,Kubernetes可以帮助用户轻松实现企业级部署。但是,在安装Kubernetes之前,你还需要再了解一件事:Kubernetes发行版。绝大多数情况下,用户不会直接从源代码中安装Kubernetes,而是在软件公司和云供应商提供的众多Kubernetes发行版中进行选择。

那么,什么是Kubernetes发行版?当前又有哪些出众的Kubernetes发行版呢?

什么是Kubernetes?

在讨论Kubernetes发行版之前,我们先来回顾一下什么是Kubernetes。

Kubernetes是一个用于容器编排的开源平台,它使容器部署应用程序所需的许多任务实现了自动化,包括启动和停止单个容器,以及确定集群中的哪些服务器应当承载哪些容器。如果你还想了解更多关于Kubernetes的基础知识,欢迎查阅以下文章:

再也不用担心学不会K8S!17个K8S初学者必须掌握的知识点

零基础入门│带你理解Kubernetes

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发行版,哪款最适合你?的更多相关文章

  1. 主流 Kubernetes 发行版梳理

    2014 年,Kubernetes 作为内部 Google orchestrator Borg 开源版本推出,目前已是最成功和发展最快的 IT 基础架构项目之一.2018 年,Kubernetes 已 ...

  2. 五个你可能闻所未闻的出色的Ubuntu替代发行版

      你在使用Ubuntu,可是希望桌面体验……来得更眩目一点.虽说你总是可以添加新的桌面背景,或者索性切换桌面,但是你还有这个选择:换成一种全然不同的发行版. 本文就介绍了五个极其出色的Ubuntu替 ...

  3. Linux发行版及其目标用户

    1.Debian Debian 众所周知,是Deepin,Ubuntu和Mint等流行Linux发行版的母亲,这些发行版提供了可靠的性能,稳定性和无与伦比的用户体验.最新的稳定发行版是Debian 1 ...

  4. 全球最受欢迎的十大Linux发行版(图)

    帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...

  5. 一款国内好用的Linux发行版?Deepin(深度)Linux

    一款国内好用的Linux发行版?Deepin(深度)Linux 目前来说,要将Linux作为桌面解决方案,对于大多数PC用户来说,当然是不现实的,毕竟Linux的主力用户群体依然是少数极客用户.说白了 ...

  6. 世界上最受欢迎的10个Linux发行版

    帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...

  7. spark发行版笔记9

    感谢DT大数据梦工厂支持提供技术支持,DT大数据梦工厂专注于Spark发行版定制. 本期概览: 1 Receiver生命全周期 首先,我们找到数据来源的入口,入口如下 Receiver的设计是极其巧妙 ...

  8. 最适合和最不适合新手使用的几款 Linux 发行版

    大多数知名的Linux发行版都属于"比较容易使用"这一类.一些观察人士可能会驳斥这个观点,但事实上,说到Linux,大多数并非从事IT或软件开发工作的人会被最容易的使用体验所吸引. ...

  9. 十大广泛使用的Linux发行版

    回到上世纪90年代,Mandrake Linux还是唯一的Linux发行版:而今天,Linux发行版的数量变得数不胜数.本文为大家整理出了十大广泛使用的Linux发行版,希望能帮助大家在选择合适的Li ...

随机推荐

  1. 将本地的一个项目托管到自己的GitHub仓库

    GitHub作为全球最大的代码托管平台,功能十分强大.我们可以在上面建立一个仓库来托管我们的代码图片等资源.因为使用markdown语法来写博客所以在插入图片时需要一个图片外链地址,起初去网上找了一个 ...

  2. 6. Go 语言中结构体的使用

    1. 结构体的定义格式 在go语言中结果的定义格式如下: 123 type structName struct { filedList} 列子如下: 1234 type Person struct { ...

  3. python爬取许多图片的代码

    from bs4 import BeautifulSoup import requests import os os.makedirs('./img/', exist_ok=True) URL = & ...

  4. Face Recognition 人脸识别该如何测试

    猪圈子,一个有个性的订阅号 01 测量人脸识别的主要性能指标有 1.误识率(False;Accept;Rate;FAR):这是将其他人误作指定人员的概率; 2.拒识率(False;RejectRate ...

  5. Kafka常用命令及配置文件

    创建topic,指定备份分区数 bin/kafka-topics.sh --create --zookeeper zk:2181 --replication-factor 2 --partitions ...

  6. “一亿”的教训:一次Google信箱诈骗是如何得手的?

    网络诈骗是指以非法占有为目的,利用互联网采用虚构事实或者隐瞒真相的方法,骗取数额较大的公私财物的行为.一年比一年网络诈骗越来越高手段,可以说是日益猖獗.在这里提醒一次各位朋友一定要注意自己的网络安全. ...

  7. PHP数组知识点整理

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  8. Java入门教程九(封装继承多态)

    封装 封装就是将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏.做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(s ...

  9. ubuntu 18.04 添加快快捷方式

    1. 创建启动软件的快捷方式的文件 # cd ~/桌面 # vim pycharm18.1.desktop # 注意文件的后缀是 .desktop [Desktop Entry] Version=1. ...

  10. 《Deep Learning of Graph Matching》论文阅读

    1. 论文概述 论文首次将深度学习同图匹配(Graph matching)结合,设计了end-to-end网络去学习图匹配过程. 1.1 网络学习的目标(输出) 是两个图(Graph)之间的相似度矩阵 ...