Bitnamiカタログの変更により、Harbor ポッドがimagepullbackoffになりました
search cancel

Bitnamiカタログの変更により、Harbor ポッドがimagepullbackoffになりました

book

Article ID: 430158

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項:これは英文の記事「Harbor pods in imagepullbackoff due to change in Bitnami Catalogue」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • ゲストクラスタ内に External harbor がデプロイされています。ゲストクラスタ自体は正常ですが、Pod が ImagePullBackOff の状態となっています。

    NAMESPACE NAME READY STATUS RESTARTS AGE
    harbor harbor-core-###########-##### 0/1 Init:ImagePullBackOff 0 17h
    harbor harbor-jobservice-###########-##### 0/1 Init:ImagePullBackOff 0 17h
    harbor harbor-nginx-###########-##### 0/1 Init:ImagePullBackOff 0 17h
    harbor harbor-portal-###########-##### 0/1 Init:ImagePullBackOff 0 17h
    harbor harbor-postgresql-# 0/1 ImagePullBackOff 0 17h
    harbor harbor-redis-master-# 0/1 ImagePullBackOff 0 17h
    harbor harbor-registry-###########-##### 0/2 Init:ImagePullBackOff 0 17h
    harbor harbor-trivy-# 0/1 Init:ImagePullBackOff 0 17h

  • harbor Pod の describe 結果には、以下のエラーメッセージが表示されています:
    Message: Backoff pulling image "docker.io/bitnami/harbor-core:#.##.#-debian-##-r##"
  • Pod デプロイメントの describe を確認すると、イメージは "docker.io/bitnami/harbor..." を参照しています。

Environment

vSphere Kubernetes Service 8.X

Cause

8月28日より、2.50.0 や 10.6 などの旧バージョンを含む現在のすべての Bitnami コンテナイメージは、2週間の期間をかけて docker.io/bitnami から docker.io/bitnamilegacy へ移行されました。

Resolution

Pod デプロイメントのイメージ参照先を "docker.io/bitnamilegacy/harbor .." に変更する手順:

  1. デプロイメントのバックアップを取得します:
    kubectl get deployment -n harbor <deployment name> -o yaml > <deployment-name>-deployment.yaml

  2. デプロイメントを 0 にスケールします。[0 にスケールする前にレプリカ数を確認してください]:
    kubectl scale deployment harbor-<name> --replicas=0 -n harbor

  3. デプロイメントのイメージ参照先を "docker.io/bitnamilegacy/harbor .." に編集し、"docker.io/bitnami/harbor .." ではなく変更後に保存します:
    kubectl edit deployment -n harbor <deployment name> -o yaml

  4. 変更が正しく反映・保存されていることを確認します:
    kubectl get deployment -n harbor <deployment name> -o yaml | less
  5. デプロイメントを元のレプリカ数にスケールアップします:
    kubectl scale deployment harbor-<name> --replicas=# -n harbor

  6. replicaset を一覧表示し、新しくデプロイされた replicaset が 1/1 ステータスであることを確認します:
    kubectl get rs -n harbor

  7. 古いイメージ参照先 "bitnami" を指している古い replicaset を削除します:
    kubectl delete rs <old-rs-name> -n harbor

  8. Pod を確認し、いずれの Pod も ImagePullBackOff 状態になっていないことを確認します。

  9. 対応するデプロイメントまたは replicaset が存在しない以下の Pod(harbor-postgresql-#, harbor-redis-master-#, harbor-registry-###########-#####, harbor-trivy-#)については、Pod を編集し、正しいイメージ参照先("docker.io/bitnamilegacy/harbor..")に変更する必要があります。

  10. すべての harbor Pod が正常に起動し、稼働していることを確認します。
    kubectl get pods -n harbor
    NAME READY STATUS RESTARTS AGE
    harbor-core-###########-##### 1/1 Running 9 (15m ago) 32m
    harbor-jobservice-###########-##### 1/1 Running 6 (11m ago) 19m
    harbor-nginx-###########-##### 1/1 Running 0 61m
    harbor-portal-###########-##### 1/1 Running 0 42m
    harbor-postgresql-# 1/1 Running 0 19h
    harbor-redis-master-# 1/1 Running 0 19h
    harbor-registry-###########-##### 2/2 Running 0 40m
    harbor-trivy-# 1/1 Running 0 19h

Additional Information