随时随地部署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的方式。如果您想参考各种部署模型的详细分析,注意事项,优缺点以及正面对比,请参考以下部署指南

下一步

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
随时随地部署Kubernetes
Kubernetes 可以部署和管理您的容器化应用程序,其中包括 NGINX,MySQL,Apache 等等。
<<上一篇
下一篇>>