[Kubernetes]マニフェスト適用時に「HorizontalPodAutoscaler in version “v2” cannot be handled as a HorizontalPodAutoscaler」のエラーが出る

Kubernetesのバージョンアップしてから、HorizontalPodAutoscalerのマニフェストを適用時に以下のエラーが出てます。

エラー内容

Error from server (BadRequest): error when creating "xxx.yaml": HorizontalPodAutoscaler in version "v2" cannot be handled as a HorizontalPodAutoscaler: strict decoding error: unknown field "spec.metrics[0].resource.targetAverageUtilization"

環境

  • Kubernetes v1.27.3

原因

Kubernetesのバージョンを上げたことにより、HorizontalPodAutoscalerのバージョンがv2になったため、v1のマニフェストを適用しようとしてエラーが出ています。

対応

HorizontalPodAutoscalerのマニフェストをv2に書き換える必要があります。Kubernetesのバージョン1.23以降では、autoscaling/v2beta2からautoscaling/v2に変更されています。

旧マニフェストの例

apiVersion: autoscaling/v2beta1 # <- ここを変更する必要がある!!
kind: HorizontalPodAutoscaler metadata: name: sample-autoscale namespace: default spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: web-php-load minReplicas: 1 maxReplicas: 10 metrics: - type: Resource
# ↓ ここの記述を変更する必要がある resource: name: cpu targetAverageUtilization: 50

次の箇所を変更します。

  • apiVersion
    • autoscaling/v2beta1からautoscaling/v2に書き換えます。
  • spec.metrics
    • resource.targetAverageUtilizationresource.target.averageUtilizationに書き換えます。

新マニフェストの例

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler metadata: name: sample-autoscale spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: sample-deployment minReplicas: 1 maxReplicas: 10 metrics: - type: Resource
resource: name: cpu target: type: Utilization averageUtilization: 50

参考

https://zenn.dev/htnk128/articles/bebef67ce64f62

コメント

コメントを残す

マークダウン形式でコメントを入力できます。

アップロードファイルの最大サイズ: 512 MB。 画像, 音声, 動画, 文書, スプレッドシート, 対話型, テキスト, アーカイブ, コード, その他 をアップロードできます。 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ

プロフィール背景
Ryosuke
Ryosuke

ITエンジニア & 講師

クラウドネイティブやアーキテクチャ設計の講師として活動しながら、ITエンジニアのDXを推進するために新しい技術やベストプラクティスを常に学び、エンジニアの生産性と開発品質の向上に貢献することを目指しています。猫5匹飼っています。山奥のポツンと一軒家に住んでいて、事務所は海の近くです。