Kubernetes: RollingUpdate後、LoadBalancerがポッドへのルーティングを遅延させました

作成日 2016年12月05日  ·  3コメント  ·  ソース: kubernetes/kubernetes

これは助けを求めるものですか? (はいの場合は、トラブルシューティングガイドとコミュニティサポートチャネルを使用する必要があります。http://kubernetes.io/docs/troubleshooting/を参照してください。):
番号

これを提出する前に、Kubernetesの問題でどのキーワードを検索しましたか? (重複を見つけた場合は、代わりにそこに返信する必要があります。):

https://github.com/kubernetes/kubernetes/issues?page=3&q=is%3Aissue+is%3Aopen+loadbalancer+update&utf8=%E2%9C%93


これはバグレポートですか、それとも機能リクエストですか? (1つ選択してください):
バグレポート

Kubernetesバージョンkubectl versionを使用):
クライアント1.4.4
クラスター1.4.6

環境

  • クラウドプロバイダーまたはハードウェア構成:GKE
  • OS (例:/ etc / os-releaseから):
  • カーネル(例: uname -a ):
  • ツールのインストール
  • その他
    3ノードクラスター

何が起こったのか
ローリングアップデートを適用します。新しいポッドがRunningand Readyになり、古いポッドが終了します。
ロードバランサーにヒットするとタイムアウトが発生します。 数分待つと、トラフィックは正しくルーティングされます。

あなたが起こると期待したこと
トラフィックはシームレスに新しいポッドにルーティングされます。

それを再現する方法(可能な限り最小限かつ正確に):
https://gist.github.com/1d668ba12b12f450e8feffb21383ba44

kubectl apply -f deployment.yaml
kubectl get svc 、外部IPが起動するのを待ちます。
トラフィックが正しくルーティングされていることを確認します。

何かを編集する(環境変数など)
kubectl apply -f deployment.yaml
古いポッドが終了するのを待ちます。 ロードバランサーがそれ自体を更新するまでのタイムアウトを観察します。

他に知っておくべきことはありますか

最も参考になるコメント

確認済み。 排水と準備チェックの組み合わせにより、ダウンタイムはゼロになりました。
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596

誤った報告でごめんなさい。

全てのコメント3件

Kubernetesには「接続のドレイン」がないため、ポッドを終了するとデフォルトでリクエストが失敗することになります。アプリの準備プローブを「ジャストインタイム」で手動で切り替える必要があります: https ://github.com/RisingStack/

これが問題かどうかわからない(アプリのソース/ Dockerイメージが表示されない)。

アプリのソースコード:
https://gist.github.com/d68192f04e3ff50bf9bf7e90ee879077

ソースコードを変更してリクエストを排出してみます。 これが問題になる可能性があることは理にかなっています。

確認済み。 排水と準備チェックの組み合わせにより、ダウンタイムはゼロになりました。
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596

誤った報告でごめんなさい。

このページは役に立ちましたか?
0 / 5 - 0 評価