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の真の可能性を引き出す鍵

推薦する

Aoyou Hosting: ドイツ CN2 シリーズ VPS、Windows 付き、25% オフ プロモーション、ドイツ CN2 評価データ付き

Aoyou ホストに新しい製品があります: ドイツ CN2、ヨーロッパ電気通信センター、ドイツ フラ...

データを管理するために Docker を使用しない場合、1985 年から旅行したことになりますか?

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

Apple App Store では悪意のあるレビューの投稿が広まり、大手メーカーのゲームが多数攻撃されています。

ひどい扱いを受けている? App Storeで悪質なレビュー操作が蔓延Game Gyroは、Appl...

クラウド コンピューティングのパフォーマンスを向上させる 6 つのテクノロジー

適切なサービスと設計により、エンタープライズ クラウド アプリケーションのパフォーマンスを向上させる...

クラウドコンピューティングの統合は必須

過去 10 年間、クラウド コンピューティングの導入サイクルが見られ、多くの組織が契約とサービス ポ...

Googleの新機能の解釈

Googleは、ユーザーが検索結果をピン留めまたは削除し、「あなたはこの結果を最初に選択した人です」...

Java仮想マシンオブジェクトの生存判定とガベージコレクションアルゴリズム

[[323332]]この記事では主に、オブジェクトが生きているかどうかを判断する方法を説明し、Jav...

IBMとPitney Bowesがハイブリッドクラウド位置情報サービスで提携

IBM (NYSE: IBM) と Pitney Bowes (NYSE: PBI) は本日、コード...

uk2 - com/net ドメインを £3.49 で登録

uk2 グループの同名ウェブサイト uk2.net では、主に com/net/ および co.uk...

深圳でのジャック・マー氏のスピーチの簡単な分析:無料サービスを提供し続けるなら、私たちはあなたを殺す

2013年3月31日。インターネット界の巨人、ジャック・マー氏、ポニー・マー氏、ロビン・リー氏が深セ...

効率的なウェブサイトランキングを作成するための5つの重要なポイントについて簡単に説明します。

ウェブサイトの最適化の過程では、同じ種類のウェブサイトでもランキングは必ず異なり、同じ最適化方法を使...

タイトル最適化で無視できないキーワード設定の詳細

ウェブサイトのタイトルキーワードは、HTML ファイルに記述される重要な情報です。ヘッダー情報は訪問...

xenspec: 月額 2 ドル、1Gbps の帯域幅、無制限のトラフィック、40G の防御、ロサンゼルス/シカゴ、kvm/1g のメモリ/1 コア/10g の SSD

Xenspec では、次の特典を提供しています: (1) シカゴとロサンゼルスでの VPS プロモー...

電子商取引コンテンツマーケティングが新たなトレンドに

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス設立からわずか3年という...