随时随地部署Kubernetes

容器(Container)提供了将应用程序以及其依赖关系与操作系统分离的能力。通过与虚拟机镜像不同的方式打包操作系统,容器可以节省大量的系统资源:比如说计算资源,内存和磁盘空间等。不仅如此,容器的下载,更新,部署和迭代也更加的快捷。正因为这样,在技术领域中,容器的应用已经引起了一场小规模的革命,并被很多云的提供商所采用。

随着技术的不断发展,为了满足容器编排和管理的需要,容器的小型化革命也带来了激烈的竞争。其中,Kubernetes已经成为业界领先的解决方案,其优势主要有以下三点:

  • 原生化云设计(Cloud-native design):支持部署和运行下一代应用程序
  • 开源性(Open-source):快速的迭代创新并可以避免被其他厂商锁定
  • 可移植性(Portability):无论是在云端,内部还是在虚拟机中,Kubernetes都可以随时随地进行部署

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

Kubernetes的容器编排

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

当我们选择了容器编排平台之后,下一步就可以开始部署Kubernetes了。正如我们之前所描述的那样,Kubernetes是一个便携式解决方案。因为Kubernetes使用了与笔记本电脑,云端或本地端相同的图像和配置,因此它的工作方式也与之完全相同。

1. Kubernets即服务(Kubernetes-as-a-Service)

这些解决方案提供了在各种各样的基础架构中部署Kubernetes的能力:比如说公共云或内部部署。以下几点就是为Kubernetes集群选择此方法的优势:

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

Platform9StackPoint.io便应用了Kubernetes-as-a-Service的解决方案。

2.托管基础设施

我们知道,将容器快速启动的方法就是将容器放置在公有云中,但是其中的数据也将驻留在网络边界和防火墙之外。

但是使用一些行业领先的解决方案的话,用户可以自由地选择容器编排平台(Kubernetes,Docker Swarm,DCOS),以及它还能在除了Linux之外的操作系统上(例如windows)部署容器化的应用程序。

3.本地化部署

Minikube是在本地部署Kubernetes中最流行的方式。它支持各种管理程序(hypervisor),包括VirtualBox,VMware Fusion,KVM和xhyve以及各种OS,包括OSX,Windows和Linux。下面的插图进一步描述了Minikube的部署:

Deployment with 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-as-a-service),Kubernetes托管基础设施(Kubernetes hosted infrastructure),和Minikube只是三种部署Kubernetes的方式。如果您想参考各种部署模型的详细分析,注意事项,优缺点以及正面对比,请参考以下部署指南

下一步

本文的版权归 Zach展 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

容器生产落地需要考虑的几点因素

前言: 本文是笔者与同事陈耿共同完成,不代表任何官方观点。 随着容器技术的持续发酵,以及互联网+应用的持续扩张,目前金融行业使用容器云上生产的案例越来越多。在本...

3664
来自专栏写代码的海盗

Docker学习总结之docker介绍 Why Docker?About this guide

About Docker 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译 Develop, Ship and Run Any Applica...

2635
来自专栏程序你好

Microservices工具箱- Docker

如果您想要进入微服务开发,您将希望在您的机器上运行多个东西。让服务、数据库、消息代理等在您的机器上工作而没有冲突可能是非常困难的。Docker完美地解决了这个问...

1032
来自专栏美团技术团队

美团点评Docker容器管理平台

本文介绍美团点评的Docker容器集群管理平台(以下简称“容器平台”)。该平台始于2015年,是基于美团云的基础架构和组件而开发的Docker容器集群管理平台。...

5017
来自专栏人称T客

Docker容器服务需要牢记的五个问题|资讯

关键词:Docker,容器服务 ? 进入2015年,容器技术突然开始变得炙手可热,特别是随着Docker的出现,更是将容器技术推向了顶峰,甚至让人有一种错觉—...

2925

在任何地方部署Kubernetes

容器提供了将应用程序及其依赖关系与操作系统解耦的能力。通过与虚拟机镜像相同的不打包操作系统的方式,容器可以节省大量的系统资源:计算,内存和磁盘空间。容器的下载,...

22910
来自专栏跟我一起学Docker

第九章 Kubernetes一撇

https://www.aliyun.com/solution/kubernetes/index

1144
来自专栏CSDN技术头条

Docker 1.9版本修复互联和存储的缺陷

Docker 1.9发布了,并且它修复了Docker用户长期以来的顽疾:互联(Networking)。 Multi-Host Docker Networking...

1927
来自专栏漫漫深度学习路

pytorch: 如何优雅的将 int list 转成 one-hot形式

虽然 pytorch 已经升级到 0.2.0 了,但是,貌似依旧没有简单的 api 来帮助我们快速将 int list 转成 one-hot。那么,如何优雅的实...

60110
来自专栏zhangdd.com

Docker简介

Docker是开源项目。Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后受到广泛的关注和讨...

2072

扫码关注云+社区

领取腾讯云代金券