作者简介

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. makefile(3)函数

    前言 学习make和makefile的主要目的是分析大型项目的源代码的关系,上一节我们讲述了makefile 中的变量,本节主要学习一下 makefile 中的函数,首先函数肯定可以分为几部分: 内置 ...

  2. Hexo搭建总结

    Hexo搭建过程记录 1.Hexo基本环境搭建 1.Hexo安装前提 Node.js和Git,他们的安装方法可以自行百度. 2.具体安装步骤可以参考: https://www.cnblogs.com/ ...

  3. AngularJS入门篇

    AngularJS是一个JavaScript框架,它通过指令扩展了HTML,且通过表达式绑定数据到 HTML.顺便一提,什么是框架?比如struts2.spring.hibernate.thinkph ...

  4. 用新架构适配MI3中遇到的各种坑

    用新架构适配MI3中遇到的各种坑 首先不得不说hendy架构的强大之处, mi3也直接开机但是遇到各种坑,不能怪架构不够强大,只有说miui定制化太高.下面详细说一下mi3适配中的各种坑.有些坑会附带 ...

  5. java快速开发平台可视化开发表单

    XJR java快速开发平台,简单的理解就是:开发人员以某种编程语言或者某几种编程语言(比如:目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok ...

  6. 初窥Mybatis初始化

    引言 这篇文章呢,主要是讲Mybtais的两种方式的源码剖析:传统方式以及Mapper代理方式,初次探索Mybatis源码,希望大佬勿喷并且指正错误,谢谢! 个人博客:www.fqcoder.cn 一 ...

  7. 聊聊CAS - 面试官最喜欢问的并发编程专题

    什么是CAS 学习Java并发编程,CAS(Compare And Set)机制都是一个不得不掌握的知识点.除了通过synchronized进行并发控制外,还可以通过CAS的方式控制,大家熟悉的Ree ...

  8. VS2017配置opencv-4.2.0详细步骤

    VS2017配置opencv-4.2.0详细步骤   1.下载opencv的安装包并解压.下载网址https://sourceforge.net/projects/opencvlibrary/ 图1 ...

  9. Mysql(Mariadb)慢查询日志中long_query_time 与log_queries_not_using_indexes与min_examined_row_limit 关系分析

    慢查询日志中long_query_time 与log_queries_not_using_indexes与min_examined_row_limit 关系分析   参数介绍: long_query_ ...

  10. scrapy mid中间件一般处理方法

    import user_agent import requests class UA_midd(object): def process_request(self,request,spider): r ...