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

推薦する

クラウド ストレージのパフォーマンス: 可用性と耐久性の違い

車のエンジンをかけたり、電化製品を壁のコンセントに差し込んだり、ハードドライブ上のファイルをダブルク...

垂直型電子商取引:土地の奪い合いか、それとも集約的な耕作か?

新婚生活がこんなに短いとは思いませんでした。メディアの報道によると、両者が協力を開始してから1年も経...

ステーションBにはバックハンドがない

ビリビリは予定通り「2024年損益分岐点」の目標を達成できるのか?ビリビリの2022年第2四半期財務...

天津のどのウェブサイト構築会社がベストですか?ウェブサイト構築会社を選ぶときは、いろいろ調べる必要があります

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています今日のイン...

クラウドバックアップ戦略を検討すべき理由

企業としては、積極的に目標を設定し、それを SaaS ベンダーのサービス レベル契約 (SLA) と...

Baidu のシェアボタンがなぜ人気があるのでしょうか?

少し前に、多くのウェブマスターの友人が、Baidu の共有ボタンを磨く方法をインターネットで共有して...

大量データ処理のために誕生した Alibaba Cloud が SQL Server AlwaysOn Cluster Edition をリリース

2018 年の広東雲奇カンファレンスで、Alibaba Cloud は読み取り専用インスタンスをサポ...

キーワードの運命: SEO最適化は悲惨な人生を歩むキーワード

ウェブサイト最適化の本質は、ウェブサイトのキーワードを検索エンジンのホームページに最適化することです...

Baidu 6.28とブラックフライデー後に発見されたいくつかの問題

Baidu が 6 月 28 日に発表して以来、Xianyun は自身の小さなサイトを使用して Ba...

外部リンクリソースの急増は、ウェブサイトの重みと信頼性に影響を与えます。

SEO は外部リンクのサポートなしには成り立ちません。外部リンクはウェブサイトの重み付けの改善速度を...

「ウォーターフォールフロー」は万能薬ではなく、ウェブサイトのデザインの焦点を無視することはできない

「迅速なフォロー」が開発目的となっているこの時代、Pinterest が「ウォーターフォール フロー...

westhost-仮想ホストを 2 つ購入すると 1 つ無料

Westhost は、仮想ホストの中でも最もリッチで魅力的なホストとされています。MediaTemp...

クラウドネイティブテクノロジーを使用して最新のアプリケーションを構築する方法

今日、クラウドとクラウド コンピューティング テクノロジーは企業に広く受け入れられています。クラウド...

dedipathはどうですか?ロサンゼルスデータセンターの独立サーバーの簡易評価と実際のテストデータの共有

dedipath は近年誰もが知っているアメリカのサーバー業者のはずです。ホリデーシーズンには VP...

ネットワーク スライシングとサービス品質 (QoS) の違いは何ですか?

ネットワーク スライシングは、5G が登場するほぼすべての箇所で言及されていますが、その定義は通常曖...