[解決済み】Kubernetes イメージを更新するデプロイメントの作り方
2022-04-12 11:45:47
質問
私は、単一のポッドで、私のカスタムDockerイメージを使用してデプロイしています。
containers:
- name: mycontainer
image: myimage:latest
開発中に新しい最新バージョンをプッシュし、デプロイメントを更新させたいと思います。 タグ/バージョンを明示的に定義し、ビルドごとにそれをインクリメントすることなく、それを行う方法を見つけることができません。
kubectl set image deployment/my-deployment mycontainer=myimage:1.9.1
解決方法は?
ポッドに猶予期間(例えば30秒以上、コンテナの起動時間やイメージのサイズに依存)を設定し、その間に
"imagePullPolicy: "Always"
. そして
kubectl delete pod pod_name
.
新しいコンテナが作成され、最新のイメージが自動的にダウンロードされた後、古いコンテナは終了します。
例
spec:
terminationGracePeriodSeconds: 30
containers:
- name: my_container
image: my_image:latest
imagePullPolicy: "Always"
現在、自動ビルドと画像タグ付けにJenkinsを使っていますが、以下のような感じです。
kubectl --user="kube-user" --server="https://kubemaster.example.com" --token=$ACCESS_TOKEN set image deployment/my-deployment mycontainer=myimage:"$BUILD_NUMBER-$SHORT_GIT_COMMIT"
もう一つのコツは、初期に実行することです。
kubectl set image deployment/my-deployment mycontainer=myimage:latest
といった具合に。
kubectl set image deployment/my-deployment mycontainer=myimage
これは実際にローリングアップデートのトリガーになりますが、同時に
imagePullPolicy: "Always"
を設定します。
更新してください。
画像名を変更する必要がない場合、私が見つけた別のトリックは、ローリングアップデートをトリガーするフィールドの値を次のように変更することです。
terminationGracePeriodSeconds
. これを行うには
kubectl edit deployment your_deployment
または
kubectl apply -f your_deployment.yaml
またはこのようなパッチを使用します。
kubectl patch deployment your_deployment -p \
'{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'
ただ、常に数値の値を変更するようにしてください。
関連
-
[解決済み] docker-composeでdockerイメージにタグ付けする方法
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] Dockerでイメージのクリーンビルドを強制する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】ビルド中にDockerfileでホストボリュームをDockerコンテナにマウントする方法
-
[解決済み】Docker remove <none> TAGイメージ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Dockerはインストールされているのに、Docker Composeがインストールされていないのはなぜですか?
-
[解決済み] OOM例外がない場合、Docker-composeの終了コードは137になる
-
[解決済み] docker-compose v3.1でsecret値をどのように管理するのですか?
-
[解決済み】"docker run -d "の後、Dockerコンテナが自動的に停止する。
-
[解決済み】docker run <IMAGE> <MULTIPLE COMMANDS> (ドッカーラン)。
-
[解決済み】Kubernetesにイメージの再引き取りを強制する方法は?
-
[解決済み] standard_init_linux.go:190: exec user process caused "no such file or directory" - Docker
-
[解決済み】Dockerfileの複数RUNと1つの連鎖RUN、どっちがいい?
-
[解決済み】Dockerfileに引数を渡すには?
-
[解決済み】Dockerは使用量が多いのに、Dockerコンテナがない