0

Kubernetes(Google Container Engine)でレプリケーションコントローラのkubectl rolling-updateを実行すると、Google(Stackdriver)ロギングエージェントは新しくデプロイされたポッドを取得しません。ログは、古いポッドから生成された最後のメッセージに固執しています。Kubernetesローリングアップデート後にロギングが失敗する

したがって、手動再起動(つまり、kubectl scalekubectl delete)してログを再度更新するまで、レプリケーションコントローラのログは最新ではありません。

他の人がその動作を確認できますか?回避策はありますか?

答えて

1

動作を再現しようとすることはできますが、最初にローリングアップデートを実行して新しく作成したポッドにkubectl logs <pod-name>を実行して、新しいバージョンのアプリケーションでログが生成されていることを確認します。

これは、インフラストラクチャの問題よりもアプリケーションの問題になる可能性が高いですが、インフラストラクチャの問題であることを確認できれば、その底に到達したいと考えています。

+0

もう一度ローリングアップデートを実行するだけで、Stackdriverのログが更新されていないことを確認できます。新しく作成されたコンテナの 'docker logs'は、ログが生成されることを確認しました(' kubectl logs'は私にSSHトンネルを開く必要があります)。私は、彼らが無国籍で独立していることを考えると、期待通りのものだと思います。私は、このエラーには、ローリングアップデート時の名前変更プロセスと関係があると思われます。 – codemoped

+0

ありがとうございました!私はそれに掘りはじめます。 –

+0

あなたのノードはどのバージョンですか? 'gcloud container clusters list'はあなたのノードのバージョンをNODE_VERSIONカラムに表示します。 1.2.0でノードを持つクラスタでこれを再現しようとしましたが、これは失敗しました。つまり、新しいポッドからのログが機能しました。 –

関連する問題