三种主流的Kubernetes部署方式
【译者的话】本文分析介绍了三种主流的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集群选择这种方式的优点包括:
- 通过KaaS提供商进行升级、监控和获取支持;
- 混合云或多云环境的轻松扩展
- 多个集群的统一视图
- 高度可用的多master Kubernetes集群,根据工作负载自动扩容缩容
- 通用企业集成,如SSO/隔离命名空间;以及通过Helm charts部署应用程序的能力
- 集群联邦,可在多个云或数据中心之间提供真正无缝的混合环境
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部署方式相关推荐
- 基于web端和C++的两种深度学习模型部署方式
深度学习Author:louwillMachine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理.一种是基于web服务端的模型部署,一种是基... 深度学习 Author:l ...
- 到底应该选择哪种Linux.NET的部署方式?
到底应该选择哪种Linux.NET的部署方式? 当前部署Linux.NET环境的方式可谓是五花八门,既有传统的源码编译的方式.又有各式各样的一键安装脚本.还有绿色包安装方式,而随着Mono官方的新站上 ...
- 移动GPU三种主流架构优缺点浅析
导读: GPU是Graphic Processor Unit的简称,顾名思义就是图形处理器. GPU的概念最早是从图形工作站发展而来,从90年代的个人电脑普及开始,GPU迎来了其大发展的时代. 在90 ...
- 三种主流无线同屏技术介绍(Miracast、DLNA与AirPlay技术)
不知道大家对无线同屏技术有多少了解,当这种技术普及的时候,我想我们的工作与生活又会方便很多吧!下面是目前三种主流同屏技术的介绍: 目前这种将终端信号经由WiFi传输到电视.电视盒的技术有三种:DLNA ...
- 当前java web架构形式_关于三种主流WEB架构的思考
关于三种主流WEB架构的思考Haohappy haohappy AT msn.com转载请注明来源: 做WEB好几年了,各种语言和技术都稍有涉猎.今天心血来潮,突然想总结一下.其实不论什么技术,什么 ...
- Java处理XML的三种主流技术及介绍
Java处理XML的三种主流技术及介绍(1) 2012-08-15 10:44 顾彬/冯晨/乔彬 IBM developerWorks 我要评论(0) 字号:T | T XML (eXtensible ...
- android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐
手机中有很多应用都是与金钱挂钩,特别是微信与支付宝等等既涉及到隐私又与财产关联,这是后手机的安全就尤为重要的,而手机的锁屏密码就是一道最基本的防护措施,那么手机锁屏密码怎么设置?来看看小编推荐的三种安 ...
- Extjs中三种不同的数据提交方式
Extjs中三种不同的数据提交方式 Extjs的三种提交方式: 表单Ajax提交,普通提交,单独Ajax提交: 1.表单ajax提交(默认提交方式) 提交函数:当按下表单中的提交按钮时执行下面的btn ...
- 【redis】三种redis数据导出导入方式
文章目录 1.概述 一.redis-dump方式 二.aof方式导入 三.rdb文件迁移方式 1.概述 转载:三种redis数据导出导入方式 一.redis-dump方式 redis-dump安装 y ...
最新文章
- ubunntu安装php7.0_在 Ubuntu/Debian 下安装 PHP7.3 教程
- 005-SDK框架之LYWSDKCallBackListener.h
- hdu5387(模拟)
- poj 1061 青蛙的约会
- LuoguP2292 L语言
- html5 制作神器,HTML5/Canvas 简单的泡沫生成器
- Excel Txt 字符集设置
- 如何快速解决腿抽筋?
- 【Pre-Training】关于 Transformer 那些的你不知道的事
- [编程开发工具-7]:四款功能强大的代码比较工具:Araxis Merge、Beyond compare、DiffMerge、WinMerge
- 泛微云桥e-Bridge任意文件读取
- html和css实现 字体变色 旋转 图标渐变
- C++ 智能指针 atuo_ptr,unique_ptr,shared_ptr,weak_ptr
- 计算机开机一直无法访问,电脑开机时显示:AutoIt 错误 不能打开脚本文件 如何处理...
- 太完美 TWM000极度精简版XP20130123终结美化版
- 383-基于kintex UltraScale XCKU040的双路QSFP+光纤PCIe 卡
- 33个高能CSS选择器让我受益匪浅
- 新买笔记本误删office2021解决方法
- python编写程序计算三角形的面积_编程题:编写程序输入三角形的3条边长,计算并输出三角形的面积。...
- ZBrush中Magnify膨胀笔刷介绍
热门文章
- AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式
- 软考信息系统项目管理师_项目进度管理2---软考高级之信息系统项目管理师014
- 微服务升级_SpringCloud Alibaba工作笔记0018---Nacos之服务注册中心对比提升
- SpringCloud工作笔记074---Idea2018 1.6发现不支持@Slf4j,@Getter ,@Setter注解
- 找不到该项目,请确认该项目的位置的解决办法
- windows8 系统语言由中文修改为英文系统
- 人脸识别运行之前需要处理的问题
- [mysql] C++操作mysql方法
- 模态对话框与非模态对话框的区别
- org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update