创建Kubernetes集群

译者:razr 校对:钟健鑫

Kubernetes可以在多种平台运行,从笔记本电脑,到云服务商的虚拟机,再到机架上的裸机服务器。要创建一个Kubernetes集群,根据不同场景需要做的也不尽相同,可能是运行一条命令,也可能是配置自己的定制集群。这里我们将引导你根据自己的需要选择合适的解决方案。

选择正确的解决方案

如果你只是想试一试Kubernetes,我们推荐基于Docker的本地方案。

基于Docker的本地方案是众多能够完成快速搭建的本地集群方案中的一种,但是局限于单台机器。

当你准备好扩展到多台机器和更高可用性时,托管解决方案是最容易搭建和维护的。

全套云端方案 只需要少数几个命令就可以在更多的云服务提供商搭建Kubernetes。

定制方案 需要花费更多的精力,但是覆盖了从零开始搭建Kubernetes集群的通用建议到分步骤的细节指引。

本地服务器方案

本地服务器方案再一台物理机上创建拥有一个或者多个Kubernetes节点的单机集群。创建过程是全自动的,且不需要任何云服务商的账户。但是这种单机集群的规模和可用性都受限于单台机器。

本地服务器方案有:

托管方案

Google Container Engine 提供创建好的Kubernetes集群。

全套云端方案

以下方案让你可以通过几个命令就在很多IaaS云服务中创建Kubernetes集群,并且有很活跃的社区支持。

定制方案

Kubernetes可以在云服务提供商和裸机环境运行,并支持很多基本操作系统。

如果你再如下的指南中找到了符合你需要的,可直接使用。某些指南可能有些过时,但是比起从零开始还是有不少参考价值。如果你确实因为特殊原因或因为想了解底层原理,想要从零开始搭建,可以试试参考从零开始指南。

如果你对在新的平台支持Kubernetes感兴趣,可以看看我们的写新方案的建议

以下是上文没有列出的云服务商或云操作系统支持的方案。

私有虚拟机

裸机

集成

Table of Solutions

以下用表格形式列出上面的所有方案。

IaaS Provider Config. Mgmt OS Networking Docs Conforms Support Level
GKE GCE docs [✓][3] Commercial
Vagrant Saltstack Fedora flannel docs [✓][2] Project
GCE Saltstack Debian GCE docs [✓][1] Project
Azure CoreOS CoreOS Weave docs Community (@errordeveloper, @squillace, @chanezon, @crossorigin)
Docker Single Node custom N/A local docs Project (@brendandburns)
Docker Multi Node Flannel N/A local docs Project (@brendandburns)
Bare-metal Ansible Fedora flannel docs Project
Digital Ocean custom Fedora Calico docs Community (@djosborne)
Bare-metal custom Fedora none docs Project
Bare-metal custom Fedora flannel docs Community (@aveshagarwal)
libvirt custom Fedora flannel docs Community (@aveshagarwal)
KVM custom Fedora flannel docs Community (@aveshagarwal)
Mesos/Docker custom Ubuntu Docker docs Community (Kubernetes-Mesos Authors)
Mesos/GCE docs Community (Kubernetes-Mesos Authors)
AWS CoreOS CoreOS flannel docs Community
GCE CoreOS CoreOS flannel docs Community (@pires)
Vagrant CoreOS CoreOS flannel docs Community (@pires, @AntonioMeireles)
Bare-metal (Offline) CoreOS CoreOS flannel docs Community (@jeffbean)
Bare-metal CoreOS CoreOS Calico docs Community (@caseydavenport)
CloudStack Ansible CoreOS flannel docs Community (@runseb)
Vmware Debian OVS docs Community (@pietern)
Bare-metal custom CentOS none docs Community (@coolsvap)
AWS Juju Ubuntu flannel docs Community ( @whit, @matt, @chuck )
OpenStack/HPCloud Juju Ubuntu flannel docs Community ( @whit, @matt, @chuck )
Joyent Juju Ubuntu flannel docs Community ( @whit, @matt, @chuck )
AWS Saltstack Ubuntu OVS docs Community (@justinsb)
Azure Saltstack Ubuntu OpenVPN docs Community
Bare-metal custom Ubuntu Calico docs Community (@djosborne)
Bare-metal custom Ubuntu flannel docs Community (@resouer, @WIZARD-CXY)
Local none docs Community (@preillyme)
libvirt/KVM CoreOS CoreOS libvirt/KVM docs Community (@lhuard1A)
oVirt docs Community (@simon3z)
Rackspace CoreOS CoreOS flannel docs Community (@doublerr)
any any any any docs Community (@erictune)

注意:以上表格按照支持级别和测试及使用的版本进行排序。

表格中列说明:

  • IaaS Provider 是指提供Kubernetes运行环境的虚拟机或物理机(节点)资源的提供商。
  • OS 是指节点上运行的基础操作系统。
  • Config. Mgmt 是指节点上安装和管理Kubernetes软件的的配置管理系统。
  • Networking 是指实现网络模型的软件。 none 表示只支持一个节点,或支持单物理节点上的虚拟机节点。
  • Conformance 表示使用该种配置创建的集群是否通过了项目一致性测试,支持Kubernetes v1.0.0的API和基本特性。
  • Support Levels(支持级别)
    • Project:Kubernetes贡献者们经常使用该配置,所以通常最新的版本可使用。
    • Commercial:某些厂商负责在自己的平台支持。
    • Community:在社区中有活跃支持,但可能最新版本不适用。
    • Inactive: 对于初次使用Kubernetes的用户不推荐,并且有可能在将来被移除。
  • Notes 说明,比如适用的Kubernetes版本。