在任何地方部署Kubernetes

来源:互联网 发布:linux udp端口禁用 编辑:程序博客网 时间:2024/05/18 16:14

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

集装箱小型革命也带来了激烈的竞争,满足了集装箱配送和管理的需要。Google的开源集装箱协调员Kubernetes已经成为领先的解决方案(包括Amazon ECSDocker Swarm等替代品),主要有三个原因:

  • 云本机设计:支持部署和运行下一代应用程序
  • 开放源码性质:快速创新,避免供应商锁定
  • 可移植性:无论在云,内部部署,虚拟机等任何地方部署。

下图显示了Kubernetes可以在云本地部署中扮演的角色:



Kubernetes集装箱业务

如您所见,Kubernetes可以部署和管理您的集装箱化应用程序,包括NGINX,MySQL,Apache等。它可以为容器提供放置,缩放,复制,监视和其他功能。

一旦您选择了容器编排平台,下一步就是部署Kubernetes如前所述,Kubernetes是一种便携式解决方案。因为Kubernetes使用相同的图像和配置,所以它在笔记本电脑,云端或本地的工作方式完全相同。


1.Kubernetes-as-a-Service:

这些解决方案能够在各种基础设施中部署库伯纳斯:公共云或内部部署。为Kubernetes集群选择这种方法的优点包括:

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


Kubernetes-as-a-Service


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


2.托管基础设施:

Google Cloud Platform和Microsoft Azure分别通过Google集装箱引擎(GKE)和Azure Container Service(ACS)提供了Kubernetes 将容器放在公共云中可以快速启动,但是您的数据现在将驻留在网络外围和防火墙之外。

Google的GKE引领其他公共云供应商。Google通过名为Borg的集群管理器,广泛使用容器内部项目,并拥有超过十年的经验(来源:TheNextPlatform)。相比之下,Microsoft的ACS是一个年轻的产品,而Kubernetes的支持仅在2017年2月才推出。然而,ACS提供了灵活性:用户可以选择容器编排平台(Kubernetes,Docker Swarm,DCOS),以及除了Linux之外,在Windows上部署容器化应用程序。如下图所示,GKE和ACS完全基于公共云,Kubernetes服务和基础设施由托管提供商部署和管理。



3.本地部署:

Minikube是在当地部署Kubernetes的最受欢迎的方式它支持各种虚拟机管理程序,包括VirtualBox,VMware Fusion,KVM和xhyve以及OS,包括OSX,Windows和Linux。下图说明了Minikube的部署:


使用Minikube进行部署

如上所示,用户使用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的三种方式。

原文:https://dzone.com/articles/deploy-kubernetes-anywhere
阅读全文
0 0