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. 再学UML-Bug管理系统UML2.0建模实例(四)

    3.3 顺序图(实现模型) 在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息.在BMS系统中,对每 ...

  2. vue-cli3 项目从搭建优化到docker部署

    项目地址 vue-cli3-project 欢迎 star 原文地址 https://www.ccode.live/lentoo/list/9?from=art 1. 创建一个vue项目 相信大部分人 ...

  3. git 和 github的学习

    第一部分:我的github地址 https://github.com/Ly1235/gitLeaming 第二部分:git 和 github Git是一款免费.开源的分布式版本控制系统.gitHub是 ...

  4. idea 一次性自动导包

    当复制粘贴一段纯文本代码时,许多类需要导包. 如图 使用optimize imports了,发还是没有办法导入未导入的包,只能删除未使用导包,这跟eclipse不一样,让人很不习惯,查了好多资料都没有 ...

  5. 用JS实现一个时钟的效果

    (效果图) 分两步进行的. 第一步:  要得到现在的 时 分 秒 但是这里面有一个小玄机 . 比如现在是 9点整      时针指向 9 是没错的 但是如果现在是 9点半   时针应该指向的是 9到1 ...

  6. 自己平时收集的css、html笔记(适合初级前端攻城狮)

    实习了一年时间,陆陆续续记录下来一堆笔记,不过也丢失了一些... 以后会持续更新.扩展,现在把碰到的知识点归纳于此,方便翻阅 一.html部分 1.取消iPhone自动识别数字为拨打号码 <me ...

  7. JavaScript创建对象的三种方法

    在 JavaScript 中我们知道无法通过类来创建对象,那么如何创建对象呢? (1)通过“字面量”方式创建对象 将你的信息写到{ }中,并赋值给一个变量,此时这个变量就是一个对象,例: var ga ...

  8. IP检验字段为啥只检验地址部分

    在首部中的错误比在数据中的错误更重 如:一个错误的地址可能导致分组被投递到错误的主机.许多主机并不检查投递给它们的分组是否 确定是要投递给它们,它们假定网络从来不会把别人的分组包传递给自己.数据不参加 ...

  9. Angularjs基础(十一)

    ng-csp 描述:修改内容的安全策略 实例: 修改AngularJS 中关于"eval"的行为方式及内联样式: <body ng-app="" ng-c ...

  10. git简单配置

    1.安装完git查看版本 git --version 2.配置用户名邮箱 git config --global user.name "chencheng" git config ...