web-dev-qa-db-ja.com

Kubernetes:--image-pull-policyが常に機能しない

イメージを使用するKubernetesデプロイメントがあります:test:latest(実際のイメージ名ではなく、最新のタグです)。この画像はDockerハブにあります。 test:latestの新しいバージョンをdockerhubにプッシュしました。 Kubernetesでのポッドの新しいデプロイを期待していましたが、何も起こりませんでした。

私は次のような配置を作成しました:

kubectl run sample-app --image=`test:latest` --namespace=sample-app --image-pull-policy Always

新しいイメージのプッシュ後にトリガーされる新しい展開がないのはなぜですか?

11
DenCowboy

Kubernetesはnotイメージの新しいバージョンを監視しています。イメージプルポリシーは、コンテナーを実行するためにイメージを取得する方法を指定します。 Alwaysは、コンテナを起動するたびに新しいバージョンをプルしようとすることを意味します。更新を表示するには、ポッドを削除する必要があります(デプロイメントではありません)-新しく作成されたポッドが新しいイメージを実行します。

Kubernetesで実行中のコンテナを新しいイメージで自動的に更新する直接的な方法はありません。これは継続的デリバリーシステムの一部になります(おそらくkubectl set image新しいsha256sumまたはイメージタグを使用しますが、latestは使用できません)。

10
Janos Lenart

Ymlファイルを使用している場合は、

kubectl apply -f myfile.yml

そして

imagePullPolicy: Always

ファイルでは、k8sは新しいイメージをプルしません。最初にポッドを削除する必要があります。K8sデプロイメントはイメージを自動的にプルします。

0
yaach