通过ACK 节点池高效管理Kubernetes节点——功能介绍

简介: 前言 云原生,被认为是释放云原生红利的最短路径,而以kubernetes 已成为云原生技术领域的事实标准。基于kubernetes构建的容器应用平台和过去基于虚机平台最大的不同,就是kubernetes屏蔽了底层环境的复杂和不一致,帮助研发通过应用的视角管理业务。 如何统一异构资源,高效地管理资源,利用云上弹性能力应对峰值流量与节省成本,每位kubernetes 运维人员都将面临的挑战。 AC

前言

云原生,被认为是释放云原生红利的最短路径,而以kubernetes 已成为云原生技术领域的事实标准。基于kubernetes构建的容器应用平台和过去基于虚机平台最大的不同,就是kubernetes屏蔽了底层环境的复杂和不一致,帮助研发通过应用的视角管理业务。 如何统一异构资源,高效地管理资源,利用云上弹性能力应对峰值流量与节省成本,每位kubernetes 运维人员都将面临的挑战。

ACK 团队推出节点池功能,通过节点池视角分组管理,帮助用户更加高效地管理Kubernetes 集群节点。

 

目录

节点池系列将分为几部分介绍ACK Kubernetes 节点池功能和特性

  • 通过ACK 节点池高效管理Kubernetes节点——功能介绍
  • 通过ACK 节点池高效管理Kubernetes节点——多场景支持:通过节点池管理边缘,混合云集群节点
  • 通过ACK 节点池高效管理Kubernetes节点——降低成本:自动弹性伸缩与抢占实例
  • 通过ACK 节点池高效管理Kubernetes节点——托管节点池:无人工介入的节点自愈恢复托管节点池——节点自愈恢复
  • 通过ACK 节点池高效管理Kubernetes节点——托管节点池:设置维护窗口与自动升级

 

什么是节点池

节点池,顾名思义,通过池话的方式,一个节点池代表一组具有相同特性和配置的节点。 用户可以通过节点池为节点分组管理,批量操作,动态伸缩。

 

面临挑战

Kubernetes 本质是一个分布式操作系统,分布式环境本身充满了不确定性,在云上运维一个大规模kubernetes集群节点,会面临以下挑战:

  • 管理成本:当Kubernetes 集群规模扩张,节点数随之增长,虽然有terraform 之类的工具可以帮助我们自动化管理,但是当面临成千上万的节点,点对点操作会给运维人员带来极大的运维和管理成本。
  • 节点配置复杂度:随着越来越多种类业务逐步运行在kubernetes ,针对不同类型业务,节点的配置要求也不尽相同,一个节点涉及资源配置(节点规模,交换机,资源组等)和软件配置(kubelet 参数,自定义配置脚本,运行时等)有20多项,每一次扩容都面对复杂的表单,既不稳定也不高效。
  • 运维效率:得利于容器的标准化环境和云上按需付费,近似无限的资源池相结合,通过弹性能力我们能够为业务按需扩容和缩容集群节点,降本成效。而弹性能力是否能够充分发挥作用,弹性效率是决定因素。
  • 扩容成功率:当弹性成为常态,节点的运维操作(扩容,缩容,排水,升级)是否足够稳定,随着规模增加,任何单次操作的不稳定都会随着节点规模成指数增长。

 

设计目标

节点分组化管理运维,提高管理效率

节点管理的挑战,本质上是我们如何在有限范围内,应对被管理对象的多样性(节点配置不同)和数量(节点规模增长)变化带来的管理成本。 多样性的增长会给管理者带来复杂度的提升,而数量增长会加剧复杂度墒增,并影响管理者命令的执行效率。

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”,而节点池就是在集群和节点之间的抽象中间层。

通过创建多个节点池来描述集群内异构节点的多样性,在节点池分布中,可以清晰看到集群中有哪些类型的节点以及数量分布。管理员无需关心具体节点实例的配置,只需关注集群中有限的节点池,通过节点池的数量调整实现节点的增减。进行基本节点操作(扩缩容,升级,编辑,删除)时,基于节点池进行操作下发比直接下发节点更加方便。

 

除了基本操作,管理员可以根据业务需求划分为不同节点池,给不同节点池中的节点打上label和taint,部署应用时通过nodeSelector和toleration 实现应用指定节点池部署。

 

节点配置模板化,降低配置复杂度

随着云上容器化业务逐渐复杂,为了支撑好多种业务场景,节点配置也越来越多,在ACK中扩容一个节点包含20多个配置项。 由于节点池抽象描述了一组同构节点的配置。

节点池配置:

  • 资源配置
    • 付费类型
    • 交换机
    • 实例规格
    • 数据盘
    • 操作系统
    • 登陆方式,密码 / 密钥对
    • ...
  • 软件配置
    • 容器运行时
    • Labels
    • Taints
    • 云监控插件安装
    • 自定义kubelet 参数
    • ....

 

将节点涉及的资源层和软件层配置通过节点池的元数据模板化,在创建节点池时填写相关的配置项,后续扩容节点时只需指定对应的节点池并输入扩容数量即可,无需重复填写对应的节点配置内容。

 

节点伸缩能力优化

此外相比过去直接操作节点,节点池对节点的伸缩操作做了许多优化。

  • 集成云产品服务,ACK将节点伸缩创建集成了弹性伸缩服务(ESS)。
    • 支持选择多种规格,当某规格库存不足创建失败时可自动重试其他规格。
    • 支持多可用区,实现多可用区均衡分布
  • 优化管控测的批量查询和操作效率,一个完整节点伸缩所耗时间压缩到3分钟。极速模式
  • 配置模板化,减少了伸缩过程中对配置项逐一校验的时间开销

 

总结

ACK通过引入节点池,作为集群与节点之间的抽象,提供分组管理和运维的能力,通过节点池管理节点有以下优势:

  • 分组管理,面对大规模集群节点时提高管理效率
  • 配置模板化,无需每次扩容时重复填写配置
  • 支持批量管理labels和taint,应用指定分组调度
  • 集成ess 优化扩缩容的运行效率和成功率。

同时,除了云上ESS以外,通过节点池能够扩展更多场景的节点类型,例如云上自动弹性,边缘节点,混合云线下弹线上等等,会在接下来的系列中详细介绍。

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
2月前
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
120 6
|
2天前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
41 19
|
12天前
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
131 10
|
1月前
|
Kubernetes Cloud Native API
深入理解Kubernetes——容器编排的王者之道
深入理解Kubernetes——容器编排的王者之道
44 1
|
1月前
|
Kubernetes Cloud Native 持续交付
深入理解Kubernetes:容器编排的基石
深入理解Kubernetes:容器编排的基石
|
1月前
|
Ubuntu 网络安全 容器
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理。本文详细介绍了如何在 Ubuntu 22.04 上安装 KubeSphere,包括系统要求、安装依赖项、设置防火墙、下载安装脚本、选择安装选项、验证安装结果等步骤,并提供了常见问题的解决方法。希望本文能为读者提供实用的参考和帮助。
37 3
|
1月前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
102 4
|
1月前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
77 3
|
2月前
|
运维 Kubernetes Cloud Native
云原生时代的容器编排:Kubernetes入门与实践
【10月更文挑战第4天】在云计算的浪潮中,云原生技术以其敏捷、可扩展和高效的特点引领着软件开发的新趋势。作为云原生生态中的关键组件,Kubernetes(通常被称为K8s)已成为容器编排的事实标准。本文将深入浅出地介绍Kubernetes的基本概念,并通过实际案例引导读者理解如何利用Kubernetes进行高效的容器管理和服务部署。无论你是初学者还是有一定经验的开发者,本文都将为你打开云原生世界的大门,并助你一臂之力在云原生时代乘风破浪。

热门文章

最新文章