Kubernetes-创建集群(四)
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-创建集群(四)的更多相关文章
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- 实现Kubernetes跨集群服务应用的高可用
在Kubernetes 1.3版本,我们希望降低跨集群跨地区服务部署相关的管理和运营难度.本文介绍如何实现此目标. 注意:虽然本文示例使用谷歌容器引擎(GKE)来提供Kubernetes集群,您可以在 ...
- 手动部署 kubernetes HA 集群
前言 关于kubernetes HA集群部署的方式有很多种(这里的HA指的是master apiserver的高可用),比如通过keepalived vip漂移的方式.haproxy/nginx负载均 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- 如何落地全球最大 Kubernetes 生产集群
鲍永成 京东基础架构部技术总监, DevOps 标准核心编写专家 前言 JDOS 就是京东数据中心操作系统,随着数据中心规模不断的扩大,我们需要对数据中心做综合的考虑.所以一开 ...
- Kubernetes容器集群管理环境 - Prometheus监控篇
一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...
- Kubernetes容器集群管理环境 - 完整部署(上篇)
Kubernetes(通常称为"K8S")是Google开源的容器集群管理系统.其设计目标是在主机集群之间提供一个能够自动化部署.可拓展.应用容器可运营的平台.Kubernetes ...
- Kubernetes(k8s)集群安装
一:简介 二:基础环境安装 1.系统环境 os Role ip Memory Centos 7 master01 192.168.25.30 4G Centos 7 node01 192.168.25 ...
- 搭建Kubernetes容器集群管理系统
1.Kubernetes 概述 Kubernetes 是 Google 开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.劢态扩缩容等功能套件. 基 ...
- linux运维、架构之路-Kubernetes离线集群部署-无坑
一.部署环境介绍 1.服务器规划 系统 IP地址 主机名 CPU 内存 CentOS 7.5 192.168.56.11 k8s-node1 2C 2G CentOS 7.5 192.168.56 ...
随机推荐
- Browser进程和浏览器内核(Renderer进程)的通信过程
看到这里,首先,应该对浏览器内的进程和线程都有一定理解了,那么接下来,再谈谈浏览器的Browser进程(控制进程)是如何和内核通信的, 这点也理解后,就可以将这部分的知识串联起来,从头到尾有一个完整的 ...
- PL/SQL Developer import and export database method and illustrate
PL/SQL Developer import and export database method and illustrate HOW WELL DO YOU KNOW THE APPLE U ...
- 查看oracle固定目录下日志和trace文件大小脚本
python刚入门,在Oracle官网看到个小脚本,感觉挺有意思,经过测试切实可行. [oracle@ycr python]$ more 5.py import datetimeimport osim ...
- java 解压缩Zip文件 ziputil
package com.lanyuan.assembly.util; import java.io.BufferedOutputStream;import java.io.File;import ja ...
- Xpath定位_1:子找父以及contains的用法
先上xml代码,如下图,在写自动化脚本时,需要定位到数字为10334的td元素.td元素的父元素.父的父元素以及属性值都一样:只有同胞元素的元素值不同.以此可以通过先定位到同胞元素,在找到父元素下的期 ...
- 因子和&&因子数
给定一数n,求n的因子数目和因子之和 上述求因子和式子等于 ∏{(piei+1 - 1) / (pi - 1)} (∏就是连乘) 模板: +; int prime[maxn]; bool is_pr ...
- Android(java)学习笔记40:WindowManager 中LayoutParams的各种属性
1. WindowManager 中LayoutParams的各种属性 WindowManager.LayoutParams 是 WindowManager 接口的嵌套类(内部类):它继承于 View ...
- expected expression __bridge
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u013020103/article/details/30491117 expected expres ...
- UVA11294 Wedding
嘟嘟嘟 大佬们都说这是2-SAT入门题,然而对于刚学2_SAT的本菜鸡来说半天才理解…… 题面:新娘和新郎不能坐在同一侧,妻子和丈夫不能坐在同一侧,有**关系的两个人必须至少一个坐在新娘一侧,问方案. ...
- Unity让带有Rigidbody组件的游戏对象停止运动
Rigidbody rigidbody = transform.GetComponent<Rigidbody>(); rigidbody.velocity = Vector3.zero; ...