【译者的话】本文分析介绍了三种主流的Kubernetes部署方式,为广大Kubernetes的使用者提供了很好的参考借鉴。

【烧脑式Kubernetes实战训练营】本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理、Kubernetes DNS与服务发现、基于Kubernetes和Jenkins的持续部署方案 、Kubernetes网络部署实践、监控、日志、Kubernetes与云原生应用、在CentOS中部署Kubernetes集群、Kubernetes中的容器设计模式、开发Kubernetes原生应用步骤介绍等。

当您转向云原生开发和部署时,让我们来看看Kubernetes所扮演的角色,以及如何从编排中获得更丰富的功能。

容器提供了将应用程序及其依赖关系与操作系统分离的功能。通过一种有别于虚拟机镜像打包操作系统的方式,容器可以节省大量的系统资源:计算,内存和磁盘空间。容器下载,更新,部署和迭代的速度也更快。因此,在技术世界中,容器已经引起了微型革命,并被Google,微软和亚马逊等公司所采纳。

容器微型革命也带来了激烈的竞争,竞争满足了容器编排和管理的需要。作为Google的开源容器编排引擎,Kubernetes已经成为领先的解决方案(包括Amazon ECS和Docker Swarm等),主要原因有三:

  • 云原生设计:支持下一代应用程序的部署和运行
  • 开源的本质:快速创新,避免供应商锁定
  • 高可移植性:无论是在云、本地还是虚拟机环境中都可以部署。

下图展示了Kubernetes在您的云原生部署中可以扮演的角色:

Kubernetes容器编排

如您所见,Kubernetes可以部署和管理您的容器化应用程序,包括NGINX,MySQL,Apache等。它可以为容器提供调度,伸缩,复制,监控和其他功能。

一旦您选择了容器编排平台,下一步就是部署Kubernetes。如前所述,Kubernetes是一种轻量级解决方案。因为Kubernetes使用相同的镜像和配置,它在您的笔记本电脑、云端或本地的工作方式完全相同。

Kubernetes-as-a-Service

这些解决方案提供了在各种基础设施(公有云或内部部署)中部署Kubernetes的能力。Kubernetes集群选择这种方式的优点包括:

  1. 通过KaaS提供商进行升级、监控和获取支持;
  2. 混合云或多云环境的轻松扩展
  3. 多个集群的统一视图
  4. 高度可用的多master Kubernetes集群,根据工作负载自动扩容缩容
  5. 通用企业集成,如SSO/隔离命名空间;以及通过Helm charts部署应用程序的能力
  6. 集群联邦,可在多个云或数据中心之间提供真正无缝的混合环境

Kubernetes-as-a-Service

Kubernetes-as-a-Service解决方案的示例包括Platform9和StackPoint.io。

托管的基础设施

Google Cloud Platform和Microsoft Azure分别通过Google容器引擎(GKE)和Azure Container Service(ACS)提供了Kubernetes。将容器放在公共云中可以快速启动,但是您的数据现在将驻留在网络外围和防火墙之外。

Google的GKE引领其他公共云供应商。Google通过名叫Borg的集群管理工具,广泛地在内部的项目中使用容器,并拥有超过十年的经验(来源:TheNextPlatform)。相比之下,微软的ACS是一个更年轻的产品,而Kubernetes的支持仅在2017年2月才推出。然而,ACS提供了灵活性:用户可以选择容器编排平台(Kubernetes,Docker Swarm,DCOS),还可以选择除了Linux之外的Windows上部署容器化应用程序。如下图所示,GKE和ACS完全基于公有云,Kubernetes服务和基础设施由托管供应商部署和管理。

托管基础设施的Kubernetes

本地部署

Minikube是在本地部署Kubernetes的最流行的方式。它支持各种虚拟机管理程序,包括VirtualBox,VMware Fusion,KVM和xhyve以及OS,包括OSX,Windows和Linux。下图展示了Minikube的部署:

mini Kubernetes

如上所示,用户使用Minikube CLI和Kubectl(Kubernetes的本机CLI)与此笔记本电脑部署进行交互。Minikube CLI可用于启动,停止,删除,获取状态,并在虚拟机上执行其他操作。一旦Minikube虚拟机启动,Kubectl CLI会在Kubernetes集群上执行操作。以下命令启动现有的Minikube虚拟机并创建NGINX Kubernetes部署:

minikube start
cat > example.yaml<<EOF
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:

  - name: nginximage: nginxports:- containerPort: 80复制代码

EOF
kubectl create -f example.yaml

总结

Kubernetes-as-a-service,Kubernetes托管基础设施,Minikube只是部署Kubernetes的三种方式。有关各种部署模型,注意事项,优缺点和逐项比较的详细分析,请参阅以下部署指南。

下一步

  • 看看部署Kubernetes的终极指南
  • 尝试通过sandbox使用Kubernetes

原文链接:Deploy Kubernetes Anywhere (翻译:付辉)

三种主流的Kubernetes部署方式相关推荐

  1. 基于web端和C++的两种深度学习模型部署方式

    深度学习Author:louwillMachine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理.一种是基于web服务端的模型部署,一种是基... 深度学习 Author:l ...

  2. 到底应该选择哪种Linux.NET的部署方式?

    到底应该选择哪种Linux.NET的部署方式? 当前部署Linux.NET环境的方式可谓是五花八门,既有传统的源码编译的方式.又有各式各样的一键安装脚本.还有绿色包安装方式,而随着Mono官方的新站上 ...

  3. 移动GPU三种主流架构优缺点浅析

    导读: GPU是Graphic Processor Unit的简称,顾名思义就是图形处理器. GPU的概念最早是从图形工作站发展而来,从90年代的个人电脑普及开始,GPU迎来了其大发展的时代. 在90 ...

  4. 三种主流无线同屏技术介绍(Miracast、DLNA与AirPlay技术)

    不知道大家对无线同屏技术有多少了解,当这种技术普及的时候,我想我们的工作与生活又会方便很多吧!下面是目前三种主流同屏技术的介绍: 目前这种将终端信号经由WiFi传输到电视.电视盒的技术有三种:DLNA ...

  5. 当前java web架构形式_关于三种主流WEB架构的思考

    关于三种主流WEB架构的思考Haohappy  haohappy AT msn.com转载请注明来源: 做WEB好几年了,各种语言和技术都稍有涉猎.今天心血来潮,突然想总结一下.其实不论什么技术,什么 ...

  6. Java处理XML的三种主流技术及介绍

    Java处理XML的三种主流技术及介绍(1) 2012-08-15 10:44 顾彬/冯晨/乔彬 IBM developerWorks 我要评论(0) 字号:T | T XML (eXtensible ...

  7. android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐

    手机中有很多应用都是与金钱挂钩,特别是微信与支付宝等等既涉及到隐私又与财产关联,这是后手机的安全就尤为重要的,而手机的锁屏密码就是一道最基本的防护措施,那么手机锁屏密码怎么设置?来看看小编推荐的三种安 ...

  8. Extjs中三种不同的数据提交方式

    Extjs中三种不同的数据提交方式 Extjs的三种提交方式: 表单Ajax提交,普通提交,单独Ajax提交: 1.表单ajax提交(默认提交方式) 提交函数:当按下表单中的提交按钮时执行下面的btn ...

  9. 【redis】三种redis数据导出导入方式

    文章目录 1.概述 一.redis-dump方式 二.aof方式导入 三.rdb文件迁移方式 1.概述 转载:三种redis数据导出导入方式 一.redis-dump方式 redis-dump安装 y ...

最新文章

  1. ubunntu安装php7.0_在 Ubuntu/Debian 下安装 PHP7.3 教程
  2. 005-SDK框架之LYWSDKCallBackListener.h
  3. hdu5387(模拟)
  4. poj 1061 青蛙的约会
  5. LuoguP2292 L语言
  6. html5 制作神器,HTML5/Canvas 简单的泡沫生成器
  7. Excel Txt 字符集设置
  8. 如何快速解决腿抽筋?
  9. 【Pre-Training】关于 Transformer 那些的你不知道的事
  10. [编程开发工具-7]:四款功能强大的代码比较工具:Araxis Merge、Beyond compare、DiffMerge、WinMerge
  11. 泛微云桥e-Bridge任意文件读取
  12. html和css实现 字体变色 旋转 图标渐变
  13. C++ 智能指针 atuo_ptr,unique_ptr,shared_ptr,weak_ptr
  14. 计算机开机一直无法访问,电脑开机时显示:AutoIt 错误 不能打开脚本文件 如何处理...
  15. 太完美 TWM000极度精简版XP20130123终结美化版
  16. 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡
  17. 33个高能CSS选择器让我受益匪浅
  18. 新买笔记本误删office2021解决方法
  19. python编写程序计算三角形的面积_编程题:编写程序输入三角形的3条边长,计算并输出三角形的面积。...
  20. ZBrush中Magnify膨胀笔刷介绍

热门文章

  1. AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式
  2. 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
  3. 微服务升级_SpringCloud Alibaba工作笔记0018---Nacos之服务注册中心对比提升
  4. SpringCloud工作笔记074---Idea2018 1.6发现不支持@Slf4j,@Getter ,@Setter注解
  5. 找不到该项目,请确认该项目的位置的解决办法
  6. windows8 系统语言由中文修改为英文系统
  7. 人脸识别运行之前需要处理的问题
  8. [mysql] C++操作mysql方法
  9. 模态对话框与非模态对话框的区别
  10. org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update