概述
容器和Kubernetes是为运行应用程序提供可重复的标准方法的技术。主要的区别在于规模和可移植性。容器及其共享操作系统(OS)的轻量级特性使它们非常容易跨多个环境(如云和数据中心)迁移。虚拟机(vm)包含它们自己的操作系统,允许它们模拟整个服务器、操作系统、数据库、桌面和网络。容器优先、原生云应用程序是未来的趋势,但还不是每个应用程序都适合原生云。
原生云应用的四个关键支柱是容器、DevOps、CI/CD(持续集成/持续交付)和微服务。将遗留的单片应用程序迁移到云原生应用程序通常需要大量的重构工作。有时VM比容器更好,例如,对于LDAP/Active Directory应用程序、令牌化应用程序和需要密集GPU工作负载的应用程序。当一些云原生应用程序运行在Kubernetes上,而另一些应用程序运行在vm上,特别是作为同一It系统的一部分时,情况可能会变得复杂。如果可以在Kubernetes平台上同时运行容器和vm会怎样?
Kubernetes上运行vm
Rafay解决了已经采用或想要采用Kubernetes但拥有现有的基于虚拟机的工作负载的开发团队的需求,这些工作负载无法轻松地进行容器化。更具体地说,该技术提供了一个统一的平台,开发人员可以在该平台上构建、修改和部署基于容器和虚拟机的应用程序,并将其置于一个公共的共享环境中。依赖于现有基于vm的工作负载的团队可以快速地将应用程序装入容器。通过将虚拟化的工作负载直接放置在开发工作流中,团队可以随着时间的推移对其进行分解,同时仍然按照理想的方式利用剩余的虚拟化组件。在Kubernetes上运行虚拟机的另一个好处是,通过利用单一技术自动化堆栈来部署应用程序的DevOps团队可以减少认知负载。
k8s运行在vm中节省成本
在Kubernetes上运行vm的好处还包括通过整合技术栈节省成本。您不必为虚拟化和容器平台运行独立的基础设施集,而是可以开始为共同的目的集中这些堆栈。一旦您开始将虚拟机迁移到Kubernetes,您就可以开始看到在软件和公用事业成本方面的额外节省。根据您的工作负载,您还可以完全利用Kubernetes打包和调度应用程序的能力来减少基础设施占用的空间。
如何做到分钟级交付k8s集群
官僚主义盛行的公司能给你很快提供机器并保证可靠运行吗? 一周 一个月 半年。 需求的完成速度太慢,不及技术发展的速度。
Another situation is when you work in an organization that is already very heavily wedded to virtualized infrastructure or particular virtualization vendors. In this case, running nodes as VMs simply poses less of a bureaucratic headache. Or maybe there are logistical challenges with acquiring and setting up bare metal servers. If you can self-service some VMs in a few minutes, versus taking months to get physical servers, just use the VMs if it suits your timeline better. Your organization may also be wedded to a managed Kubernetes platform offered by a cloud provider that only runs containers on VMs. Anthos, Google Cloud’s managed hybrid multicloud Kubernetes offering, supports bare-metal deployments, and so does Red Hat’s OpenShift. AWS’s EKS Anywhere bare metal support is coming later this year.
安全性
如果你是用的aws,有一天因为某些原因。你的集群被亚马逊冻结了。所有的一切都完了,这对一个企业来说是毁灭性的,特别是你的数据如果非常机密急需要这钟方式,如果你觉得可以重头再来那也没什么影响。 这是一种trade off
但是如果你的集群是运行在vm中,且有完善的备份机制。那直接可以拿着你的备份快速在其他云服务上或者自己的数据中心恢复。
通常情况下,您不应该让对vm的依赖阻止您使用Kubernetes。最好利用云原生技术,而不是因为不能拥有最佳的基础设施而停留在过去。
vm显然在许多Kubernetes集群中占有一席之地,而且这一点可能永远不会改变。但当涉及到性能优化、精简产能管理或降低操作复杂性等问题时,Kubernetes在裸金属领域的表现就领先了。
k8s on bare 仅仅只会快一点
性能与易用性的问题
虚拟机更容易发放和管理,至少在某些方面是这样。当您可以将节点设置为VM并使用VM供应商的编排工具编排它们时,您不需要关心底层服务器硬件的细节。您还可以利用黄金映像之类的东西来简化VM的发放。
另一方面,如果不考虑系统管理程序,则不必花费硬件资源运行虚拟化软件或客户操作系统。您的所有物理CPU和内存都可以分配给业务工作负载。
但重要的是不要夸大这种性能优势。现代管理程序非常高效。例如,与裸金属相比,VMware报告的hypervisor开销率仅为2%。您必须在此基础上再加上运行客户操作系统的开销成本,但vm和裸金属之间的原始性能差异仍然可以忽略不计,至少当您不试图从基础设施中榨取每一点计算能力时是这样。(在某些情况下,2%的差异是有意义的。)
当所有这些都说到做到的时候,虚拟化将会减少你的pod的总资源可用性约10%到20%。
参考: 【1】