web-dev-qa-db-ja.com

OpenShiftでポッドを再起動する方法は?

実行中のポッドでファイル(デバッグ出力用)を更新しましたが、認識されません。ポッドを再起動して取得しましたが、oc stopおよびoc startまたはoc restart。ポッド内のファイルを強制的に更新するにはどうすればよいですか?

多分それはRubyの事(PHPのopcacheのようなもの)であると考えています。しかし、ポッドの再起動がそれを処理すると考えました。ポッドを再起動する方法がわかりません。

7
Elijah Lynn

デプロイメント構成で変更を行う必要がありますが、ポッドでは必要ありません。 OpenShiftはポッドをほぼ不変として扱うためです。実行中にポッド定義を変更することはできません。 https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/pods_and_services.html#pods

デプロイメント設定にいくつかの変更を加えて保存すると、ポッドが再起動し、変更が有効になります。

oc edit dc "deploy-config-example"

ボリュームまたはconfigmapsで何かを変更する場合、彼の再起動のためにポッドを削除する必要があります:

oc delete pod "name-of-your-pod"

そして、ポッドが再起動します。または、次を実行して新しい展開をトリガーします:

oc rollout latest "deploy-config-example"

oc rolloutを使用すると、スケーリングされたアプリケーションがある場合にすべてのポッドを再デプロイし、各ポッドを識別して削除する必要がないため、より適しています。

7
Ripper Tops

展開を縮小(ゼロ)してから再び拡大できます。

oc get deployments -n <your project> -o wide

oc get pods -n <your project> -o wide

oc scale --replicas=0 deployment/<your deployment> -n <your project>

oc scale --replicas=1 deployment/<your deployment> -n <your project>

watch oc get pods -n <your project> # wait until your deployment is up again
1
Noam Manos