web-dev-qa-db-ja.com

Kubernetes Old Resourceバージョン

私は異なるK8Sリソースのための時計を作成するオペレーターに取り組んでいます。それでは、ログとアプリケーションでは以下の例外が表示されます。この問題を引き起こしているのは、これを修正できますか?

io.fabric8.kubernetes.client.KubernetesClientException: too old resource version: 29309228 (33284573)
    at [email protected]/io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$1.onMessage(WatchConnectionManager.Java:263)
    at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.Java:323)
    at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.Java:219)
    at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.Java:105)
    at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.Java:274)
    at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.Java:214)
    at okhttp3.RealCall$AsyncCall.execute(RealCall.Java:203)
    at okhttp3.internal.NamedRunnable.run(NamedRunnable.Java:32)
    at Java.base/Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at Java.base/Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at Java.base/Java.lang.Thread.run(Unknown Source)
 _
3
BobCoder

この回避策は私のために働きました、私はそれが毎回他人を助けることを願っています、私のポッドはこの「古すぎるリソース」エラーがそれが停止しそして再開されたエラーを得た。私が手動でリソースを作成している場合(CRDであった場合には)リソースを作成している場合、オペレーターが起動して実行しているのはほとんど "古すぎるリソース"の例外がありません。だから、私がしたこと

  1. 現時点では、この特定のエラーが発生しています:システムエラー(PODを再起動する)b。テキスト「古すぎるリソースバージョン」という例外
  2. プラットフォームで新しいダミーCRDオブジェクトを作成しました(ポッドの再起動前)。プログラム的に(Fabric8)、ダミーCRDが存在するかどうかを確認してください。もしそうなら、それを削除してください。 NS。プログラム的に(Fabric8)、もう一度ダミーCRDを作成します。
  3. その後、ポッドは自分自身を再起動しました(コード変更も私のコードのせいではありません)
  4. ポッドが起動すると、ダミーCRDから秘密が区別されます。

その時点から、再起動はほとんどありませんでした、そして、オペレーターは上陸して走って聞いていました。それらのリソースを作成および削除するには、オペレータのサービスアカウントに権限を与えることを忘れないでください。

0
Chen Gantz