すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Argo CD による HPA レプリカ数の上書きの防止

最終更新日:Jun 17, 2026

HPA によって管理される spec.replicas の値が上書きされるのを防ぐため、Argo CD の同期から spec.replicas を除外します。

デフォルトでレプリカが 1 つのアプリケーション

Deployment マニフェストで replicas フィールドをコメントアウトします。Argo CD は Git に存在するフィールドのみを同期するため、replicas を省略すると HPA がそれを管理できるようになります。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  # HPA でレプリカを制御する場合、マニフェストに replicas を含めないでください
  # replicas: 1
  template:
    spec:
      containers:
      - image: nginx:1.7.9
        name: nginx
        ports:
        - containerPort: 80
...

デフォルトで複数のレプリカを持つアプリケーション

複数のレプリカを持つマニフェストの場合、フィールドをコメントアウトするとデフォルト設定が機能しなくなります。代わりに、Diffing Customization を介して spec.replicas を無視するように Argo CD を設定し、HPA がレプリカ数を制御できるようにします。

スコープには、アプリケーションレベル (単一のアプリケーション) とシステムレベル (フリートインスタンス内のすべてのアプリケーション) の 2 つがあります。

アプリケーションレベルの設定

Application リソースで .spec.ignoreDifferences を設定します。これは、そのアプリケーションにのみ適用されます。

デフォルトでは、このルールはアプリケーション内のすべての Deployment に適用されます。特定の Deployment をターゲットにするには、name フィールドと namespace フィールドのコメントを解除して設定します。

group フィールドは、バージョンを含まない Kubernetes API グループを指します (例: apps/v1 ではなく apps)。
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
  ...

システムレベルの設定

フリートインスタンス内のすべてのアプリケーションで spec.replicas を無視するように、argocd-cm ConfigMap を設定します。

ACK One GitOps の場合、managedFieldsManagerscontrolplane-kcmkube-controller-manager とともに設定する必要があります。

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

次のステップ