Kubernetes トラブルシューティングの実践記録

Kubernetes トラブルシューティングの実践記録

[[434523]]

背景

テスト環境でクラスターアラームを受信したら、Kubernetes クラスターにログインしてトラブルシューティングを行います。

障害箇所

ポッドを表示

kube-system node2 上の calico ポッドに異常がないか確認します。

詳細情報を確認すると、node2 にストレージ スペースがなく、cgroup がリークされていることがわかります。

ストレージを表示

サーバーのストレージ情報を表示するには、node2 にログインします。現在はまだ十分なスペースがあります。

クラスターが使用する分散ストレージは Ceph なので、Ceph クラスターのステータスを確認します。

操作する

Ceph の修正

現在、Ceph クラスターに異常があり、ノード 2 の cgroup リークが発生している可能性があります。Ceph クラスターを手動で修復します。

データの不整合とは、オブジェクトのサイズが正しくないか、回復後にレプリカでオブジェクトが失われることを意味します。データの不整合によりスクラブ エラーが発生する可能性があります。

Ceph の保存プロセス中に、特別な理由により、オブジェクト情報のサイズが物理ディスク上の実際のサイズデータと一致しない場合があり、クリーンアップが失敗する可能性もあります。

データの不整合とは、オブジェクトのサイズが正しくないか、回復後にレプリカでオブジェクトが失われることを意味します。データの不整合によりスクラブ エラーが発生する可能性があります。

Ceph の保存プロセス中に、特別な理由により、オブジェクト情報のサイズが物理ディスク上の実際のサイズデータと一致しない場合があり、クリーンアップが失敗する可能性もあります。

図からわかるように、ページ番号 1.7c に問題があり、修復する必要があります。

ページの修正:

  1. ceph pg 修復 1.7c

修復後、しばらく待ってから再度確認し、Ceph クラスターが修復されたことを確認します。

ポッドの修復の実行

異常なポッドを削除します。コントローラーが存在するため、最新の Pod が再度プルアップされます。

ポッドを確認すると、以前と同じです。分析の結果、ノード 2 の cgroup が Ceph の異常によりリークされている可能性があることがわかりました。オンラインで検索して再コンパイルします。

Google で検索してみたところ、問題は基本的に https://github.com/rootsongjc/kubernetes-handbook/issues/313 にある問題と同じであることがわかりました。可能性のある存在は次のとおりです。

  • Kubelet ホストの Linux カーネルが低すぎます - Linux バージョン 3.10.0-862.el7.x86_64
  • これはkmemを無効にすることで解決できます

システムカーネルを確認すると、バージョンが低いことがわかります。

断層の再配置

最後に、runc ロジックはコンテナの起動時にコンテナの kmem アカウンティングをデフォルトでオンにするため、3.10 カーネルでリークが発生する可能性があります。

ここで問題を解決するには、スペースが残っていない状態でサーバーを再起動する必要があります。この問題は、一定期間内に大量の Pod を削除すると発生する可能性があります。

最初のアイデアは、将来のクラスター管理の概要では、ノードを削除してノードを再起動することでサーバーを修復できるというものです。

ノード2のメンテナンス

ノード2をスケジュール不可としてマークする

  1. kubectl コルドン node02

ノード2のポッドを削除する

  1. kubectl ドレイン node02 --delete-local-data --ignore-daemonsets --force  
  • --delete-local-data ローカルデータを削除します。emptyDir も削除されます。
  • --ignore-daemonsets DeamonSet を無視します。そうでない場合、DeamonSet は削除後に自動的に再構築されます。
  • --force force パラメータがない場合、ノード上の ReplicationController、ReplicaSet、DaemonSet、StatefulSet、または Job のみが削除されます。 force パラメータを使用すると、すべての Pod が削除されます。

現在、基本ノード2のすべてのPodは削除されています。

デフォルトの移行と異なるのは、Pod が終了する前に再構築されることです。このときのサービス中断時間 = 再構築時間 + サービス起動時間 + 準備プローブ検出正常時間。 1/1 にサービスが正常に実行されるまでお待ちください。そのため、単一のコピーで移行する場合、サービスの終了は避けられません。

ノード02を再起動

再起動後、node02は修復されました。

node02を復元します。

node02 を復元し、通常どおりスケジュールします。

  1. kubectl の uncordon node02

反射

デプロイされた Kubernetes クラスターのカーネルは後でアップグレードできます。

クラスター内の Pod 例外は、基盤となるストレージまたはその他の理由によって発生する可能性があります。問題を特定し、的を絞って修正する必要があります。

オリジナルリンク: https://juejin.cn/post/6969571897659015205

<<:  今後 10 年間のクラウド コンピューティングの発展には何が期待できるでしょうか?

>>:  エッジコンピューティングは5Gの真の可能性を引き出す鍵

推薦する

サイト上の高品質のオリジナル記事はウェブサイトの最適化に役立ちます

ご存知のとおり、ウェブサイトの SEO 最適化のプロセスでは、コンテンツと外部リンクは常に議論の絶え...

モバイル 3G マーケティングでは量が重要ですか?多様性、包摂性、アウトプットが鍵

企業にとって、インターネット マーケティングは馴染みのないものではありません。今日のインターネットの...

ライブストリーミングによる618の混乱の背後

今年の618は、DouyinとKuaishouの電子商取引にとって特別な意味を持つかもしれない。特に...

HardCloud - 1g メモリ KVM/30g ハードディスク/2T トラフィック/Win 互換/月額 4.95 ドル

Hardcloud は、KVM ベースの VPS を提供する非常に新しい VPS プロバイダーです。...

weloveservers-各種低価格アーティファクト/VPS 4月プロモーション第一弾

weloveserversは4月にプロモーションVPSをリリースしました。openvzベースで、25...

WeChat公開会議で明らかにされた殺意、最も価値のある情報はここにある

Titanium Media Note: 昨日のWeChatパブリックコミュニケーションカンファレン...

JD.com の一般的なセカンダリ カテゴリ ページの SEO に関する簡単な分析 (パート 2)

昨日、「JD.com の一般的なセカンダリ カテゴリ ページの SEO の簡単な分析」でスライドにつ...

フレンドリーリンクの品質を把握するために6つの要素に注目してください

友情リンクは、ウェブサイト全体のかなりの割合を占めています。今日、Bo Baiyou は主に、他の人...

微博マーケティングはインターネットの新時代を成功裏に導いた

Weibo の台頭により、人々は Weibo を使って自社製品を宣伝し、このチャネルを通じて広め、皆...

90年代の男の負け犬がタオバオを使って1日10万元を稼ぐ方法をご覧ください

親愛なる友人たち、あなたは正しく読んでいます。それは年間10万元ではなく、月10万元でもなく、もちろ...

ハイブリッドクラウドを迅速かつ効果的に管理するための5つのステップ

クラウドコンピューティングという用語が登場して以来、それは科学技術分野で常にホットな話題となってきま...

ウェブサイトのスムーズな立ち上げを確実にするために、繰り返しはしないでください

ウェブサイトのコンテンツがインターネット上のコンテンツとあまりにも類似しています。ウェブサイトのコン...

virtnetwork-$8.5/4G メモリ/400G ハードディスク/5T トラフィック/4IP/ニューヨーク

Virtnetwork、まだ覚えていますか?以前ブログで紹介したKVM仮想VPSが格安で販売されてい...

1年間の経験に基づいて、タオバオSEOをマスターするためのいくつかの重要な要素を共有します

タオバオに参入したばかりの多くの小規模な販売業者にとって、直通列車に費やすお金があったり、大量の商品...

ビッグネットワークデータはどうでしょうか? 2Gbpsの帯域幅を持つクラウドサーバーをテストしてみましょう

ビッグデータのクラウドサーバーと独立サーバーは、同じ価格であれば他のサーバーよりも高い構成を持ち、同...