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

选择正确解决方案

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

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

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

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

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

本地服务器方案

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

本地服务器方案有:

  • 本地Docker(上手建议)
  • Vagrant(任何支撑Vagrant的平台:Linux、MacOS、或者Windows)
  • 无虚拟机本地集群(Linux)

托管方案

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

全套云端方案

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

  • GCE
  • AWS
  • Azure

定制方案

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

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

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

  • AWS+cores
  • GCE+CoreOS
  • AWS+Ubuntu
  • Joyent+Ubuntu
  • Rackspace+CoreOS

私有虚拟机

  • Vagrant(采用CoreOS和flannel)
  • CloudStack(采用Ansible,CoreOS和flannel)
  • Vmware(采用Debian)
  • juju.md(采用juju,Ubuntu和flannel)
  • Vmware(采用C哦热OS和flannel)
  • libvirt-coreos.md(采用CoreOS)
  • OVirt
  • libvirt(采用Fedora+flannel)
  • KVM(采用Fedora和flannel)

裸机

集成

Table of Solution

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

IaaS Provider Config.Mgmt OS Networking Docs Conforms  
GKE     GCE docs [✓][3]  
Vagrant Saltstack Fedora flannel docs [✓][2]  
GCE Saltstack Debian GCE docs [✓][1]  
Azure CoreOS CoreOS Weave docs    
Docker Single Node custom N/A local docs    
Docker Multi Node Flannel N/A local docs    
Bare-metal Ansible Fedora flannel docs    
Digital Ocean custom Fedora Calico docs    
Bare-metal custom Fedora none docs    
Bare-metal custom Fedora flannel docs    
libvirt custom Fedora flannel docs    
KVM custom Fedora flannel docs    
             
Mesos/Docker custom Ubuntu Docker docs    
Mesos/GCE       docs    
AWS CoreOS CoreOS flannel docs    
GCE CoreOS CoreOS flannel docs    
Vagrant CoreOS CoreOS flannel docs    
Bare-metal (Offline) CoreOS CoreOS flannel docs    
Bare-metal CoreOS CoreOS Calico docs    
CloudStack Ansible CoreOS flannel docs    
Vmware   Debian OVS docs    
Bare-metal custom CentOS none docs    
AWS Juju Ubuntu flannel docs    
OpenStack/HPCloud Juju Ubuntu flannel docs    
Joyent Juju Ubuntu flannel docs    
AWS Saltstack Ubuntu OVS docs    
Azure Saltstack Ubuntu OpenVPN docs    
Bare-metal custom Ubuntu Calico docs    
Bare-metal custom Ubuntu flannel docs    
Local     none docs    
libvirt/KVM CoreOS CoreOS libvirt/KVM docs    
oVirt       docs    
Rackspace CoreOS CoreOS flannel docs    
any any any any docs    

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

表格中列说明:

  • 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版本

Kubernetes-创建集群(四)的更多相关文章

  1. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  2. 实现Kubernetes跨集群服务应用的高可用

    在Kubernetes 1.3版本,我们希望降低跨集群跨地区服务部署相关的管理和运营难度.本文介绍如何实现此目标. 注意:虽然本文示例使用谷歌容器引擎(GKE)来提供Kubernetes集群,您可以在 ...

  3. 手动部署 kubernetes HA 集群

    前言 关于kubernetes HA集群部署的方式有很多种(这里的HA指的是master apiserver的高可用),比如通过keepalived vip漂移的方式.haproxy/nginx负载均 ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  5. 如何落地全球最大 Kubernetes 生产集群

        鲍永成   京东基础架构部技术总监,   DevOps 标准核心编写专家   前言   JDOS 就是京东数据中心操作系统,随着数据中心规模不断的扩大,我们需要对数据中心做综合的考虑.所以一开 ...

  6. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  7. Kubernetes容器集群管理环境 - 完整部署(上篇)

    Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...

  8. Kubernetes(k8s)集群安装

    一:简介 二:基础环境安装 1.系统环境 os Role ip Memory Centos 7 master01 192.168.25.30 4G Centos 7 node01 192.168.25 ...

  9. 搭建Kubernetes容器集群管理系统

    1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.劢态扩缩容等功能套件. 基 ...

  10. linux运维、架构之路-Kubernetes离线集群部署-无坑

    一.部署环境介绍 1.服务器规划 系统 IP地址 主机名 CPU 内存 CentOS  7.5 192.168.56.11 k8s-node1 2C 2G CentOS  7.5 192.168.56 ...

随机推荐

  1. 【Leetcode】【Easy】Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  2. 【Leetcode】【Easy】Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  3. MySQL的基础(优化)3

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  4. java之大文件断点续传

    针对某些场景下,面对服务文件大,或者服务端服务器不稳定时使用该模块.功能代码如下: import java.io.File; import java.io.FileOutputStream; impo ...

  5. May 12th 2017 Week 19th Friday

    Love asks faith, and faith asks firmness. 爱情要求忠诚,而忠诚要求坚贞. Love, as well as many other relations amon ...

  6. 时间序列算法理论及python实现(1-算法理论部分)

    如果你在寻找时间序列是什么?如何实现时间序列?那么请看这篇博客,将以通俗易懂的语言,全面的阐述时间序列及其python实现. 就餐饮企业而言,经常会碰到如下问题. 由于餐饮行业是胜场和销售同时进行的, ...

  7. Fiori Launchpad Tile点击后跳转的调试技巧

    在SAP Fiori launchpad 里点击某个tile之后,后台会计算出跳转的目标url返回给前台. 下图中一个个白色的方框就成为tile.每个tile点击之后,会打开一个对应的Fiori应用. ...

  8. 【转载】#457 Converting Between enums and their Underlying Type

    When you declare an enum, by default each enumerated value is represented internally with an int. (S ...

  9. ACM-ICPC (10/15) Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)

    A. Search for Pretty Integers You are given two lists of non-zero digits. Let's call an integer pret ...

  10. 使用.NET Framework中的对象来检索网页和处理其内容

    实现效果:(截取其部分) 实现代码: $webclient=New-Object System.Net.WebClient $content=$webclient.DownloadString(&qu ...