返回顶部
首页 > 资讯 > 前端开发 > JavaScript >有哪些构建Kubernetes集群
  • 481
分享到

有哪些构建Kubernetes集群

2024-04-02 19:04:59 481人浏览 八月长安
摘要

这篇文章主要讲解了“有哪些构建kubernetes集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些构建Kubernetes集群”吧!集群分析在不同的

这篇文章主要讲解了“有哪些构建kubernetes集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些构建Kubernetes集群”吧!

集群分析

在不同的应用开发环境中,你通常会开发和运行多个应用程序。此外,通常在不同的环境中运行这些应用程序的多个实例,比如你可能用开发环境,测试环境和生产环境。

于是,这将导致应用程序和环境组成不同的交集。在下面的示例中,有3个应用程序和3个环境,产生了9个应用程序的实例。每个应用程序实例都是一个可独立运行的独立部署单元。

有哪些构建Kubernetes集群

请注意,一个应用程序实例可能由多个组件组成,如前端后端数据库等。在微服务应用程序中,一个应用程序实例将由所有微服务组件构成。

作为Kubernetes的用户,一些问题会引发你的思考。是否应该在单个群集上运行所有应用程序实例?还是应该为每个应用程序实例都有一个单独的集群?还是应该结合使用呢?

下面是一些你可以选择选项:

  • 一个大型共享集群

  • 许多小型一次性集群

  • 每个应用程序的集群

  • 每个环境的集群

前两种方法是从几个大型集群到多个小型集群的规模极限,如下图所示:

有哪些构建Kubernetes集群

通常,如果集群包含更大的节点和Pod之和,则可以将其定义为“更大”。例如,具有10个节点和100个Pods的集群大于包含1个节点和10个Pods的集群。

一个大型共享集群

第一种选择是在同一集群中运行所有工作负载。通过这种方法,可以像通用基础架构平台一样使用这个集群。无论需要运行什么,都可以将其部署到现有的Kubernetes集群中。

有哪些构建Kubernetes集群

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容器提供某种形式的隔离,但是这种隔离不如虚拟机提供的隔离强。在后台,容器中的进程仍然只是在主机操作系统上运行的进程。从安全角度来看,这可能是一个问题。从理论上讲,它允许无关的应用程序产生意外的交互。

此外,所有在Kubernetes集群共享某些集群范围的服务,如工作负载DNS,这使得应用可发现集群中的其他应用程序的服务。

所以,这些问题可能是否会出现问题,具体取决于应用程序的安全要求。

Kubernetes提供了各种防止安全漏洞的方法,例如PodSecurityPolicies和NetworkPolicies,但是,它需要经验来以完全正确的方式来调整这些工具,并且它们也不能防止所有的安全漏洞。

而且,Kubernetes是为共享而设计的,而不是为了隔离和安全而设计的。

缺点:多租户资源侵占

Kubernetes集群中有许多共享资源,不同的应用程序可以通过多种方式侵占资源。比如,一个应用程序可能会占据某个共享资源(例如CPU或内存),从而使同一节点上运行的其他应用程序无法运行。

Kubernetes提供了多种方法来控制这种行为,例如资源请求和限制,ResourceQuotas和LimitRanges。但是,以完全正确的方式调整这些工具并不是一件容易的事,它们也无法防止所有不必要的副作用。

缺点:用户权限复杂

如果只有一个集群,则企业中的许多人必须有权访问集群。用户使用系统的机会越多,破坏的风险就越高。在集群中,你可以控制哪些人可以使用基于角色的访问控制(RBAC)进行操作。但是,这仍然不能防止用户破坏其授权范围内的某些行为。

缺点:集群不能无限大

如果将单个群集用于所有工作负载,则集群可能会很大(就节点和Pods而言)。但是,Kubernetes集群不能无限增长。

对于集群的大小,存在一些理论上限,Kubernetes大约在5000个节点,150000个Pods和300000个容器的定义。但是,实际上,使用较小的集群大小(例如500个节点)可能已经出现了挑战。

原因是较大的集群对Kubernetes控制平面施加了更高的压力,这需要仔细计划来保持集群的功能和效率。

许多小型一次性集群

使用这种方法,可以为每个部署单元使用单独的Kubernetes集群(本文中,部署单元是一个应用程序实例,例如单个应用程序的开发版本),通过这种策略,Kubernetes专用于各个应用程序实例。

有哪些构建Kubernetes集群

优点:故障半径减小

如果集群发生故障,则损害仅限于这个集群上运行的工作负载,而其他所有工作负载均不受影响。

优点:隔离

在各个集群中运行的工作负载不会共享任何资源,例如CPU,内存,操作系统,网络或其他服务。

这样可以在不相关的应用程序之间提供强大的隔离,这对于这些应用程序的安全性是一大优势。

优点:很少的用户

如果每个集群仅运行一组工作负载,则需要访问该集群的人数将减少。访问集群的人越少,发生故障的风险越低。

缺点:资源利用效率低

如前所述,每个Kubernetes集群都需要一组管理资源,例如主节点,控制平面组件,监控和日志记录解决方案。如果有许多小型集群,则必须为这些管理功能牺牲更高的总资源。

缺点:成本高

资源使用效率低下会自动导致更高的成本。如果必须运行30个主节点而不是3个主节点才能获得相同的计算能力,那么成本高是必然的。

缺点:综合管理

管理许多Kubernetes集群比管理单个Kubernetes集群更为复杂。比如需要为每个集群设置身份验证和授权,如果要升级Kubernetes版本,则也需要执行多次。你可能需要开发一些自动化工具。

每个应用程序的集群

使用这种方法,可以为特定应用程序的所有实例创建一个单独的集群。可以将其视为每个团队负责集群的范围,因为通常一个团队会开发一个或多个应用程序。

有哪些构建Kubernetes集群

优点:可以为应用程序定制集群

如果应用程序有特定要求,则可以将这些要求安装在集群中,而不会影响任何其他集群。这样的要求可能包括工作节点,某个CNI插件,服务网格或任何其他服务。每个群集都可以完全配备相应应用程序所需的配置。

缺点:同一集群中的不同环境

这种方法的缺点是来自不同环境的应用程序实例在同一群集中运行。例如,应用程序的生产版本与开发版本在同一集群中运行,这也意味着开发人员在与应用程序的生产版本相同的集群中工作。所以,如果一个开发人员或开发版本创建集群中的一些损坏,生产版本可能也受到影响。

每个环境的集群

使用这种方法,可以为每个环境创建一个单独的集群。例如,可以拥有一个开发,测试和生产集群,在其中运行特定环境的所有应用程序实例。

有哪些构建Kubernetes集群

优点:产品环境的隔离

通常,这种将所有环境相互隔离,但是实际上,这对于产品环境尤其重要。现在,应用的生产版本不受任何其他集群和应用环境中发生的任何事情的影响。

因此,如果某些配置错误在开发集群中造成破坏,则应用程序的生产版本将继续运行。

优点:可以针对环境定制集群

可以针对每个集群的环境进行优化,比如,在开发集群中安装开发和调试工具;在测试集群中安装测试框架和工具;对产品集群使用更强大的硬件和网络连接;可以提高应用程序的开发和运行效率。

优点:定对生产集群的访问

没有人需要在生产集群上进行开发工作,因此可以限制对其的访问。甚至可以根本不向任何人授予对生产集群的访问权限,可以通过自动CI/CD工具对该集群进行部署。这将极大地减少生产集群中人为错误的风险。

缺点:应用之间缺乏隔离

主要缺点是应用之间缺少硬件和资源隔离。不相关的应用程序共享集群资源,例如操作系统内核,CPU,内存和其他一些服务。这可能有潜在的安全问题。

缺点:应用要求未本地化

如果应用程序有特殊要求,则所有集群中都必须满足这些要求。如一个应用程序需要一个GPU,则每个集群必须至少有一个GPU工作节点,即使它仅由一个应用程序使用。这可能会导致成本增加和资源使用效率低。

感谢各位的阅读,以上就是“有哪些构建Kubernetes集群”的内容了,经过本文的学习后,相信大家对有哪些构建Kubernetes集群这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 有哪些构建Kubernetes集群

本文链接: https://lsjlt.com/news/84751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 有哪些构建Kubernetes集群
    这篇文章主要讲解了“有哪些构建Kubernetes集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些构建Kubernetes集群”吧!集群分析在不同的...
    99+
    2024-04-02
  • Minikube搭建Kubernetes集群
    Minikube 打开 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下载最新版本的二进...
    99+
    2024-04-02
  • Kubernetes 集群搭建(上)
    不知道各位对Kubernetes了解多少呢?如果还是有一些了解,建议你读一下这篇文章,或许对你有些许帮助 !阅读本文您需要具备一下知识点:1.Kubernetes2.kubeadm3.docker以上三点如过各位看官都知晓,那么请尽情食用,...
    99+
    2023-06-05
  • Kubernetes集群主要启动参数有哪些
    这篇文章主要介绍了Kubernetes集群主要启动参数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明:每个服务可以通过运行“cmd --help”命令进行查看,其中...
    99+
    2023-06-04
  • Kubernetes集群怎么搭建
    本篇内容介绍了“Kubernetes集群怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Kubernetes 是一个可移植的、可扩展的...
    99+
    2023-06-27
  • 如何使用PHP和Kubernetes构建容器集群
    随着云计算技术的发展,容器化架构已经成为云计算领域的热门技术之一。Kubernetes是一个开源的容器编排系统,它能够帮助开发者对容器化应用进行自动化部署、缩放、运维等操作。而PHP是一种流行的Web开发语言,它被广泛应用于Web应用的开发...
    99+
    2023-05-23
    PHP Kubernetes 容器集群
  • Kubernetes集群的搭建方法
    本篇内容主要讲解“Kubernetes集群的搭建方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kubernetes集群的搭建方法”吧!0. 概要使用kubeadm搭建一个单节点kuberne...
    99+
    2023-06-19
  • Minikube如何搭建Kubernetes集群
    这篇文章主要介绍了Minikube如何搭建Kubernetes集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Minikube打开 https://github....
    99+
    2023-06-29
  • kubernetes之statefulset搭建MySQL集群
    目录实现步骤具体代码创建一个 StatefulSet 对象来定义mysql创建一个 headless service实现步骤 在 Kubernetes 集群中创建一个 StatefulSet 对象。创建一个 headle...
    99+
    2023-04-19
    kubernetes statefulset搭建MySQL statefulset搭建MySQL集群
  • Ubuntu怎么搭建Kubernetes集群
    这篇文章主要介绍“Ubuntu怎么搭建Kubernetes集群”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu怎么搭建Kubernetes集群”文章能帮助大家解决问题。关于 Kuberne...
    99+
    2023-07-04
  • MySQL集群架构优劣势有哪些
    本篇内容介绍了“MySQL集群架构优劣势有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、主从复制架...
    99+
    2024-04-02
  • 怎样进行Kubernetes 集群搭建
    这期内容当中小编将会给大家带来有关怎样进行Kubernetes 集群搭建,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,...
    99+
    2023-06-05
  • mysql集群有哪些
    MySQL集群方案有:LVS+Keepalived+MySQL、DRBD+Heartbeat+MySQL、MySQL Proxy、MySQL Cluster、MySQL + MHA、MySQL + MMM等等,MySQL集群是一个无共享的(...
    99+
    2024-04-02
  • Redis集群搭建的方式有哪些
    这篇文章主要介绍Redis集群搭建的方式有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、单节点实例单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个Redis 还是很轻松的,做为...
    99+
    2023-06-15
  • tomcat集群搭建的方法有哪些
    搭建Tomcat集群的方法有以下几种:1. 负载均衡器:使用负载均衡器(如Nginx、Apache)来接收客户端请求,并将请求分发给...
    99+
    2023-09-06
    tomcat
  • 搭建hadoop集群的方式有哪些
    搭建Hadoop集群的方式有以下几种:1. 手动搭建:手动在每个节点上安装和配置Hadoop组件,包括HDFS、YARN和MapRe...
    99+
    2023-10-08
    hadoop
  • postgresql集群搭建的方式有哪些
    在 PostgreSQL 中搭建集群有多种方式,以下是一些常见的方法: 基于 PostgreSQL 的内置复制功能搭建流复制集群...
    99+
    2024-04-09
    postgresql
  • VirtualBox+Ubuntu16搭建Kubernetes集群的实现
    目录关于 Kubernetes基础环境准备安装 VirtualBox下载 Ubuntu 16 系统镜像虚拟机 x3虚拟机 IP配置主机名SSH 无密连接Kubernetes 集群搭建...
    99+
    2024-04-02
  • kubernetes中搭建spark集群的方式
    这篇文章主要讲解了“kubernetes中搭建spark集群的方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“kubernetes中搭建spark集群的方式”吧!适用场景:linux系统,...
    99+
    2023-06-19
  • kubernetes集群怎么搭建和使用
    要搭建和使用Kubernetes集群,可以按照以下步骤进行操作:1. 安装Docker:Kubernetes需要在每个节点上安装Do...
    99+
    2023-08-24
    kubernetes
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作