三种主流的Kubernetes部署方式

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

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

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

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

容器微型革命也带来了激烈的竞争,竞争满足了容器编排和管理的需要。作为Google的开源容器编排引擎,Kubernetes已经成为领先的解决方案(包括Amazon ECSDocker 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解决方案的示例包括Platform9StackPoint.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: nginx
    image: nginx
    ports:
    - containerPort: 80
EOF
kubectl create -f example.yaml

总结

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

下一步

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

原文发布时间为:2017-08-29

本文作者:justinfu

本文来自合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:三种主流的Kubernetes部署方式

时间: 2024-10-03 03:06:35

三种主流的Kubernetes部署方式的相关文章

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

不知道大家对无线同屏技术有多少了解,当这种技术普及的时候,我想我们的工作与生活又会方便很多吧!下面是目前三种主流同屏技术的介绍: 目前这种将终端信号经由WiFi传输到电视.电视盒的技术有三种:DLNA.AirPlay.Miracast. AirPlay: AirPlay 是苹果开发的一种无线技术,可以通过WiFi将iPhone .iPad.iPodtouch 等iOS 设备上的包括图片.音频.视频通过无线的方式传输到支持AirPlay 设备.售价99美元的Apple TV就具备这样的功能,现在一

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

到底应该选择哪种Linux.NET的部署方式? 当前部署Linux.NET环境的方式可谓是五花八门,既有传统的源码编译的方式.又有各式各样的一键安装脚本.还有绿色包安装方式,而随着Mono官方的新站上线,更增加了采用RPM包的部署方式.那对于一名Linux.NET的初学者来说,我们又该如何选择?下面,本文将对这几种的安装方式进行优缺点的比较,从而协助各位读者选择出最佳的部署方式. 本文中,我们将对下列的部署方式展开讨论: 1.源码编译 2.一键安装脚本 3.RPM包 4.绿色包  一.源码编译

java中三种主流数据库数据库(sqlserver,db2,oracle)的jdbc连接总结

原文http://www.cnblogs.com/PatrickChen/archive/2008/12/08/1350395.html 其实java开发中连接数据库的主要问题不是如何写代码,而是找驱动包.因为jdbc的驱动包太多,并且名目繁多,有的还需要安装客户端才能运行. 项目实践中,总结出三种主流数据库中,Java的驱动和连接字符串,均无需安装客户端: 一.             Sqlserver: 驱动包:sqljdbc.jar 实例: String _driverName = "c

Java处理XML的三种主流技术一些总结和介绍

最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完善,人们越来越发现它所具有的优点:例如标记语言可扩展,严格的语法规定,可使用有意义的标记,内容存储和表现分离等等优势注定了该语言从诞生之日起就会走向辉煌. XML 语言在成为 W3C 标准之后进入到了一个快速发展的时期,当然它本身所具有的一系列优点和优势也注定了各大技术厂商对它的偏爱,Java 作为软件行业的一种开发技术也迅速作出了反应,出现了多种对 XML 支持的工具,本文将会从这个角度对 Jav

关于三种主流WEB架构的思考_应用技巧

 以下想法主要以PHP实现为示例,但很多体会我想Java,.NET,Ruby开发者应该也很容易理解.最后是我对于刚面世就引起无数人关注的Delphi fo PHP的评测. WEB程序的架构基本上可以分成以下三类: (一) 基于"WEB页面/文件",例如CGI和PHP/ASP程序.程序的文件分别存储在不同的目录里,与URL相对应.当HTTP请求提交至服务器时,URL直接指向某个文件,然后由该文件来处理请求,并返回响应结果. 比如http://www.website.conm/news/r

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

XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体.本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出最优的选择. 最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完善,人们越来越发现它所具有的优点:例如标记语言可扩展,严格的语法规定,可使用有意义的标记,内容 存储和

解析微信电商的三种主流玩法

过去1年的时间,微信已经成为电商最重要的一个通道. 我认为,传统朋友圈卖货的玩法是吃了第一波红利,是小生意的赚钱做法,但现在,这种玩法已经OUT,随着越来越多大厂商的加入,取而代之的是新的3种主流玩法: 1.微店时代的独立平台模式,这个模式的核心是渠道销售.过去的朋友圈卖货只是小打小闹的生意,要想做大,不但要通过第三方开发微信店铺,而但还必须有一套完善的营销链条.这方面的典型案例,是一些敏感的快消品创业型公司,比如卖衣服.卖生鲜.卖面膜的公司. 2.线上加线下的O2O模式,这个模式的核心是线上加

SQL Server教程:三种导入导出数据使用方式比较

  在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验.净化和转换时,将会面临很大的挑战.幸好SQL Server为我们提供了强大.丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理. 在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理.这三种方法各有其特点,下面就它们的主要特点进行比较. 一.使用方式

浅析iPhone平台 三种应用类型的布局方式

在手机这样一个小小的有限的屏幕尺寸里,要使界面保持清晰合理.简洁美观,就涉及到产品"框架布局"的设计问题,我们需要根据不同的产品需求及应用场景来设计合理的界面布局. iPhone平台的标准界面布局为顶部标题栏.中部内容区.底部工具栏/标签栏,设计师们根据不同的应用类型以及不同的使用情境进行着巧妙的布局,其中不乏很多勇于打破常规,精巧合理的布局设计.今天就一起来看看iPhone平台多样化的界面布局方式. iPhone平台有三种类型的应用: 效率型应用(Productivity Appli