智能手机最有存在感的部分
|
Kubernetes提供了命名空间,以在逻辑上将集群的各个部分彼此分开,在上述情况下,可以为每个应用程序实例使用单独的命名空间。 优点:有效利用资源 如果只有一个Kubernetes集群,则只需拥有运行和管理Kubernetes集群所需的所有资源的一个副本。 例如,这包括主节点,一个Kubernetes集群通常有3个主节点,如果只有一个集群,则总共只需要3个主节点(如果有10个Kubernetes集群,则只有30个主节点)。 但这还包括其他集群范围的服务,例如负载均衡,入口控制器,身份验证,日志记录和监控。 如果只有一个集群,则可以为所有工作负载重用这些服务,并且不必为多个集群拥有多个服务副本。 优点:低成本 较少的集群通常成本更低,因为集群数量多,资源开销越多。对于主节点而言尤其如此,这可能会花费大量的费用,无论是在本地还是在云中。 一些托管的Kubernetes服务免费提供了Kubernetes控制平台,如谷歌GKE或Azure的AKS,所以在这种情况下,成本效益不是问题。 但是,还有托管的Kubernetes服务,它们为运行Kubernetes集群收取固定的费用,例如AWS的EKS。 优点:高效管理 管理单个集群比管理多个集群容易。这可能包括以下任务:升级Kubernetes版本,设置CI/CD管道,安装CNI插件,设置用户认证系统,安装准入控制器。 如果只有一个集群,则只需完成一次。如果有许多集群,那么需要多次应用所有内容,这可能需要开发一些自动化的流程和工具,才能始终如一地做到这一点。 缺点:单点故障 如果只有一个集群并且集群发生故障,那么所有工作负载都将出问题。还有许多操作可能会导致故障,比如Kubernetes升级,集群范围内的组件(例如CNI插件)无法正常工作,对集群组件进行了错误的配置,基础架构发生故障。所以,如果只有一个共享集群,则可能会对所有工作负载造成影响。 缺点:没有硬安全隔离 如果多个应用程序在同一个Kubernetes集群中运行,所以这些应用程序在集群的节点上共享硬件,网络和操作系统。具体而言,在同一节点上运行的两个不同应用程序的两个容器在技术上是在相同硬件和操作系统内核上运行的两个进程。
Linux容器提供某种形式的隔离,但是这种隔离不如虚拟机提供的隔离强。在后台,容器中的进程仍然只是在主机操作系统上运行的进程。从安全角度来看,这可能是一个问题。从理论上讲,它允许无关的应用程序产生意外的交互。 通常,如果集群包含更大的节点和Pod之和,则可以将其定义为“更大”。例如,具有10个节点和100个Pods的集群大于包含1个节点和10个Pods的集群。 一个大型共享集群
第一种选择是在同一集群中运行所有工作负载。通过这种方法,可以像通用基础架构平台一样使用这个集群。无论需要运行什么,都可以将其部署到现有的Kubernetes集群中。 请注意,一个应用程序实例可能由多个组件组成,如前端,后端,数据库等。在微服务应用程序中,一个应用程序实例将由所有微服务组件构成。 作为Kubernetes的用户,一些问题会引发你的思考。是否应该在单个群集上运行所有应用程序实例?还是应该为每个应用程序实例都有一个单独的集群?还是应该结合使用呢? 下面是一些你可以选择选项:
|
