有状态软件如何在 k8s 上快速扩容甚至自动扩容

打印 上一主题 下一主题

主题 839|帖子 839|积分 2517

概述

在传统的虚机/物理机环境里, 如果我们想要对一个有状态应用扩容, 我们需要做哪些步骤?

  • 申请虚机/物理机
  • 安装依赖
  • 下载安装包
  • 按规范配置主机名, hosts
  • 配置网络: 包括域名, DNS, 虚 ip, 防火墙...
  • 配置监控
今天虚机环境上出现了问题, 是因为 RabbitMQ 资源不足. 手动扩容的过程中花费了较长的时间.
但是在 K8S 上, 有状态应用的扩容就很简单, YAML 里改一下replicas副本数, 等不到 1min 就扩容完毕.
当然, 最基本的: 下镜像, 启动 pod(相当于上边的前 3 步), 就不必多提. 那么, 还有哪些因素, 让有状态应用可以在 k8s 上快速扩容甚至自动扩容呢?
原因就是这两点:

  • peer discovery +peer discovery 的 相关实现(通过 hostname, dns, k8s api 或其他)
  • 可观察性 + 自动伸缩
我们今天选择几个典型的有状态应用, 一一梳理下:

  • Eureka
  • Nacos
  • Redis
  • RabbitMQ
  • Kafka
  • TiDB
K8S 上有状态应用扩容

在 Kubernetes 上, 有状态应用快速扩容甚至自动扩容很容易. 这得益于 Kubernetes 优秀的设计以及良好的生态. Kubernetes 就像是一个云原生时代的操作系统. 它自身就具有:

  • 自动化工具;
  • 内部服务发现 + 负载均衡
  • 内部 DNS
  • 和 Prometheus 整合
  • 统一的声明式 API
  • 标准, 开源的生态环境.
所以, 需要扩容, 一个 yaml 搞定全部. 包括上边提到的: 下载, 安装, 存储配置, 节点发现, 加入集群, 监控配置...
Eureka 扩容


<blockquote>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表