2017-07-12 7 views
1

実行中のポッドがあり、そのコンテナの環境変数の1つを変更してすぐに動作させたいと思います。それを達成することはできますか?私ができるなら、それをどうやって行うのですか?kubernetesを使用してポッドを再起動せずにコンテナの環境変数を変更することはできますか

+0

実行中のプロセスの環境変数を変更することはできますか?* Docker外ですか? –

答えて

1

単純にkubeの言葉で言えば、あなたはできません。

Linuxプロセスの環境はプロセスの起動時に確立されており、確かにそのような目標を達成できるkubeツールはありません。 たとえば、配置に変更した場合(これを使用してポッドを作成すると仮定した場合)、下にあるポッドがロールバックされます。あなたがそれを行うことができたとしても、このような変化を監視する必要があるアプリケーション・ロジックがまだあることを覚えておいてください、また、GDB

を使用することを含むIs there a way to change another process's environment variables?で報告本当にハック解決策がある、と述べた今

、代わりに、通常は起動時にenvから設定を評価するだけです。

0

私はそれを行う方法について知らないので、これがあまりにも意味をなさない現実の世界のシナリオを考えることはできません。

通常、変更された環境変数に気づくためにプロセスを再起動する必要があります。そのためには、ポッドを再起動するのが最も簡単な方法です。

最も近い解決策は、deploymentを作成し、kubectl editkubectl edit deploy/name)を使用して環境変数を変更することです。新しいポッドが開始され、保存後に古いポッドが終了します。

0

Kubernetesは、設定によってポッドの変更を再デプロイするように設計されています。すでにデプロイされているポッドを使いこなすと、デバッグが難しい奇妙なクラスタに陥ることがあります。

実際に実行するポッドで追加のコマンドをkubectl execを使用して実行することができますが、これはデバッグ目的でのみ推奨されます。

kubectl exec -it <pod_name> export VARIABLENAME=<thing> 
関連する問題