ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Appsmith Helm Chart 如何配置 HPA 自动扩缩容

Appsmith Helm Chart 如何配置 HPA 自动扩缩容 Appsmith Helm Chart 如何配置 HPA 自动扩缩容【免费下载链接】appsmithPlatform to build admin panels, internal tools, and dashboards. Integrates with 25 databases and any API.项目地址: https://gitcode.com/GitHub_Trending/ap/appsmithAppsmith 仓库在 deploy/helm 目录下提供了官方 Helm Chart当前版本 3.9.1见 Chart.yaml。默认安装时 chart 创建的是固定副本数的 StatefulSetHPA 处于关闭状态。这篇文章基于 chart 的 values 定义和模板文件说明如何开启 HorizontalPodAutoscaler、涉及哪些配置项以及如何验证配置结果。适用场景你已经通过该 chart 在 Kubernetes 集群上部署 Appsmith希望 Appsmith 主服务appsmith 容器所在 Pod的副本数能按 CPU 利用率自动扩缩。chart 的 README 指出集群前置条件和完整安装步骤请参考官方 Kubernetes 安装指南仓库内保留的是 chart 定义、参数表和单元测试。HPA 相关的 values 与默认值autoscaling 相关配置定义在 values.yaml 中参数说明见 deploy/helm/README.md 的 Values 表格配置项类型默认值说明autoscaling.enabledboolfalse是否启用 HorizontalPodAutoscalerautoscaling.minReplicasint2HPA 最小副本数schema 约束最小为 0autoscaling.maxReplicasint2HPA 最大副本数schema 约束最小为 0autoscaling.targetCPUUtilizationPercentageint5目标平均 CPU 利用率百分比schema 约束范围 1–100默认autoscaling.enabled: false即 chart 不会渲染任何 HPA 资源也不受顶层replicas默认 1控制扩缩。配置 HPA第一步把扩缩容参数写进一个单独的 values 文件。下面的示例值全部取 chart 默认值可按需调整autoscaling: enabled: true minReplicas: 2 maxReplicas: 2 targetCPUUtilizationPercentage: 5第二步安装或升级 chart 时指定该文件。appsmith是 release 名可自取chart 路径指向仓库内的deploy/helm目录本地开发时helm upgrade --install appsmith deploy/helm -f my-values.yaml其中my-values.yaml替换为你在上一步创建的 values 文件。注意默认的minReplicas: 2与maxReplicas: 2相等意味着副本数会被固定在 2实际没有可伸缩区间。开启 HPA 前建议显式设置一个有跨度的上下限并确认targetCPUUtilizationPercentage默认 5符合你对负载的预期。开启后 chart 会渲染什么HPA 由 templates/hpa.yml 定义直接阅读模板可以得到以下行为渲染条件是autoscaling.enabledtrue且keda.enabledfalse。如果启用了 KEDAkeda.enabled: truechart 改走 ScaledObject 路径不再渲染 HPA二者互斥。HPA 的scaleTargetRef指向与 release 同名的 Deploymentappsmith.fullnameminReplicas、maxReplicas取自上面的 values。apiVersion根据集群能力自动选择支持autoscaling/v2时用autoscaling/v2否则回退到autoscaling/v2beta2CPU 指标字段也相应地写成target.type: Utilization或targetAverageUtilization。CPU 指标仅在设置了targetCPUUtilizationPercentage时写入。模板还支持一条可选的内存指标需要自行设置autoscaling.targetMemoryUtilizationPercentagevalues.yaml 中未提供默认值默认不渲染。工作负载类型也会随之改变values.yaml 中workload.kind的注释明确说明当autoscaling.enabled为 true 时该值被忽略固定使用 Deploymenttemplates/deployment.yaml 只在 autoscaling 未启用时写出replicas字段取顶层replicas值启用后副本数完全交由 HPA 管理。也就是说默认 StatefulSet 部署开启 HPA 后会变成 Deployment 部署。验证配置结果仓库内提供了两级验证手段chart 单元测试。chart 自带 helm-unittest 测试运行方式见 tests/README.md在 chart 目录下执行docker run -ti --rm -v $(pwd):/apps helmunittest/helm-unittest .其中$(pwd)是运行命令时所在的目录即包含测试文件的deploy/helm目录命令会通过 Docker 容器挂载当前目录执行全部测试。tests/workload_type_test.yaml 中有一条用例 “workload type should be Deployment when autoscaling is enabled”验证的就是开启 autoscaling 后渲染出的工作负载为 Deployment。集群内检查 HPA 资源。安装成功后在 release 所在命名空间确认存在与 release 同名的 HorizontalPodAutoscaler并观察副本数在配置的 min/max 范围内随 CPU 利用率变化kubectl get hpa -n namespacenamespace替换为 Appsmith 实际安装的命名空间。限制与注意事项顶层replicas默认 1只在 workload 为 Deployment 且 autoscaling 未启用时生效HPA 启用后不起作用不要在两个地方同时管理副本数。KEDA 与 HPA 不能同时使用keda.enabled: true时 chart 不渲染 HPA改用 ScaledObject相关参数如keda.minReplicaCount、keda.maxReplicaCount见 deploy/helm/README.md。HPA 仅针对 Deployment因此开启 autoscaling 后即使显式设置workload.kind: StatefulSet也不会生效。chart README 的 Documentation 部分还链接了官方文档中关于部署规划、版本升级与环境变量参考的章节需要调整镜像版本或做升级操作时可作为下一步查阅入口。【免费下载链接】appsmithPlatform to build admin panels, internal tools, and dashboards. Integrates with 25 databases and any API.项目地址: https://gitcode.com/GitHub_Trending/ap/appsmith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表