赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 多集群舰队
  6. GitOps
  7. 应用管理
  8. 应用使用HPA

应用使用HPA

  • 应用管理
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

由于Argo CD会定时同步Git仓库和集群中应用的状态,会和通过容器水平伸缩(HPA)来控制Pod副本数的行为发生冲突。因此对于使用GitOps发布的应用,如果使用容器水平伸缩控制Pod副本数,您需要对应用进行相应配置避免产生冲突。配置方式按照副本数分为默认1个副本和默认多个副本两种场景。

默认1个副本

如果您的应用默认的Pod副本数为1,并且应用使用HPA来控制副本数,则仅需要将Git仓库应用中的Deployment资源的replicas字段注释掉。

示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  # do not include replicas in the manifests if you want replicas to be controlled by HPA
  # replicas: 1
  template:
    spec:
      containers:
      - image: nginx:1.7.9
        name: nginx
        ports:
        - containerPort: 80
...

默认多个副本

如果您的应用需要默认使用多个副本,该场景下需要根据Diffing Customization进行配置,忽略spec.replicas的Differences,这样Argo CD不会去管理Pod的副本数,副本数会被HPA单独管理。

以下为您提供应用级别和系统级别两种配置方式,更多信息,请参见Argo CD Diffing Customization。

Ignore Differences应用级别的配置

应用级别的配置是指仅对于指定Application中的资源生效,配置Application的.spec.ignoreDifferences忽略Deployment资源的spec.replicas。

如需对确定Deployment生效,可以指定其name和namespace。

示例如下:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: app-test
  namespace: argocd
spec:
  ignoreDifferences:
  - group: apps
    kind: Deployment
    #name: test
    #namespace: default
    jsonPointers:
    - /spec/replicas
  ...

Ignore Differences系统级别的配置

系统级别的配置是指对于整个舰队的资源生效。在argocd/argocd-cm中配置,忽略由managers管理的Kubernetes资源的spec.replicas。

配置示例如下,其中ACK One GitOps需要配置manager controlplane-kcm:

apiVersion: v1
data:
  ...
  resource.customizations.ignoreDifferences.all: |
    managedFieldsManagers:
    - kube-controller-manager
    - controlplane-kcm
    jsonPointers:
    - /spec/replicas
kind: ConfigMap
metadata:
  name: argocd-cm
  namespace: argocd

相关文档

  • 如何为应用开启HPA,请参见使用容器水平伸缩(HPA)。

  • 有关Pod水平自动扩缩的算法,请参见算法细节。

相关文章

仓库管理 2025-04-18 18:11

本文介绍如何在GitOps系统中,通过ArgoCD CLI和ArgoCD控制台方式添加、查看及删除Git源仓库和Helm源仓库。 前提条件 已登录GitOps系统。具体操作,请参见登录GitOps系统

Application管理 2025-04-18 18:11

本文介绍如何使用GitOps系统管理应用,包括创建部署单个应用、更新和回滚应用。 前提条件

Application同步选项 2025-04-18 18:11

使用GitOps管理应用时,ArgoCD会提供一些同步选项,您可以按需定制如何将资源同步到目标集群。本文对主要同步选项进行简要介绍。 关于同步选项的详细信息,请参见Argo CD Sync Options。

创建多集群应用 2025-04-18 18:11

多集群应用控制台可以简化多集群应用编排(ArgoCD ApplicationSet),它可以基于单一应用编排并根据您的编排内容自动生成一个或多个应用。本文介绍如何使用ACK One控制台创建多集群应用。 前提条件

应用使用HPA 2025-04-18 18:11

由于Argo CD会定时同步Git仓库和集群中应用的状态,会和通过容器水平伸缩(HPA)来控制Pod副本数的行为发生冲突。因此对于使用GitOps发布的应用,如果使用容器水平伸缩控制Pod副本数,您需要对应用进行相应配置避免产生冲突。配置方式按照副本数分为默认1个副本和默认多个副本两种场景。 默认1

使用钉钉机器人通知GitOps应用变更 2025-04-18 18:11

使用GitOps发布应用时,可以配置多种通知服务(例如Email、钉钉等)用于接收应用的重要变化。当应用发布异常时您可以快速收到通知提醒。本文以发送钉钉消息为例,介绍如何在GitOps中发送通知。 背景信息 Argo CD Notifications提供了配置应用通知的机制,有以下几个主要概念:

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号