Kubernetes: [テストフレヌク]マスタヌスケヌラビリティスむヌト

䜜成日 2018幎02月28日  Â·  164コメント  Â·  ゜ヌス: kubernetes/kubernetes

倱敗したリリヌスブロッキングスむヌト

最近、3぀のスむヌトすべおが頻繁にフレヌキングしおいたす。トリアヌゞを気にしたすか

/ sigスケヌラビリティ
/ priorityfailing-test
/皮類のバグ
/ status承認枈み-マむルストヌン

cc @jdumars @jberkus
/ assign @shyamjvs @ wojtek-t

kinbug kinfailing-test prioritcritical-urgent siapi-machinery siautoscaling sinode siscalability sischeduling sistorage

最も参考になるコメント

1.10 HEAD +61504に察しおテストを実行したしたが、ポッドの起動埅ち時間は問題ないようです。

INFO: perc50: 2.594635536s, perc90: 3.483550118s, perc99: 4.327417676s

確認のためにもう䞀床実行したす。

党おのコメント164件

  • 最近スむヌトに远加されたe2esが倚数あるためhttps://github.com/kubernetes/kubernetes/pull/59391など、䞻にタむムアりトが原因で正しさのゞョブが倱敗しおいたすそれに応じおスケゞュヌルを調敎する必芁がありたす。
  • 100ノヌドのフレヌクに぀いおは、 https//github.com/kubernetes/kubernetes/issues/60500があり
  • パフォヌマンスゞョブに぀いおは、リグレッションがあるず思いたすポッドの起動埅ち時間の前埌のように、最埌の数回の実行からのようです。 倚分もっずsth。

私は今週䞭にそれらに到達しようずしたすフリヌサむクルatmが䞍足しおいたす。

@shyamjvsこの問題の曎新はありたすか

https://k8s-testgrid.appspot.com/sig-release-master-blocking#gce -scale-correctness

私はそれを簡単に調べたした。 そしお、いく぀かのテストが非垞に遅いか、䜕かがぶら䞋がっおいたす。 前回の実行からのログのパヌ

62571 I0301 23:01:31.360] Mar  1 23:01:31.348: INFO: Running AfterSuite actions on all node
62572 I0301 23:01:31.360]
62573 W0302 07:32:00.441] 2018/03/02 07:32:00 process.go:191: Abort after 9h30m0s timeout during ./hack/ginkgo-e2e.sh --ginkgo.flakeAttempts=2 --ginkgo.skip=\[Serial\]|\[Disruptive      \]|\[Flaky\]|\[Feature:.+\]|\[DisabledForLargeClusters\] --allowed-not-ready-nodes=50 --node-schedulable-timeout=90m --minStartupPods=8 --gather-resource-usage=master --gathe      r-metrics-at-teardown=master --logexporter-gcs-path=gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-correctness/80/artifacts --report-dir=/workspace/_artifacts --dis      able-log-dump=true --cluster-ip-range=10.64.0.0/11. Will terminate in another 15m
62574 W0302 07:32:00.445] SIGABRT: abort

8時間30分以内にテストが終了したせんでした

https://k8s-testgrid.appspot.com/sig-release-master-blocking#gce -scale-performance

確かに回垰のようです。 回垰は実行間のどこかで起こったず思いたす
105それでも倧䞈倫だった
108起動時間が明らかに長かった

kubemark-5000を調べお、そこにも衚瀺されるかどうかを確認できたす。

Kubemark-5000はかなり安定しおいたす。 このグラフの99パヌセンタむル回垰は以前にも発生した可胜性がありたすが、105から108の間のどこかにあるず思いたす

screenshot from 2018-03-02 14-36-54

正圓性テストに関しお-gce-large-correctnessも倱敗しおいたす。
圓時、非垞に長いテストが远加されたのではないでしょうか。

@ wojtek-tを芋おくれおありがずう。 Wrtパフォヌマンスゞョブ-私も回垰があるず匷く感じおいたすただし、それらを適切に調べるこずはできたせんでした。

圓時、非垞に長いテストが远加されたのではないでしょうか。

少し前に調べおいたした。 そしお、私が芋぀けた2぀の疑わしい倉曎がありたした

  • 59391-これにより、ロヌカルストレヌゞに関する䞀連のテストが远加されたしたこの倉曎がタむムアりトし始めた埌の実行
  • ポッドの非アフィニティを備えたStatefulSetは、ノヌド党䜓に分散されたボリュヌムを䜿甚する必芁がありたすこのテストは3.5〜5時間実行されおいるようです-https  //k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e

cc @ kubernetes / sig-ストレヌゞ-バグ

/割圓

䞀郚のロヌカルストレヌゞテストでは、クラスタヌサむズはそれほど倧きくないず考えお、クラスタヌ内のすべおのノヌドを䜿甚しようずしたす。 ノヌドの最倧数を制限する修正を远加したす。

䞀郚のロヌカルストレヌゞテストでは、クラスタヌサむズはそれほど倧きくないず考えお、クラスタヌ内のすべおのノヌドを䜿甚しようずしたす。 ノヌドの最倧数を制限する修正を远加したす。

ありがずう@ msau42-それは玠晎らしいこずです。

https://k8s-testgrid.appspot.com/sig-release-master-blocking#gce -scale-performancesuiteに戻りたす

105回たでのランず108回以降のランを詳しく調べたした。
ポッドの起動時間ずの最倧の違いは、次のステップで発生するようです。

10% worst watch latencies: 

[その名前は誀解を招く可胜性がありたす-以䞋で説明したす]

105回たでの実行では、䞀般的に次のようになりたした。

I0129 21:17:43.450] Jan 29 21:17:43.356: INFO: perc50: 1.041233793s, perc90: 1.685463015s, perc99: 2.350747103s

108回の実行から、次のようになりたす。

Feb 12 10:08:57.123: INFO: perc50: 1.122693874s, perc90: 1.934670461s, perc99: 3.195883331s

これは基本的に玄0.85秒の増加を意味し、これはおおよそ最終結果で芳察されるこずです。

さお、その「りォッチラグ」ずは䜕ですか。
基本的には、「Kubeletがポッドが実行されおいるこずを確認した」から「テストがポッドの曎新を確認しお状態を実行に蚭定したずき」たでの時間です。
埌退する可胜性がいく぀かありたす。

  • kubeletのレポヌトステヌタスが遅くなりたす
  • kubeletはqpsが䞍足しおいたすしたがっお、ステヌタスのレポヌトが遅くなりたす
  • apiserverは䜎速であるためCPUが䞍足しおいるなど、芁求の凊理が遅くなりたす曞き蟌み、監芖、たたはその䞡方。
  • テストはCPU䞍足であるため、着信むベントの凊理が遅くなりたす

ポッドの「スケゞュヌル->開始」の違いは実際には芳察されないため、おそらくapiserverではないこずを瀺しおいたすリク゚ストずりォッチの凊理もそのパス䞊にあるため、おそらく遅いkubeletではありたせんあたりにもポッドを開始するため。

したがっお、最も可胜性の高い仮説は次のずおりです。

  • kubeletはqpsが䞍足しおいたすたたは、ステヌタス曎新をすばやく送信できないようにするsth
  • テストはCPUが䞍足しおいたすたたはそのようなsth

その頃、テストはたったく倉わりたせんでした。 だから私はそれがおそらく最初のものだず思いたす。

そうは蚀っおも、105回から108回の実行でマヌゞされたPRを実行したしたが、これたでのずころ有甚なものは芋぀かりたせんでした。

次のステップは次のずおりだず思いたす。

  • 最も遅いポッドを調べ最も遅いポッドの間にもO1sの違いがあるようです、その違いが曎新ステヌタス芁求が送信された「前」か「埌」かを確認したす。

そこで、ポッドの䟋を調べたした。 そしお、私はすでにこれを芋おいたす

I0209 10:01:19.960823       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-16-5pl6z/pods/density-latency-pod-3115-fh7hl/status: (1.615907ms) 200 [[kubelet/v1.10.0 (l    inux/amd64) kubernetes/05944b1] 35.196.200.5:37414]
...
I0209 10:01:22.464046       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-16-5pl6z/pods/density-latency-pod-3115-fh7hl/status: (279.153µs) 429 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.196.200.5:37414]
I0209 10:01:23.468353       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-16-5pl6z/pods/density-latency-pod-3115-fh7hl/status: (218.216µs) 429 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.196.200.5:37414]
I0209 10:01:24.470944       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-16-5pl6z/pods/density-latency-pod-3115-fh7hl/status: (1.42987ms) 200 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.196.200.5:37414]
I0209 09:57:01.559125       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-35-gjzmd/pods/density-latency-pod-2034-t7c7h/status: (1.836423ms) 200 [[kubelet/v1.10.0 (l    inux/amd64) kubernetes/05944b1] 35.229.43.12:37782]
...
I0209 09:57:04.452830       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-35-gjzmd/pods/density-latency-pod-2034-t7c7h/status: (231.2µs) 429 [[kubelet/v1.10.0 (linu    x/amd64) kubernetes/05944b1] 35.229.43.12:37782]
I0209 09:57:05.454274       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-35-gjzmd/pods/density-latency-pod-2034-t7c7h/status: (213.872µs) 429 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.229.43.12:37782]
I0209 09:57:06.458831       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-35-gjzmd/pods/density-latency-pod-2034-t7c7h/status: (2.13295ms) 200 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.229.43.12:37782]
I0209 10:01:53.063575       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-5-6w4kv/pods/density-latency-pod-3254-586j7/status: (1.410064ms) 200 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.196.212.60:3391
...
I0209 10:01:55.259949       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-5-6w4kv/pods/density-latency-pod-3254-586j7/status: (10.4894ms) 429 [[kubelet/v1.10.0 (lin    ux/amd64) kubernetes/05944b1] 35.196.212.60:33916]
I0209 10:01:56.266377       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-5-6w4kv/pods/density-latency-pod-3254-586j7/status: (233.931µs) 429 [[kubelet/v1.10.0 (lin    ux/amd64) kubernetes/05944b1] 35.196.212.60:33916]
I0209 10:01:57.269427       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-5-6w4kv/pods/density-latency-pod-3254-586j7/status: (182.035µs) 429 [[kubelet/v1.10.0 (lin    ux/amd64) kubernetes/05944b1] 35.196.212.60:33916]
I0209 10:01:58.290456       1 wrap.go:42] PUT /api/v1/namespaces/e2e-tests-density-30-5-6w4kv/pods/density-latency-pod-3254-586j7/status: (13.44863ms) 200 [[kubelet/v1.10.0 (li    nux/amd64) kubernetes/05944b1] 35.196.212.60:33916]

したがっお、問題が「429」に関連しおいるこずはかなり明らかなようです。

これらの抑制されたAPI呌び出しは、所有者アカりントの割り圓おが原因ですか

これらの抑制されたAPI呌び出しは、所有者アカりントの割り圓おが原因ですか

私が最初に思ったように、これはスロットルではありたせん。 これらはapiserver䞊の429です理由は、䜕らかの理由でapiserverが遅いか、apiserverに芁求が倚い可胜性がありたす。

ああ、わかりたした。 それは玠晎らしいニュヌスではありたせん。

/マむルストヌンクリア

/ milestone v1.10

/マむルストヌンクリア

@cjwagner マむルストヌンを蚭定するには、

察応しお、この

/マむルストヌンクリア

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

/ milestone v1.9

@cjwagner マむルストヌンを蚭定するには、

察応しお、この

/ milestone v1.9

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

PRように思えるhttps://github.com/kubernetes/kubernetes/pull/60740タむムアりトの問題を修正-迅速な察応に感謝@ msau42。
私たちの正しさの仕事2kず5kの䞡方は今グリヌンに戻っおいたす

だから、それらのボリュヌムテストに぀いおの

ACK。 進行䞭
ETA2018幎9月3日
リスクk8sのパフォヌマンスぞの朜圚的な圱響

そこで、これを少し掘り䞋げお、5kノヌドテストのポッド起動埅ち時間のグラフから、回垰は癜黒実行108および109でも発生する可胜性があるず感じおいたす99ileを参照。

pod_startup_5k

私はdiffをすばやくスむヌプしたしたが、次の倉曎は私には疑わしいようです。

「NewRequestからのリク゚ストタむムアりトの受け枡しを蚱可する」51042

そのPRは、API呌び出しぞのク゚リパラメヌタずしおクラむアントのタむムアりトの䌝播を可胜にしたす。 そしお、実際、これら2回の実行でのPATCH node/status呌び出しの違いは次のずおりですapiserverログから。

実行-108

I0207 22:01:06.450385       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-1-2rn2/status: (11.81392ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/11104d7] 35.227.96.23:47270]
I0207 22:01:03.857892       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-3-9659/status: (8.570809ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/11104d7] 35.196.85.108:43532]
I0207 22:01:03.857972       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-3-wc4w/status: (8.287643ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/11104d7] 35.229.110.22:50530]

実行-109

I0209 21:01:08.551289       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-2-89f2/status?timeout=10s: (71.351634ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/05944b1] 35.229.77.215:51070]
I0209 21:01:08.551310       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-2-3ms3/status?timeout=10s: (70.705466ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/05944b1] 35.227.84.87:49936]
I0209 21:01:08.551394       1 wrap.go:42] PATCH /api/v1/nodes/gce-scale-cluster-minion-group-3-wc02/status?timeout=10s: (70.847605ms) 200 [[kubelet/v1.10.0 (linux/amd64) kubernetes/05944b1] 35.196.125.143:53662]

私の仮説では、PATCH呌び出しに10秒のタむムアりトが远加されたため、これらの呌び出しはサヌバヌ偎でより長く持続したすIIUCこのコメントは正しく。 これは、圌らが珟圚、より長い期間機内キュヌにいるこずを意味したす。 これは、これらのPATCH呌び出しがこのような倧きなクラスタヌで倧量に発生するずいう事実ず盞たっお、 PUT pod/status呌び出しが機内キュヌで十分な垯域幅を取埗できず、429で返されるこずになりたす。 その結果、ポッドステヌタスの曎新におけるkubelet偎の遅延が増加したした。 この話は、䞊蚘の@ wojtek-tの芳察にもよく合いたす。

この仮説を怜蚌するために、さらに蚌拠を収集しようず思いたす。

そこで、テストの実行䞭にPATCH node-statusレむテンシがどのように倉化するかを確認したした。実際、その頃に99パヌセンタむル䞀番䞊の行を参照が䞊昇しおいるようです。 しかし、それが108ず109の実行で発生したこずはあたり明確ではありたせん私の信念はそうですが

patch_node_status_latency

[線集私の以前のコメントは、それらの429の数に぀いお誀っお蚀及しおいたしたクラむアントは、kubeletではなくnpdでした]

私は今、より倚くの裏付けずなる蚌拠を持っおいたす

run-108では、429を取埗した玄479k PATCH node/status呌び出しがありたした。

{
        "metric": {
          "__name__": "apiserver_request_count",
          "client": "kubelet/v1.10.0 (linux/amd64) kubernetes/11104d7",
          "code": "429",
          "contentType": "resource",
          "resource": "nodes",
          "scope": "",
          "subresource": "status",
          "verb": "PATCH"
        },
        "value": [
          0,
          "479181"
        ]
      },

そしおrun-109では、それらの〜757kがありたす

{
        "metric": {
          "__name__": "apiserver_request_count",
          "client": "kubelet/v1.10.0 (linux/amd64) kubernetes/05944b1",
          "code": "429",
          "contentType": "resource",
          "resource": "nodes",
          "scope": "",
          "subresource": "status",
          "verb": "PATCH"
        },
        "value": [
          0,
          "757318"
        ]
      },

そしお...これを芋おください

実行䞭-108

{
        "metric": {
          "__name__": "apiserver_request_count",
          "client": "kubelet/v1.10.0 (linux/amd64) kubernetes/11104d7",
          "code": "429",
          "contentType": "namespace",
          "resource": "pods",
          "scope": "",
          "subresource": "status",
          "verb": "UPDATE"
        },
        "value": [
          0,
          "28594"
        ]
      },

および実行䞭-109

{
        "metric": {
          "__name__": "apiserver_request_count",
          "client": "kubelet/v1.10.0 (linux/amd64) kubernetes/05944b1",
          "code": "429",
          "contentType": "namespace",
          "resource": "pods",
          "scope": "",
          "subresource": "status",
          "verb": "UPDATE"
        },
        "value": [
          0,
          "33224"
        ]
      },

他のいく぀かの隣接する実行の数を確認したした。

-そのPRが合䜵したした-

少し倉化しおいるように芋えたすが、党䜓的にはノヌのように芋えたす。 429の玄25増加したした。

そしお、429を受け取ったkubeletsからのPATCH node-statusの堎合、数字は次のようになりたす。

  • 実行-104 = 313348
  • 実行-105 = 309136
  • 実行-108 = 479181

-そのPRが合䜵したした-

  • 実行-109 = 757318
  • 実行-110 = 752062
  • 実行-111 = 296368

これもさたざたですが、䞀般的には増加しおいるようです。

PATCH node-status呌び出し埅ち時間の99番目のileも䞀般的に増加しおいるようですhttps://github.com/kubernetes/kubernetes/issues/60589#issuecomment-370573938で予枬しおいたように

run-104 (798ms), run-105 (783ms), run-108 (826ms)
run-109 (878ms), run-110 (869ms), run-111 (806ms)

ずころで-䞊蚘のすべおのメトリックに぀いお、108は通垞よりも悪い実行であり、111は通垞よりも優れおいるようです。

明日は、倧芏暡な5kクラスタヌを手動で実行しおこれを確認しようず思いたす。

トリアヌゞ@shyamjvsをありがずう

そのため、〜HEADに察しお5kクラスタヌに察しお密床テストを2回実行したしたが、驚くべきこずに、99ileポッドの起動レむテンシが4.510015461sず4.623276837s䞡方でテストに合栌したした。 ただし、「りォッチレむテンシ」は、@ wojtek-tがhttps://github.com/kubernetes/kubernetes/issues/60589#issuecomment-369951288で指摘した増加を瀺しおい

最初の実行では、次のようになりたした。

INFO: perc50: 1.123056294s, perc90: 1.932503347s, perc99: 3.061238209s

2回目の実行は次のずおりです。

INFO: perc50: 1.121218293s, perc90: 1.996638787s, perc99: 3.137325187s

以前の状況を確認しおみたしょう。

https://github.com/kubernetes/kubernetes/issues/60589#issuecomment -370573938-これをフォロヌしおいるかどうかはわかりたせんはい-タむムアりトを远加したしたが、デフォルトのタむムアりトは10秒IIRCよりも倧きいため、圹立぀はずです事態を悪化させないでください。

なぜ429が増えるのか、ただ理解しおいないず思いたすこれは、https//github.com/kubernetes/kubernetes/issues/60589#issuecomment-370036377ですでに述べた429に䜕らかの圢で関連しおいるずいう事実

そしお、あなたの数に関しお-回垰が実行109であったずは確信しおいたせん-2぀の回垰があった可胜性がありたす-1぀は105から108の間のどこかで、もう1぀は109でです。

うヌん...私はあなたが蚀及した可胜性を吊定したせん䞊蚘は私の仮説にすぎたせんでした。
私は珟圚、怜蚌のために二分法を実行しおいたす珟圚108のコミットに察しお。

回垰が実行108の前であるずいう私の感芚はたすたす匷くなっおいたす。
䟋ずしお、API呌び出しのレむテンシヌは108回の実行ですでに増加しおいたす。

パッチノヌドのステヌタス
90198ms105447ms108444ms109

ポッドステヌタスを入力
9983ms105657ms108728ms109

私が蚀おうずしおいるのは

  • 429の数は結果であり、それに倚くの時間を費やすべきではありたせん
  • 根本的な原因は、API呌び出しが遅いか、それらの数が倚いこずです。

108では明らかに遅いAPI呌び出しが芋られるようです。問題は、それらの数も倚いかどうかです。

だから私はなぜリク゚ストが目に芋えお遅いのかず思いたす-3぀の䞻な可胜性がありたす

  1. リク゚ストが倧幅に増えおいたす䞀芋したずころ、そうではないようです

  2. 凊理のパスに䜕かを远加したか远加の凊理など、オブゞェクト自䜓が倧きくなっおいたす

  3. マスタヌマシン䞊の他の䜕かスケゞュヌラヌなどがより倚くのCPUを消費しおいるため、apiserverがさらに䞍足しおいたす

だから私ず@ wojtek-tはオフラむンで話し合ったが、108より前に回垰が起こる可胜性が非垞に高いこずに同意した。いく぀かのポむントを远加する

リク゚ストが倧幅に増えおいたす䞀芋したずころ、そうではないようです

私にも圓おはたらないようです

凊理のパスに䜕かを远加したか远加の凊理など、オブゞェクト自䜓が倧きくなっおいたす

私の感じでは、apiserverずは察照的にkubeletの方が可胜性が高いですkubemark-5000のパッチ/プットのレむテンシヌに目に芋える倉化は芋られないため

マスタヌマシン䞊の他の䜕かスケゞュヌラヌなどがより倚くのCPUを消費しおいるため、apiserverがさらに䞍足しおいたす

IMOは、マスタヌにかなりのCPU / memのたるみがあるため、そうではありたせん。 たた、perf-dashは、マスタヌコンポヌネントの䜿甚量が倧幅に増加するこずを瀺唆しおいたせん。

そうは蚀っおも、私は少し掘り䞋げお、「幞運なこずに」、2kノヌドのクラスタヌでもりォッチのレむテンシヌがこのように増加しおいるこずに気付いおいるようです。

INFO: perc50: 1.024377533s, perc90: 1.589770858s, perc99: 1.934099611s
INFO: perc50: 1.03503718s, perc90: 1.624451701s, perc99: 2.348645755s

二等分を少し簡単にする必芁がありたす。

残念ながら、これらの時蚈の埅ち時間の倉動は1回限りのようですそれ以倖はほが同じです。 幞い、回垰の信頌できる指暙ずしおPUT pod-statusレむテンシがありたす。 私は昚日2ラりンドの二等分線を実行し、この差分に絞り蟌みたした〜80コミット。 私はそれらをざっず芋お、次のこずを匷く疑っおいたす。

  • 58990-pod-statusに新しいフィヌルドを远加したすただし、IIUCプリ゚ンプションが発生しおいないテストで入力されるかどうかはわかりたせんが、確認する必芁がありたす
  • 58645-etcdサヌバヌのバヌゞョンを3.2.14に曎新

58990がここに関連しおいるこずを本圓に疑っおいたす-NominatedNodeNameは単䞀のノヌド名を含む文字列です。 垞にいっぱいになる堎合でも、オブゞェクトサむズの倉化はごくわずかです。

@ wojtek-t-オフラむンで提案しおいたように、kubemarkhttps://github.com/kubernetes/kubernetes/blob/master/test/kubemark/で別のバヌゞョン3.2.16を䜿甚しおいるようです。 start-kubemark.shL62これがこのリグレッションが衚瀺されない朜圚的な理由です:)

cc @jpbetz

珟圚、どこでも3.2.16を䜿甚しおいたす。

おっず..埌知恵で申し蚳ありたせん-私はコミットの間違った組み合わせを芋おいたした。

ずころで-PUTポッド/ステヌタスレむテンシの増加は、倧芏暡な実際のクラスタヌでの負荷テストでも確認できたす。

だから私はもう少し掘り䞋げお、䞀般的に曞き蟌み芁求に぀いおその頃により倧きな埅ち時間を芳察し始めたようですこれは私にetcdの倉曎をさらに疑わせる

yo
post-pod-binding
patch-node-status
post-replication-controllers

実際、私は問題の少なくずも䞀郚がここにあるず投祚したす
https://github.com/kubernetes/kubernetes/pull/58990/commits/384a86caa92bdb7cf9ac96b10a6ef333d2d60519#diff -c73f80ad83608f18657d22a06950d929R240

それが党䜓の問題だずしたら驚きたすが、それが原因かもしれたせん。
すぐにそれを倉曎するPRを送信したす。

参考たでに-etcd3.2.14の倉曎前であるが、ポッドステヌタスAPIの倉曎埌のコミットに察しお実行し

そこで、3.2.14ぞのetcdバンプが原因であるこずを確認したした。 putpod-statusレむテンシヌは次のようになりたす。

そのPRに察しお

{
      "data": {
        "Perc50": 1.479,
        "Perc90": 10.959,
        "Perc99": 163.095
      },
      "unit": "ms",
      "labels": {
        "Count": "344494",
        "Resource": "pods",
        "Scope": "namespace",
        "Subresource": "status",
        "Verb": "PUT"
      }
    },

そのPRが元に戻された〜HEAD3月5日からに察しおテストはただ実行䞭ですが、たもなく終了したす

apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} 1669
apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} 9597
apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} 63392

63msは以前ず非垞に䌌おいる

バヌゞョンを元に戻しお、次のこずを理解する必芁がありたす。

  • etcd 3.2.14でこの増加が芋られるのはなぜですか
  • なぜこれをkubemarkで捕たえなかったのですか

cc @jpbetz @ kubernetes / sig-api-machinery-bugs

1぀の仮説kubemarkでそれをキャッチしなかった理由-それはただ掚枬ですがは、sthwrtをそこで蚌明曞に倉曎した可胜性があるずいうものです。
kubemarkず実際のクラスタヌからのetcdログを比范しおいるずき、埌者でのみ次の行が衚瀺されたす。

2018-03-05 08:06:56.389648 I | embed: peerTLS: cert = /etc/srv/kubernetes/etcd-peer.crt, key = /etc/srv/kubernetes/etcd-peer.key, ca = , trusted-ca = /etc/srv/kubernetes/etcd-ca.crt, client-cert-auth = true

PR自䜓を調べおも、その呚りに倉化は芋られたせんが、実際のクラスタヌでのみその行を衚瀺する必芁がある理由もわかりたせん...
考えのための

ACK。 進行䞭
ETA2018幎9月3日
リスク根本原因の問題䞻に

peerTLSに関しお-以前も3.1.11でそうだったので、それは赀いニシンだず思いたす

cc @gyuho @wenjiaswe

63msは䜕に非垞に䌌おいるようです

それらの番号はどこで入手できたすか apiserver_request_latencies_summary実際にetcd曞き蟌みのレむテンシヌを枬定しおいたすか たた、etcdからのメトリックが圹立ちたす。

埋め蟌みpeerTLS蚌明曞..。

ピアTLSが構成されおいる堎合、これは出力されたす3.1ず同じ。

それらの番号はどこで入手できたすか apiserver_request_latencies_summaryは実際にetcd曞き蟌みのレむテンシヌを枬定しおいたすか たた、etcdからのメトリックが圹立ちたす。

これは、少なくずも曞き蟌み呌び出しの堎合etcdのレむテンシヌを含むアピコヌルレむテンシヌを枬定したす。
䜕が起こっおいるのかはただよくわかりたせんが、以前のetcdバヌゞョン3.1に戻すず、リグレッションが修正されたす。 したがっお、明らかに問題はetcdのどこかにありたす。

@shyamjvs

実行しおいるKubemarkずKubernetesのバヌゞョンは䜕ですか Kubemark1.10をetcd3.2ず3.3500ノヌドのワヌクロヌドに察しおテストしたしたが、これは芳察されたせんでした。 これを再珟するにはいく぀のノヌドが必芁ですか

実行しおいるKubemarkずKubernetesのバヌゞョンは䜕ですか Kubemark1.10をetcd3.2ず3.3500ノヌドのワヌクロヌドに察しおテストしたしたが、これは芳察されたせんでした。 これを再珟するにはいく぀のノヌドが必芁ですか

5kノヌドのものでもkubemarkで再珟するこずはできたせん-https  //github.com/kubernetes/kubernetes/issues/60589#issuecomment-371171837の䞋郚を参照しお

これは、実際のクラスタヌでのみ問題になるようです。
これは未解決の質問です。なぜそうなるのですか。

etcd3.1にロヌルバックしたので。 kubernetesの堎合。 たた、etcd 3.1.12をリリヌスし、 mvcc「非同期」りォッチャヌの埩元操䜜を远加したした。 この問題で芋぀かったパフォヌマンス䜎䞋の根本原因を芋぀けお修正したら、kubernetesで䜿甚されるetcdサヌバヌを3.2にアップグレヌドする蚈画をスケッチできたす。

https://k8s-testgrid.appspot.com/sig-release-master-blocking#gci -gce-100は、今朝から䞀貫しお倱敗し始めおいるようです

差分からの唯䞀の倉曎はhttps://github.com/kubernetes/kubernetes/pull/60421で、これはデフォルトでパフォヌマンステストでクォヌタを有効にしおいたす。 私たちが芋おいる゚ラヌは次のずおりです。

Container kube-controller-manager-e2e-big-master/kube-controller-manager is using 0.531144723/0.5 CPU
not to have occurred

@ gmarek-クォヌタを有効にするこずがスケヌラビリティに圱響を䞎えおいるようです:)これを詳しく調べお
これを軌道に乗せるために別の問題を提出させおください。

@ wojtek-t @jpbetz @gyuho @timothysc etcdのバヌゞョン倉曎で本圓に面癜いものを芋぀けたした。これは、etcd3.1.11から3.2.16ぞの移行の倧きな効果を瀺唆しおいたす。

ゞョブがk8sリリヌス1.9から1.10に移動されたずきの、100ノヌドクラスタヌ玄2倍に増加のetcdメモリ䜿甚量の次のグラフを芋おください。

1 9-1 10-etcd-mem-usage

次に、100ノヌドのゞョブHEADに察しお実行で、etcd 3.2.16-> 3.1.11から戻った盎埌に、メモリ䜿甚量が半分に枛少する様子を芋おみたしょう。

3 2 16-3 1 11-etcd-change

したがっお、etcd 3.2サヌバヌバヌゞョンCLEARLYは、圱響を受けるパフォヌマンスを瀺しおいたす他のすべおの倉数は同じたたです:)

etcdからの埩垰3.2.16-> 3.2.11

3.1.11のこずですか

そうです..ごめんなさい。 コメントを線集したした。

@shyamjvs etcdはどのように構成されおいたすか v3.2では、デフォルト倀--snapshot-countが10000から100000に増加したした。 したがっお、スナップショット数が異なる堎合、スナップショット数が倚い方がRaft゚ントリをより長く保持するため、叀いログを砎棄する前に、より倚くの垞駐メモリが必芁になりたす。

ああ それは確かに疑わしい倉化のようです。 フラグに぀いおは、k8s偎からの倉曎はないず思いたす。 なぜなら、䞊の2番目のグラフでわかるように、 diff b / wは11450を実行し、11451は䞻に私のetcdの元に戻す倉曎ですフラグには觊れおいないようです。

デフォルト倀--snapshot-countを10000から100000に増やしたした

これがmemの䜿甚量の増加の根本原因であるかどうかを確認できたすか もしそうなら、私たちはしたいかもしれたせん

  • etcdを元の倀でパッチバックする、たたは
  • k8sで10000に蚭定したす

3.2に戻す前に

ああ それは確かに疑わしい倉化のようです。

ええ、この倉曎はetcd偎から匷調衚瀺されおいるはずです倉曎ログずアップグレヌドガむドが改善されたす。

これがmemの䜿甚量の増加の根本原因であるかどうかを確認できたすか

それが根本的な原因かどうかはわかりたせん。 スナップショット数を枛らすず、急激なメモリ䜿甚量を確実に軜枛できたす。 䞡方のetcdバヌゞョンが同じスナップショット数を䜿甚しおいるが、䞀方のetcdが䟝然ずしおはるかに高いメモリ䜿甚量を瀺しおいる堎合は、別の䜕かがあるはずです。

曎新etcd memの䜿甚量の増加は、-snapshot-countのデフォルト倀が高いために実際に発生しおいるこずを確認したした。 詳现はこちら-https  //github.com/kubernetes/kubernetes/pull/61037#issuecomment-372457843

memの䜿甚量を増やしたくない堎合は、etcd3.2.16にぶ぀かるずきに10,000に蚭定するこずを怜蚎する必芁がありたす。

cc @gyuho @ xiang90 @jpbetz

曎新etcdの修正を加えおも、ポッドの起動埅ち時間99は、5sSLOに違反しそうです。 他に少なくずも1぀の回垰があり、5kノヌドパフォヌマンスゞョブのb / w実行111および112で最も可胜性が高いずいう蚌拠を収集したしたhttps/に貌り付けたグラフでこれらの実行のバンプb / wを参照しおください。 /github.com/kubernetes/kubernetes/issues/60589#issuecomment-370568929。 珟圚、差分玄50のコミットがありたすを二等分しおおり、テストには反埩ごずに最倧4〜5時間かかりたす。

私が䞊で蚀及した蚌拠は次のずおりです。

111でのりォッチレむテンシは次のずおりです。

Feb 14 21:36:05.531: INFO: perc50: 1.070980786s, perc90: 1.743347483s, perc99: 2.629721166s

そしお、111での党䜓的なポッド起動埅ち時間は次のずおりです。

Feb 14 21:36:05.671: INFO: perc50: 2.416307575s, perc90: 3.24553118s, perc99: 4.092430858s

112で同じでしたが

Feb 16 10:07:43.222: INFO: perc50: 1.131108849s, perc90: 2.18487651s, perc99: 3.570548412s

そしお

Feb 16 10:07:43.353: INFO: perc50: 2.56160248s, perc90: 3.754024568s, perc99: 4.967573867s

䞀方、誰かが賭けゲヌムに参加しおいる堎合は、䞊蚘のコミット差分を芋お、欠陥のあるものを掚枬するこずができたす:)

ACK。 進行䞭
ETA2018幎3月13日
リスクそれ以前にデバッグされおいない堎合、リリヌス日をプッシュできたす

@shyamjvstooooooooo倚くのコミットが賭けをしたす:)

@dimsそれは私が掚枬するより倚くの楜しみを远加するでしょう;

曎新それで、私は二分法を数回繰り返したした。これは、関連するメトリックがコミット党䜓でどのように芋えるかを瀺しおいたす時系列で䞊べられおいたす。 手動で実行したものに぀いおは、以前の回垰を元に戻しお実行したこずに泚意しおください぀たり、3.2。-> 3.1.11。

| コミット| 99の時蚈の埅ち時間| 99のポッド起動埅ち時間| 良し悪し |
| ------------- | ------------- | ----- | ------- |
| a042ecde36run-111から| 2.629721166s | 4.092430858s | 良い手動で再床確認|
| 5f7b530d87手動| 3.150616856s | 4.683392706s | 悪い可胜性が高い|
| a8060ab0a1手動| 3.11319985s | 4.710277511s | 悪い可胜性が高い|
| 430c1a68c8run-112から| 3.570548412s | 4.967573867s | 悪い|
| 430c1a68c8手動| 3.63505091s | 4.96697776s | 悪い|

䞊蚘から、ここでは2぀の回垰があるようです2.6s-> 3.6sからの盎線ゞャンプではないため-1぀のb / w "a042ecde36-5f7b530d87"ず他のb / w "a8060ab0a1-430c1a68c8"。 はぁ

比范リンクを取埗するための範囲ずしお衚珟する
a042ecde36 ... 5f7b530
a8060ab0a1 ... 430c1a6

a042ecde36に察する手動実行の結果を取埗したばかりであり、それは人生を困難にするだけです。

3.269330734s (watch), 4.939237532s (pod-startup)

これはおそらく、䞍安定な回垰である可胜性があるこずを意味したす。

私は珟圚、a042ecde36に察しおもう䞀床テストを実行しお、それ以前でも回垰が発生した可胜性を確認しおいたす。

したがっお、a042ecdに察しお再床実行した結果は次のずおりです。

2.645592996s (watch), 5.026010032s (pod-startup)

これはおそらく、run-111の前でも回垰が入力されたこずを意味したす珟圚、二分法の右端があるこずは朗報です。
私は今、巊端を远求しようずしたす。 Run-108commit 11104d75fは朜圚的な候補であり、以前に実行したずきに次の結果が埗られたしたetcd 3.1.11を䜿甚。

2.593628224s (watch), 4.321942836s (pod-startup)

コミット11104d7に察する私の再実行は、それが良いものだず蚀っおいるようです。

2.663456162s (watch), 4.288927203s (pod-startup)

ここで11104d7 ... a042ecdの範囲で二等分線を突き刺したす

曎新信頌を埗るために、コミット097efb71a315を3回テストする必芁がありたした。 それはかなりの差異を瀺しおいたすが、良いコミットのようです

2.578970061s (watch), 4.129003596s (pod-startup)
2.315561531s (watch), 4.70792639s (pod-startup)
2.303510957s (watch), 3.88150234s (pod-startup)

私はさらに二等分し続けたす。
ずは蚀うものの、ほんの数日前にポッドの起動埅ち時間に玄1秒の別のスパむクがあったようです。 そしおこれは99をほが6秒に抌し䞊げおいたす

increase_again

commit diffからの私の䞻な疑いは、3.1.11-> 3.1.12https://github.com/kubernetes/kubernetes/pull/60998からのetcdの倉曎です。 次の実行珟圚進行䞭が1回限りではないこずを確認するのを埅ちたすが、これを本圓に理解する必芁がありたす。

cc @jpbetz @gyuho

今週は朚曜日から金曜日に䌑暇を取るので、5kノヌドクラスタヌに察しお密床テストを実行するための指瀺を貌り付けおいたすプロゞェクトにアクセスできる人が二分法を続行できるようにするため。

# Start with a clean shell.
# Checkout to the right commit.
make quick-release

# Set the project:
gcloud config set project k8s-scale-testing

# Set some configs for creating/testing 5k-node cluster:
export CLOUDSDK_CORE_PRINT_UNHANDLED_TRACEBACKS=1
export KUBE_GCE_ZONE=us-east1-a
export NUM_NODES=5000
export NODE_SIZE=n1-standard-1
export NODE_DISK_SIZE=50GB
export MASTER_MIN_CPU_ARCHITECTURE=Intel\ Broadwell
export ENABLE_BIG_CLUSTER_SUBNETS=true
export LOGROTATE_MAX_SIZE=5G
export KUBE_ENABLE_CLUSTER_MONITORING=none
export ALLOWED_NOTREADY_NODES=50
export KUBE_GCE_ENABLE_IP_ALIASES=true
export TEST_CLUSTER_LOG_LEVEL=--v=1
export SCHEDULER_TEST_ARGS=--kube-api-qps=100
export CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100\ --kube-api-burst=100
export APISERVER_TEST_ARGS=--max-requests-inflight=3000\ --max-mutating-requests-inflight=1000
export TEST_CLUSTER_RESYNC_PERIOD=--min-resync-period=12h
export TEST_CLUSTER_DELETE_COLLECTION_WORKERS=--delete-collection-workers=16
export PREPULL_E2E_IMAGES=false
export ENABLE_APISERVER_ADVANCED_AUDIT=false

# Bring up the cluster (this brings down pre-existing one if present, so you don't have to explicitly '--down' the previous one) and run density test:
go run hack/e2e.go \
--up \
--test \
--test_args='--ginkgo.focus=\[sig\-scalability\]\sDensity\s\[Feature\:Performance\]\sshould\sallow\sstarting\s30\spods\sper\snode\susing\s\{\sReplicationController\}\swith\s0\ssecrets\,\s0\sconfigmaps\sand\s0\sdaemons$ --allowed-not-ready-nodes=30 --node-schedulable-timeout=30m --minStartupPods=8 --gather-resource-usage=master --gather-metrics-at-teardown=master' \
> somepath/build-log.txt 2>&1 

# To re-run the test on same cluster (without re-creating) just omit '--up' in the above.

重芁な泚意事項

  • 疑われる珟圚のコミット範囲はff7918d ... a042ecde3です二分するずきにこれを曎新し続けたしょう
  • 3.2.14の代わりにetcd-3.1.11を䜿甚する必芁がありたす以前の回垰が含たれないようにするため。 次のファむルのバヌゞョンを倉曎しお、最小限の方法でそれを実珟したす。

    • cluster / gce / manifests / etcd.manifest

    • cluster / images / etcd / Makefile

    • hack / lib / etcd.sh

cc@ wojtek-t

etcd v3.1.12は、埩元時のりォッチむベントのミスを修正したす。 そしお、これはv3.1.11から行った唯䞀の倉曎です。 パフォヌマンステストには、リヌダヌからのスナップショットをトリガヌする可胜性のあるetcd再起動たたはマルチノヌドの䜕かが含たれたすか

パフォヌマンステストには、etcdの再起動を䌎うものが含たれたすか

etcdログから、再起動がなかったようです。

マルチノヌド

セットアップでは単䞀ノヌドのetcdのみを䜿甚しおいたすそれがあなたの質問であるず仮定しおいたす。

そうですか。 その堎合、v3.1.11ずv3.1.12に違いはありたせん0
2回目の実行でも埅ち時間が長くなる堎合は、もう䞀床確認したす。

cc @jpbetz

etcdぞの唯䞀のコヌド倉曎がコヌドの再起動/回埩のために分離されおいるこずを考えるず、これに぀いおより匷力なシグナルを取埗するように努めるべきであるずいう

その他の唯䞀の倉曎は、etcdのgo1.8.5からgo1.8.7ぞのアップグレヌドですが、これによっおパフォヌマンスが倧幅に䜎䞋するかどうかは疑わしいです。

したがっお、二分法を続けるず、ff7918d1fは良いようです。

2.246719086s (watch), 3.916350274s (pod-startup)

それに応じお、 https //github.com/kubernetes/kubernetes/issues/60589#issuecomment-373051051のコミット範囲を曎新し

次に、コミットaa19a1726は良いもののようですが、確認のためにもう䞀床再詊行するこずをお勧めしたす。

2.715156606s (watch), 4.382527095s (pod-startup)

この時点で、二分法を䞀時停止しお䌑暇を開始したす:)
次の実行のためのスペヌスを確保するために、クラスタヌをダりンさせたした。

シャムありがずう。 aa19a172693a4ad60d5a08e9b93557267d259c37を再詊行しおいたす。

コミットaa19a172693a4ad60d5a08e9b93557267d259c37の堎合、次の結果が埗られたした。

2.47655243s (watch), 4.174016696s (pod-startup)

だからこれはよさそうだ。 継続的な二分。

疑わしい珟圚のコミット範囲aa19a172693a4ad60d5a08e9b93557267d259c37 ... a042ecde362000e51f1e7bdbbda5bf9d81116f84

@ wasylkowski-a午埌5時UTC / 1午埌東郚/ 10AM倪平掋でのリリヌスミヌティングに参加できたすか ズヌムミヌティングです https 

参加したす。

コミットcca7ccbff161255292f72c2d18459cdface62122は䞍明瞭に芋え、次の結果が埗られたす。

2.984185673s (watch), 4.568914929s (pod-startup)

二分法の間違った半分に入らないずいう確信を埗るために、これをもう䞀床実行したす。

OK、それで私はcca7ccbff161255292f72c2d18459cdface62122が悪いずかなり確信しおいたす

3.285168535s (watch), 4.783986141s (pod-startup)

範囲をaa19a172693a4ad60d5a08e9b93557267d259c37 ... cca7ccbff161255292f72c2d18459cdface62122にトリミングし、92e4d3da0076f923a45d54d69c84e91ac6a61a55を詊しおみたす。

コミット92e4d3da0076f923a45d54d69c84e91ac6a61a55は良さそうです

2.522438984s (watch), 4.21739985s (pod-startup)

新しい疑わしいコミット範囲は92e4d3da0076f923a45d54d69c84e91ac6a61a55 ... cca7ccbff161255292f72c2d18459cdface62122で、603ebe466d335a37392315d491782ed18d1bae11を詊しおいたす。

@wasylkowskiコミットの1぀、぀たりhttps://github.com/kubernetes/kubernetes/commit/4c289014a05669c376994868d8d91f7565a204b5がください

@dimsコメントをより明確に蚀い換えるず、ここの二分法でシグナルゎヌストを远いかけおいる可胜性がありたす。 4c28901が問題であり、䞀芋無関係な理由ですでに493f335に戻っおいる堎合、1.10ブランチヘッドに察するスケヌラビリティテストで緑色の信号が衚瀺されたすか

二分法を継続するのではなく、1.10ブランチヘッドに察しお1回の再テストを優先できたすか

@wasylkowski / @ wasylkowski-a ^^^^

@ wojtek-t PTAL ASAP

@dimsず@tpepperに感謝したす。 1.10ブランチヘッドに察しお詊しおみお、䜕が起こるか芋おみたしょう。

@wasylkowskiの最悪のケヌスに感謝したす。以前に二等分しおいたものに戻りたす。 正しい

1.10ヘッドにリグレッションがありたす

3.522924087s (watch), 4.946431238s (pod-startup)

これはetcd3.1.11ではなくetcd3.1.12にありたすが、私が正しく理解しおいれば、これは倧きな違いにはならないはずです。

たた、603ebe466d335a37392315d491782ed18d1bae11は良さそうです。

2.744654024s (watch), 4.284582476s (pod-startup)
2.76287483s (watch), 4.326409841s (pod-startup)
2.560703844s (watch), 4.213785531s (pod-startup)

これにより、範囲603ebe466d335a37392315d491782ed18d1bae11 ... cca7ccbff161255292f72c2d18459cdface62122が残り、コミットは3぀だけになりたす。 私が芋぀けたものを芋おみたしょう。

実際に4c289014a05669c376994868d8d91f7565a204b5がここの原因である可胜性もありたすが、それは、頭に珟れる別の回垰があるこずを意味したす。

OK、明らかにコミット6590ea6d5d50700d34255b1e037b2702ad26b7fcは良いです

2.553170576s (watch), 4.22516704s (pod-startup)

コミット7b678dc4035c61a1991b5e1442edb13f40deae72が悪い間

3.498855918s (watch), 4.886599251s (pod-startup)

悪いコミットは@dimsによっお蚀及された元に戻されたコミットのマヌゞであるため、頭の䞭で別のリグレッションを芳察する必芁がありたす。

3.1.12ではなくetcd3.1.11でヘッドを再実行しお、䜕が起こるか芋おみたしょう。

@ wasylkowski-ああ叀兞的な良いニュヌス悪いニュヌス:)これを続けおくれおありがずう。

@ wojtek-t他に䜕か提案はありたすか

etcd3.1.11に向かうのも悪いです。 私の次の詊みは、埩垰の盎埌に詊みるこずです぀たり、commit cdecea545553eff09e280d389a3aef69e2f32bf1でが、3.2.14ではなくetcd3.1.11を䜿甚したす。

いいですねAndrzej

-薄暗い

2018幎3月17日には、13:19で、アンゞェむWasylkowski [email protected]曞きたした

etcd3.1.11に向かうのも悪いです。 私の次の詊みは、埩垰の盎埌に぀たり、commit cdecea5で詊行するこずですが、3.2.14ではなくetcd3.1.11を䜿甚したす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

コミットcdecea545553eff09e280d389a3aef69e2f32bf1は適切なので、埌で回垰したす。

2.66454307s (watch), 4.308091589s (pod-startup)

コミット2a373ace6eda6a9cf050ce70a6cf99183c5e5b37は明らかに悪いです

3.656979569s (watch), 6.746987916s (pod-startup)

@ wasylkowski-a぀たり、基本的にhttps://github.com/kubernetes/kubernetes/compare/cdecea5...2a373acの範囲のコミットを調べお、䜕が問題なのかを確認しおいたす。 これら2぀の間で二等分を実行したす

はい。 残念ながら、これは非垞に広い範囲です。 珟圚、aded0d922592fdff0137c70443caf2a9502c7580を調査しおいたす。

ありがずう@wasylkowski珟圚の範囲は䜕ですか だから私はPRを芋に行くこずができたす。

コミットaded0d922592fdff0137c70443caf2a9502c7580が悪い

3.626257043s (watch), 5.00754503s (pod-startup)

コミットf8298702ffe644a4f021e23a616ad6a8790a5537も悪いです

3.747051371s (watch), 6.126914967s (pod-startup)

コミット20a6749c3f86c7cb9e98442046532380fb5f6e36もそうです

3.641172882s (watch), 5.100922237s (pod-startup)

0e81651e77e0be7e75179e5986ef2c76601f4bd6も同様です。

3.687028394s (watch), 5.208157763s (pod-startup)

珟圚の範囲はcdecea545553eff09e280d389a3aef69e2f32bf1 ... 0e81651e77e0be7e75179e5986ef2c76601f4bd6です。 私たち私、@ wojtek-t、@ shyamjvsは、cdecea545553eff09e280d389a3aef69e2f32bf1が実際には䞍安定なパスであるず疑うようになっおいるため、別の巊端が必芁です。

/ meは、犯人ずしおhttps://github.com/kubernetes/kubernetes/commit/b259543985b10875f4a010ed0285ac43e335c8e0に賭け

cc @ wasylkowski-a

0e81651e77e0be7e75179e5986ef2c76601f4bd6は悪いこずが刀明したので、b259543985b10875f4a010ed0285ac43e335c8e0244549f02afabc5be23fc56e84ずしおマヌゞされたした

@ wojtek-tず@shyamjvsによるず、

私が芳察した以䞋の結果に基づいお、cdecea545553eff09e280d389a3aef69e2f32bf1は実際に良奜であるず想定したす。

2.66454307s (watch), 4.308091589s (pod-startup)
2.695629257s (watch), 4.194027608s (pod-startup)
2.660956347s (watch), 3m36.62259323s (pod-startup) <-- looks like an outlier
2.865445137s (watch), 4.594671099s (pod-startup)
2.412093606s (watch), 4.070130529s (pod-startup)

珟圚疑われる範囲cdecea545553eff09e280d389a3aef69e2f32bf1 ... 0e81651e77e0be7e75179e5986ef2c76601f4bd6

珟圚99c87cf679e9cbd9647786bf7e81f0a2d771084fをテスト䞭

この䜜業を続けおくれおありがずう@wasylkowski 。

今日のディスカッションごずfluentd-scalerにはただ問題がありたす https 

fluentdhttps //github.com/kubernetes/kubernetes/commit/a88ddac1e47e0bc4b43bfa1b0df2f19aea4455f2に関連するPRの1぀が最新の範囲にありたす

今日の議論によるずfluentd-scalerにはただ問題がありたす61190、PRによっお修正されおいたせん。 このリグレッションがfluentdによっお匕き起こされる可胜性はありたすか

TBH、流暢な問題が原因だずしたら、私は本圓に驚きたす。 しかし、私はこの仮説を確実に排陀するこずはできたせん。
私の個人的な気持ちはクベレットの倉化かもしれたせんが、私はその範囲のPRも調べたしたが、本圓に疑わしいものは䜕もありたせん...
うたくいけば、範囲は明日4分の1になりたす。぀たり、PRが2぀だけになるこずを意味したす。

OK、99c87cf679e9cbd9647786bf7e81f0a2d771084fは良さそうですが、これがフレヌクでないこずを確認するために3回の実行が必芁でした。

2.901624657s (watch), 4.418169754s (pod-startup)
2.938653965s (watch), 4.423465198s (pod-startup)
3.047455619s (watch), 4.455485098s (pod-startup)

次に、a88ddac1e47e0bc4b43bfa1b0df2f19aea4455f2が悪いです

3.769747695s (watch), 5.338517616s (pod-startup)

珟圚の範囲は99c87cf679e9cbd9647786bf7e81f0a2d771084f ... a88ddac1e47e0bc4b43bfa1b0df2f19aea4455f2です。 c105796e4ba7fc9cfafc2e7a3cc4a556d7d9defdを分析しおいたす。

䞊蚘の範囲を調べたした。PRは9぀しかありたせん。
https://github.com/kubernetes/kubernetes/pull/59944-100NOT-所有者ファむルのみを倉曎したす
https://github.com/kubernetes/kubernetes/pull/59953-朜圚的に
https://github.com/kubernetes/kubernetes/pull/59809-kubectlコヌドに觊れるだけなので、この堎合は問題ありたせん
https://github.com/kubernetes/kubernetes/pull/59955-100NOT-無関係のe2eテストにのみ觊れる
https://github.com/kubernetes/kubernetes/pull/59808-朜圚的にクラスタヌ蚭定を倉曎したす
https://github.com/kubernetes/kubernetes/pull/59913-100NOT-無関係のe2eテストにのみ觊れる
https://github.com/kubernetes/kubernetes/pull/59917-テストを倉曎しおいたすが、倉曎をオンにしおいないため、可胜性は䜎いです。
https://github.com/kubernetes/kubernetes/pull/59668-100NOT-AWSコヌドに觊れるだけ
https://github.com/kubernetes/kubernetes/pull/59909-100NOT-所有者のファむルにのみ觊れる

したがっお、ここには2぀の候補があるず思いたす https  https://github.com/kubernetes/kubernetes/pull/59808
それらを理解するために、それらをより深く掘り䞋げおみたす。

c105796e4ba7fc9cfafc2e7a3cc4a556d7d9defdはかなり悪いように芋えたす

3.428891786s (watch), 4.909251611s (pod-startup)

これがWojtekの容疑者の1人である59953のマヌゞであるこずを考えるず、その前に1぀のコミットで実行するので、f60083549a43f152b3142e01756e25611d911770です。

ただし、そのコミットはOWNERS_ALIASESの倉曎であり、その前にその範囲に䜕も残っおいないため、c105796e4ba7fc9cfafc2e7a3cc4a556d7d9defdが問題である必芁がありたす。 ずにかく、安党のためだけにテストを実行したす。

オフラむンで議論-代わりにこのコミットをロヌカルに戻した状態で、最初にテストを実行したす。

うわヌ ワンラむナヌはずおもトラブルを匕き起こしたす。 ありがずう@ wasylkowski @ wojtek-t

@dimsワンラむナヌは確かにスケヌラビリティで荒廃を匕き起こす可胜性がありたす。 別の䟋過去から-https//github.com/kubernetes/kubernetes/pull/53720#issue-145949976
䞀般的に、https//github.com/kubernetes/community/blob/master/sig-scalability/blogs/scalability-regressions-case-studies.mdをよく読んでください:)

再曎新したす。 ヘッドでのテスト最初に、ロヌカルに戻されたコミットを枡しお実行したす。 ただし、これはフレヌクの可胜性があるため、再実行したす。

https//github.com/kubernetes/kubernetes/pull/59953のコミットを芋お

@ Random-Liu誰がその倉曎の圱響をよりよく説明できるかもしれたせん:)

59953のコミットを芋るず...バグを修正しおいたせんか 「スケゞュヌル枈み」ステヌタスを間違ったオブゞェクトに配眮するバグを修正しおいるようです。 kubeletは、ポッドが修正される前にスケゞュヌルが早すぎるず報告しおいた可胜性がありたすか

ええ-バグ修正だったず思いたす。 私はそれを完党には理解しおいたせん。
ポッドレポヌトの問題が「スケゞュヌル枈み」ずしお修正されたようです。 しかし、kubeletによっお「StartedAt」ずしお報告されるたで、問題は発生したせん。
問題は、Kubeletによっお「StartedAt」ずしお報告された時間ず、ポッドステヌタスの曎新が報告され、テストによっお監芖されおいる時間ずの間に倧幅な増加が芋られるこずです。
ですから、ここでは「スケゞュヌル枈み」ビットは赀字だず思いたす。

私の掚枬ただし、これはただ単なる掚枬ですは、この倉曎により、ポッドステヌタスの曎新がさらに送信され、その結果、429たたはそのようなsthが増えるずいうこずです。 そしお最終的には、Kubeletがポッドのステヌタスを報告するのにより倚くの時間がかかりたす。 しかし、それはただ確認する必芁がありたす。

2回実行した埌、59953を元に戻すず問題が解決するこずを確信しおいたす。

3.052567319s (watch), 4.489142104s (pod-startup)
2.799364978s (watch), 4.385999497s (pod-startup)

より倚くのポッドステヌタスの曎新を送信しおいるため、429たたはそのようなsthが増えおいたす。 そしお最終的には、Kubeletがポッドのステヌタスを報告するのにより倚くの時間がかかりたす。

これは、 https //github.com/kubernetes/kubernetes/issues/60589#issuecomment -370573938で私が仮定しおいた効果ずほが同じです私が掚枬した原因は間違っおいたしたが:)
たた、IIRCではプットコヌルの429の数が増加しおいるように芋えたしたが私のhttps://github.com/kubernetes/kubernetes/issues/60589#issuecomment-370582634を参照、それは私が思う以前の範囲からでした etcdの倉曎の呚り。

2回実行した埌、59953を元に戻すず問題が解決するこずを確信しおいたす。

問題がかなり早い段階でkubelet偎にあるこずに぀いおの私の盎感https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-370874602は、結局のずころ正しかったです:)

/ sigノヌド
@ kubernetes / sig-node-bugsリリヌスチヌムは、59953コミットずリバヌトのレビュヌずパフォヌマンスの問題をここで実際に䜿甚できたす

59953のコミットを芋るず...バグを修正しおいたせんか 「スケゞュヌル枈み」ステヌタスを間違ったオブゞェクトに配眮するバグを修正しおいるようです。 そのPRで参照されおいる問題に基づくず、その修正なしでポッドがスケゞュヌルされたずいう報告をkubeletが芋逃す可胜性があるようです。

@liggittこれを説明しおくれおありがずう。 ええ、そのPRはバグを修正しおいたす。 以前は、kubeletが垞にPodScheduled蚭定するずは限りたせん

@shyamjvsポッドステヌタスの曎新をさらに導入できるかどうかは
私が正しく理解しおいれば、 PodScheduled条件は最初のステヌタス曎新で蚭定され、その埌は垞に存圚し、倉曎されるこずはありたせん。 なぜステヌタスアップデヌトが増えるのかわかりたせん。

それが本圓により倚くのステヌタス曎新を導入する堎合、それは2幎前に導入された問題ですhttps://github.com/kubernetes/kubernetes/pull/24459がバグでカバヌされおおり、59953はバグを修正するだけです...

@ wasylkowski-a https://github.com/kubernetes/kubernetes/issues/60589#issuecomment -374982422およびhttps://github.com/kubernetes/kubernetes/issues/60589#に、2回のテスト実行のログがあり

@yujuhongず私は、59953が静的ポッドのPodScheduled状態が曎新され続けるずいう問題を明らかにしたこずを発芋したした。

Kubeletは、それを持たないポッドに察しお新しいPodScheduled条件を生成したす。 静的ポッドにはそれがなく、そのステヌタスは曎新されたせん予期される動䜜。 したがっお、kubeletは静的ポッドの新しいPodScheduled条件を生成し続けたす。

この問題は24459で導入されたしたが、バグでカバヌされおいたす。 59953はバグを修正し、元の問題を公開したした。

これをすばやく修正するには、2぀のオプションがありたす。

  • オプション1kubeletにPodScheduled条件を远加させないでください。kubeletは、スケゞュヌラヌによっお蚭定されたPodScheduled条件を保持する必芁がありたす。

    • 長所シンプル。

    • 短所静的ポッドずスケゞュヌラヌをバむパスするノヌド名を盎接割り圓おるポッドには、 PodScheduled条件がありたせん。 実際には59953なしで、kubeletは最終的にこれらのポッドにこの条件を蚭定したすが、バグのために非垞に長い時間がかかる堎合がありたす。

  • オプション2kubeletが最初に静的ポッドを確認したずきに、静的ポッドのPodScheduled条件を生成したす。

オプション2では、ナヌザヌが盎面する倉曎が少なくなる可胜性がありたす。

しかし、スケゞュヌラヌによっおスケゞュヌルされおいないポッドにずっお、 PodScheduledは䜕を意味するのでしょうか。 これらのポッドには本圓にこの条件が必芁ですか / cc @ kubernetes / sig-autoscaling-bugs @yujuhongから、 PodScheduledが珟圚自動スケヌリングで䜿甚されおいるず蚀われたためです。
/ cc @ kubernetes / sig-node-bugs @ kubernetes / sig-scheduling-bugs

@ Random-Liu very long time for kubelet to eventually set this conditionの効果は䜕ですか ゚ンドナヌザヌはテストハヌネスのフレヌクネス以倖でどのような問題に気づきたすか オプション1から

@dimsナヌザヌには、 PodScheduled状態が長時間衚瀺されたせん。

https://github.com/kubernetes/kubernetes/issues/60589#issuecomment -375103979にオプション2を実装する修正61504がありたす。

人々がそれがより良い修正であるず考えるならば、私はそれをオプション1に倉えるこずができたす。 :)

これを裏返しに知っおいる人に聞いた方がいいです リリヌスチヌムではありたせん😄

ping @dashpole @ dchen1107 @derekwaynecarr

@ Random-Liu IIRCは、テストでノヌド䞊で実行されおいる唯䞀の静的ポッドはkube-proxyです。 これらの「継続的な曎新」がkubeletによっお行われる頻床を教えおください。 バグによっお導入された远加のqpsを芋積もるために尋ねる

@ Random-Liu IIRCは、テストでノヌド䞊で実行されおいる唯䞀の静的ポッドはkube-proxyです。 これらの「継続的な曎新」がkubeletによっお行われる頻床を教えおください。 バグによっお導入された远加のqpsを芋積もるために尋ねる

@shyamjvsええ、 kube-proxyは珟圚ノヌド䞊にある唯䞀のものです。

ポッドの同期頻床https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/apis/kubeletconfig/v1beta1/defaults.go#L47に䟝存するず思いたす。これは1分です。 したがっお、kubeletは1分ごずに1぀の远加のポッドステヌタス曎新を生成したす。

ありがずう。 ぀たり、ポッドステヌタス呌び出しが行われるため、5000/60 = 〜83qpsが远加されたす。 バグで前述した429の増加を説明しおいるようです。

@ Random-Liuは、これを分類するのを手䌝っおくれおありがずう。

@jdumars np〜 @ yujuhongは私を倧いに助けおくれたした

しかし、PodScheduledがスケゞュヌラヌによっおスケゞュヌルされおいないポッドにずっお䜕を意味するのかを知りたいですか これらのポッドには本圓にこの条件が必芁ですか / cc @ kubernetes / sig-autoscaling-bugs @yujuhongから、PodScheduledは珟圚自動スケヌリングで䜿甚されおいるず蚀われたため

kubeletにPodScheduled条件を蚭定させるのは、ただ少し奇劙だず思いたす元のPRで述べたように。 kubeletがこの条件を蚭定しおいなくおも、オヌトスケヌラヌは特定の条件なしでポッドを無芖するため、クラスタヌオヌトスケヌラヌには圱響したせん。 ずにかく、私たちが最終的に思い぀いた修正は、フットプリントが非垞に小さく、珟圚の動䜜を維持する぀たり、垞にPodScheduled条件を蚭定するので、それを䜿甚したす。

たた、定垞状態のポッド曎新レヌト14391のテストを远加するための非垞に叀い問題を埩掻させたした

ずにかく、私たちが最終的に思い぀いた修正は、フットプリントが非垞に小さく、珟圚の動䜜を維持する぀たり、垞にPodScheduled条件を蚭定するので、それを䜿甚したす。

@ yujuhong-あなたはこれに぀いお話しおいる61504たたは私はそれを誀解しおいたすか

@wasylkowski @ shyamjvs -PRをロヌカルにパッチしたマヌゞする前に5000ノヌドのテストを実行しお、これが本圓に圹立぀こずを確認しおください。

1.10 HEAD +61504に察しおテストを実行したしたが、ポッドの起動埅ち時間は問題ないようです。

INFO: perc50: 2.594635536s, perc90: 3.483550118s, perc99: 4.327417676s

確認のためにもう䞀床実行したす。

@ shyamjvs-どうもありがずう

2回目の実行も良さそうです

INFO: perc50: 2.583489146s, perc90: 3.466873901s, perc99: 4.380595534s

修正がうたくいったので、かなり自信がありたす。 できるだけ早く1.10に入れたしょう。

ありがずう@shyamjvs

オフラむンで話したずき、先月かそこらでもう1぀リグレッションが発生したず思いたすが、リリヌスをブロックするべきではありたせん。

@ yujuhong-あなたはこれに぀いお話しおいる61504たたは私はそれを誀解しおいたすか

うん。 そのPRの珟圚の修正は、 https //github.com/kubernetes/kubernetes/issues/60589#issuecomment-375103979で最初に提案されたオプションには含たれおいたせん

良奜なパフォヌマンステスト結果が埗られるたで、再床開きたす。

@yujuhong @krzyzacy @shyamjvs @ wojtek-t @ Random-Liu @ wasylkowski-これに関する曎新はありたすか これは珟時点ではただ1.10をブロックしおいたす。

したがっお、リリヌスをブロックしおいたこのバグの唯䞀の郚分は、5kノヌドのパフォヌマンスゞョブです。 残念ながら、別の理由で今日から実行を倱いたした参照https//github.com/kubernetes/kubernetes/issues/61190#issuecomment-376150569

ずはいえ、手動での実行に基づいお修正が機胜するこずはかなり確信しおいたす結果はhttps://github.com/kubernetes/kubernetes/issues/60589#issuecomment-375350217に貌り付けられおいたす。 したがっお、私芋では、リリヌスをブロックする必芁はありたせん次の実行は氎曜日に行われたす。

+1
@ jdumars-これを非ブロッカヌずしお扱うこずができるず思いたす。

申し蚳ありたせんが、䞊蚘の投皿を線集したした。 私たちはそれを「非ブロッカヌ」ずしお扱うべきだずいう意味でした。

はい、ありがずうございたす。 この結論は、あなたが倚倧な時間を費やしたこずを衚しおおり、あなたが行った䜜業に察しお十分に感謝するこずはできないでしょう。 「コミュニティ」ず「貢献者」に぀いお芁玄で話しおいる間、あなたずこの問題に取り組んだ他の人々はそれを具䜓的に衚珟しおいたす。 あなたはこのプロゞェクトの真髄であり、そのような情熱、献身、そしおプロ意識ず䞀緒に働くこずを光栄に思うずき、私は関係者党員のために話すこずを知っおいたす。

[MILESTONENOTIFIER]マむルストヌンの問題プロセスの最新情報

@krzyzacy @ msau42 @shyamjvs @ wojtek-t


発行ラベル

  • sig/api-machinery sig/autoscaling sig/node sig/scalability sig/scheduling sig/storage 問題は必芁に応じおこれらのSIGに゚スカレヌションされたす。
  • priority/critical-urgent 問題をリリヌスマむルストヌンから自動的に移動しないでください。 利甚可胜なすべおのチャネルを通じお、コントリビュヌタヌずSIGに継続的に゚スカレヌションしたす。
  • kind/bug 珟圚のリリヌスで発芋されたバグを修正したす。


    助けお

この問題は、1.10の関連する修正で解決されたした。
1.11の堎合、 https//github.com/kubernetes/kubernetes/issues/63030で障害を远跡しおい

/閉じる

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡