序文上記に引き続き、 Ubuntu 2204をベースにkubeadmを使用してk8sクラスターをデプロイし、 helmをベースにmetrics-serverをデプロイしました。 次に、 kubectl topコマンドを使用して、CPU やメモリなどのノードとポッドのリソース使用状況をリアルタイムで表示できます。 この記事では、そのデータリンクと実装原理を紹介し、k8s における監視システムについても説明します。 kubectlトップkubectl top はよく使用する基本コマンドですが、監視値を取得するにはmetrics-serverコンポーネントをデプロイする必要があります。
使用しているバージョンは最新バージョン 1.24.3 なので、必ずmetrics-server をデプロイしてください。 ノードのリソース使用状況を確認します。 $ kubectl トップノード ポッドのリソース使用量を確認します。 --containers はポッド内のすべてのコンテナを表示できます。 $ kubectl top ポッド- n メトリック- サーバー 指標の具体的な意味:
kubectl top ポッドのメモリ計算ポッドが起動されるたびに、一時停止コンテナが作成されます。コンテナなので、リソース(通常 2 ~ 3 MB のメモリ)を消費する必要があります。 cgroup ファイルでは、ビジネス コンテナーと一時停止コンテナーは同じ pod フォルダー内にあります。 ただし、cadvisor がポッドのメモリ使用量を照会する場合、まずポッドの下のコンテナ リストを取得し、次に各コンテナのメモリ使用量を 1 つずつ取得します。ただし、ここでのコンテナ リストには一時停止が含まれていないため、最終的なトップ ポッドの結果には一時停止コンテナは含まれません。 ポッドメモリ使用量の計算kubectl top pod によって取得されるメモリ使用量は、cadvisor のcontainer_memory_usage_bytesではなく、次のように計算されるcontainer_memory_working_set_bytesです。
container_memory_working_set_bytes は、コンテナによって使用される実際のメモリ量であり、制限が設定されている場合に OOM を決定する基準にもなります。 kubectl top コマンドと top の違いは上記と同じであり、直接比較することはできません。同時に、ポッドに制限を設定した場合でも、ポッド内の top に表示されるメモリと CPU の合計量は、ポッドの割り当て可能な量ではなく、マシンの合計量のままです。
実施原則データリンクk8s ダッシュボード、kubectl top などはすべて、apiserver を通じて監視データを取得します。データリンクは次のとおりです。
監視システムメトリック API の概念が提案されたとき、公式ページでは新しい監視システムが提案され、監視リソースは次の 2 つのタイプに分けられました。
クベレット廃止された heapster と metric-server はどちらも単なるデータ転送と集約です。どちらも kubelet API インターフェースを呼び出してデータを取得します。インジケーターを収集するための cAdvisor モジュールは実際には kubelet コードに統合されており、監視データは kubelet によって公開されるポート 10250 を通じて取得できます。
kubelet はメトリック インターフェースを提供しますが、実際の監視ロジックは組み込みの cAdvisor モジュールによって処理されます。 cアドバイザーcAdvisor は Google によってオープンソース化されており、Go 言語で開発されています。プロジェクトアドレス: https://github.com/google/cadvisor。 cadvisor は、CPU 使用率、メモリ使用率、ネットワーク スループット、ファイル システム使用率など、マシン上で実行されているすべてのコンテナーに関する情報を収集できるだけでなく、他のコンポーネントによるデータ キャプチャを容易にするための基本的なクエリ インターフェイスと HTTP インターフェイスも提供します。 K8S では、デフォルトの起動項目として Kubelet に統合されており、k8s の公式標準となっています。 cadvisor がインジケーターを取得すると、実際には runc/libcontainer ライブラリが呼び出されます。libcontainer は cgroup ファイルのカプセル化です。つまり、cadvsior は単なるフォワーダーであり、そのデータは cgroup ファイルから取得されます。 cグループcgroup ファイル内の値は、次のような監視データの最終的なソースです。
通常、cgroup フォルダーの内容には、CPU、メモリ、ディスク、ネットワークなどの情報が含まれます。 デバイス: デバイス制御権限 メモリ内でよく使用されるいくつかのインジケーターの意味: memory.usage_in_bytes : 使用されているメモリの量(キャッシュとバッファを含む)(バイト単位)。Linux の userd_mem に相当します。 |
<<: Kubernetes1.24.3はHelm経由でMetrics-Serverをインストールします
>>: Kubernetes アプリケーション アクセス管理の理解
ufovps は毎年恒例の年中特別プロモーションを実施し、すべての VPS サービスが 20% オフ...
[51CTO.com クイック翻訳] エッジ テクノロジーの分野では、製造、自動化、航空、物流、小売...
SEO の専門家はよくこう言います。「一方通行のインバウンド リンクが最良で、外部リンクが多すぎると...
アリババの変化の道は紆余曲折に満ち、大きな動きが頻繁にあったと言える。電子商取引業界には、ジュメイや...
今日では、多くの人が、オンライン体験を共有するためであれ、ライフスタイルとしてであれ、毎日ブログを使...
トルコのイスタンブールデータセンターにあるHostiggerのVPSは特別プロモーション中です。51...
11月25日、中国コンピューター学会(CCF)は2022年度のCCFフェローのリストを正式に発表した...
ウェブデザイナーになることは夢ではありません。子供の頃、私たちの多くはエンジニアや教師になることを夢...
どの業界であっても、多くの競合相手に遭遇します。競合相手のウェブサイトが強力であればあるほど、自社の...
2011 年に設立された vps.us は、実際には米国の VPS のみを販売しているわけではありま...
インターネットイベントマーケティングは、eコマース分野からビデオ分野へと移行しています。 9月14日...
ウェブサイトの重量を迅速に改善するにはどうすればよいでしょうか。タイトルを見ただけで、多くの人がタイ...
地元のインターネット企業の業務範囲は主にウェブサイト構築と百度の最適化であり、そのサービスは中小企業...
新年を迎えた今、マシンを購入する際に、トラフィック制限のある大きな帯域幅を選択するか、トラフィック制...
2012 年の初め、私は同社の「Deep Match」製品の包括的なユーザー エクスペリエンス プラ...