この記事は、Qiao Ke 氏が執筆した WeChat パブリックアカウント「運用と保守の開発ストーリー」から転載したものです。この記事を転載する場合は、Operation and Maintenance Development Story のパブリック アカウントにお問い合わせください。 Kubernetes の基本コンポーネントは、家の基礎のようなものです。それらの重要性はいくら強調してもし過ぎることはありません。 Kubernetes クラスターのメンテナーとして、コンポーネントの問題に遭遇することがよくあります。通常、どのようにしてそれらを見つけて解決しますか? 以下は、トラブルシューティングのアイデアの簡単な分析です。
範囲を決定するKubernetes は基本コンポーネントが少なく、デプロイが非常に簡単なので、スコープを定義するのも簡単です。たとえば、kubectl get nodes を使用する場合、ノードのステータスが NotReady の場合、2 つの可能性が考えられますか? (1)ノードのkubeletコンポーネントに問題がある (2)ノードのネットワークコンポーネントに問題がある このようにして、大まかな方向が決定され、消去法を使用することができます。 ここではなぜ消去法と呼ばれるのでしょうか?なぜなら、問題を解決する過程では、まず仮説を立て、次に検証するという方法が通常採用されるからです。まず、考えられるすべての要因をリストし、問題が解決するまでそれらを 1 つずつ検証して排除します。 ログを分析するログ分析はトラブルシューティングを行う最も直接的な方法です。ほとんどの問題はログに反映されます。通常、Kubernetes コンポーネント ログを表示するには、次の 2 つの方法があります。
もちろん、多くの場合、問題自体を分析するだけでなく、インフラストラクチャの CPU、メモリ、IO などの周囲の問題にも注意を払い、総合的に考慮して問題を見つけ出します。 パフォーマンス分析なぜパフォーマンス分析を最後にするのでしょうか? ほとんどの人にとって、コンポーネントのパフォーマンスを分析することは得意ではなく、好きでもありません。まず、時間がかかることです。 2 つ目は、さまざまなパフォーマンス指標について一定の理解を持つ必要があるということです。 3つ目は、学習コストが比較的高いことです。 ご存知のとおり、Kubernetes のバージョンイテレーションは比較的速く、基本的に毎年 2 ~ 3 つのバージョンがリリースされます。反復速度が非常に速いため、一部のバージョンにバグやパフォーマンスの問題が含まれる可能性があります。したがって、他に選択肢がない場合は、コンポーネントのパフォーマンスを分析してみることができます。 Kubernetes は Golang を使用して開発されており、Golang の pprof はパフォーマンス分析のための強力なツールです。インタラクティブなインターフェースと UI グラフィックが提供されており、比較的直感的で問題を簡単に特定できます。さらに、go-torch を使用してプロファイル データからフレーム グラフを生成することもできます。これにより、より直感的になります。 すべての Kubernetes コンポーネントは、パフォーマンス分析に pprof を使用できます。インターフェースはhost:port/debug/pprof/です。 pprofの一般的な使用方法対話型コマンドの使用 コールスタック情報を表示する
30秒以内にCPU情報を表示
ゴルーチンのブロックを表示
5秒以内に実行パスを収集
ミューテックスホルダーのスタックトレース
UIインターフェースを通じてUI 分析ツールは、使用するのが比較的面倒です。まずファイルをエクスポートし、次に go ツールを使用して分析用のサービスを開始する必要があります。 たとえば、kube-scheduler のスタック情報をエクスポートします。
次に、go ツールを使用して次のようにサービスを開始します。
すると、ブラウザ上で特定のスタック情報グラフが表示されます。 サーバーに graphviz コンポーネントをインストールする必要があることに注意してください。各種オペレーティングシステムへのインストール方法については[3]を参照してください。 UI インターフェースのメイン メニューとその機能について、以下に簡単に紹介します。
上記では、pprof の基本的な使い方を簡単に紹介しました。以下は、Kubernetes のさまざまなコンポーネントの簡単な分析です。ここでは CPU 情報のみを取得して表示します。 注: バージョン上の理由により、一部のバージョンでは pprof がデフォルトで有効になっていますが、他のバージョンでは有効になっていません。有効になっていない場合は、自分で有効にする必要があります。パラメータは基本的に profiling: true です。具体的な情報については公式ウェブサイト[4]をご覧ください。 kube-apiserver の分析(1) kubectl proxyを使用してプロキシを起動する
(2)別の端末を起動しCPU情報を取得する
(3)goツールを使用してサービスを開始する
(4)ブラウザで見る kube-schedulerの分析(1)CPU情報を取得する
(2)goツールを使用してサービスを開始する
(3)ブラウザで見る kube-controller-manager の分析(1)CPU情報を取得する
(2)goツールを使用してサービスを開始する
(3)ブラウザで見る kubelet の分析(1) kubectl proxyを使用してプロキシを起動する
(2)別の端末を起動しCPU情報を取得する
(3)goツールを使用してサービスを開始する
(4)ブラウザで見る 特定のパフォーマンス データを取得できることが最初のステップであり、その後の特定の分析によって問題を見つけるのに役立ちます。 書類 [1] https://github.com/google/pprof [2] https://github.com/uber-archive/go-torch [3] http://www.graphviz.org/download/#linux [4] https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/ |
<<: ポストパンデミック時代において、財務管理はデジタルイノベーションをどのように活用して全体的な動向を把握できるのでしょうか?
多くの友人が王世凡に、なぜいつも注文が取れないのか、なぜ顧客との関係がいつもうまくいかないのか、なぜ...
6月7日、雲旗会議上海サミットにおいて、中国民生銀行が設立したテクノロジー企業である民生科技有限公司...
デジタル変革の波を受けて、企業や組織のデジタル構築の需要が急速に高まっています。ますます多くの企業や...
SEOを学んでから1年近く実践・運用していますが、やっていることは同じです。クライアントのウェブサイ...
英国の新設VPSブランド「aulerion」は、同じく今年新設された「SquareFlow Comm...
2006年7月2日に設立された私のウェブサイト、西安美食網についてお話ししましょう。レシピから始まり...
昨日、Google は再び HTML5 テクノロジーを使用して検索ホームページのロゴをデザインしまし...
本文に入る前に、質問させてください。企業のウェブサイトのページの内容は誰に向けて書かれたものでしょう...
自己紹介させてください。私の名前はボボです。SEO 業界で働き始めたばかりです。現在は、ウェブサイト...
はじめに: 私は何度も大手プラットフォームでのブログをやめ、さまざまなブログを何度も使いました。何度...
ほとんどの人はクラウド サービスに何らかの形で触れたことがありますが、クラウド内にいる間はクラウドの...
どのような種類のウェブサイトであっても、ウェブサイトとしての基本的な目的は、ユーザーや類似ユーザーが...
SEO に情熱を傾ける初心者の方は、この記事を必ずお読みください。この記事は、SEO Qibing ...
最近、ガートナーは 2020 年の「ハイパーコンバージド インフラストラクチャ ソフトウェアのマジッ...
「この山だけは雲が深くてどこにあるか分からない」これはよく知られた古代の詩です。クラウド コンピュー...