首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在任何地方部署Kubernetes

在任何地方部署Kubernetes

作者头像
Sepmer Fi
发布2018-01-08 14:06:32
1.5K0
发布2018-01-08 14:06:32

容器提供了将应用程序及其依赖关系与操作系统解耦的能力。通过与虚拟机镜像相同的不打包操作系统的方式,容器可以节省大量的系统资源:计算,内存和磁盘空间。容器的下载,更新,部署和迭代也更快。因此,在技术领域,容器已经引起了一场小规模的革命,并被谷歌,微软和亚马逊等公司所采用。

容器引发的小型化革命也给满足容器业务和管理的需要带来了激烈的竞争。谷歌的开源容器管理应用Kubernetes已经成为领先的解决方案(通Amazon ECSDocker Swarm等同类产品竞争),主要有三个原因:

  • 云原生设计:支持部署和运行下一代应用程序
  • 开源性:快速创新,避免厂商锁定
  • 可移植性:部署在任何地方,无论是在云端,特定平台还是在虚拟机中等都可以部署

下图显示了Kubernetes在原生云部署中的作用:

Kubernetes容器管理解决方案
Kubernetes容器管理解决方案

正如上图所示,Kubernetes可以部署和管理您的容器化应用程序,其中包括NGINX,MySQL,Apache等等。它可以为容器提供布局,伸缩,复制,监视和其他功能。

一旦选择了容器管理平台,下一步就是部署Kubernetes。如前所述,Kubernetes是一个可移植解决方案。由于Kubernetes使用相同的镜像和配置,因此它在笔记本电脑,云端或本地端上的工作方式完全相同。

1. Kubernetes-as-a-Service

这些解决方案提供了在各种基础架构中部署Kubernetes的能力:无论是公共云部署或者本地部署。选择Kubernetes集群优势包括:

  1. 通过KaaS提供商进行升级,监控和支持
  2. 轻松扩展混合云或多云环境
  3. 多个群集的单个窗格集合视图
  4. 高度可用的多主Kubernetes集群可根据工作负载自动扩展和缩小
  5. 常见的企业集成,如SSO /独立的命名空间; 以及通过Helm图表部署应用程序的能力
  6. 集群联合提供跨多个云或数据中心的真正无缝的混合环境。

Kubernetes-as-a-Service
Kubernetes-as-a-Service

Kubernetes-as-a-Service解决方案的例子包括Platform9StackPoint.io

2.使用公共云平台

Google Cloud Platform和Microsoft Azure分别通过Google容器引擎(GKE)和Azure容器服务(ACS)提供Kubernetes 。将容器放置在公共云中可以使你快速上手,但你的数据因此将驻留在网络边界和防火墙之外。

Google的GKE在公共云供应商之间保持着领先地位。谷歌一直在通过一个名为Borg的集群管理器广泛地使用容器来进行内部项目,并且已有十年以上的经验(来源:TheNextPlatform)。相比之下,微软的ACS更年轻,Kubernetes支持在2017年2月才被引入。然而,ACS提供更多了灵活性:用户可以选择容器管理平台(Kubernetes,Docker Swarm,DCOS),以及除了Linux之外,还可选择在Windows上部署容器化的应用程序。如下所示,GKE和ACS完全基于公有云,Kubernetes服务和基础架构由服务提供商部署和管理。

Kubernetes与公共云服务商
Kubernetes与公共云服务商

3.本地部署

Minikube是在本地部署Kubernetes最流行的方式。它支持各种虚拟机服务商,包括VirtualBox,VMware Fusion,KVM和xhyve,在操作系统方面也有广泛的支持,包括OSX,Windows和Linux。下图进一步描述了Minikube的部署:

使用Minikube进行部署
使用Minikube进行部署

部署Minikube

如上所示,用户使用Minikube CLI和Kubernetes的本机CLI Kubectl与用户的笔记本交互。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即服务,Kubernetes公共云部署,以及Minikube是仅有的三种部署Kubernetes的方式。请参考部署指南,详细分析各种部署模型,注意事项,优缺点以及对比。

下一步

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Kubernetes-as-a-Service
  • 2.使用公共云平台
  • 3.本地部署
  • 最后简单说两句
  • 下一步
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档