序文上記に引き続き、 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 アプリケーション アクセス管理の理解
Ivanti Unified Endpoint Managerは、ユーザー中心のポリシー制御を実施し...
少し前に、顧客向けの XC ソリューションの準備に参加しました。リーダーは、XC 作業をクラウド移行...
ほとんどの医療監督者は、プロジェクトの運営中にウェブサイトが頻繁に修正されることを知っています。ポリ...
NetApp は本日、新しい NetApp ONTAP ソフトウェア、フラッシュ システム、および拡...
ロングテール キーワードは、現在の SEO 分野で広く使用されています。現在の SEO 実践者も、ウ...
コンプライアンス要件を満たさない場合、業界団体からの除名、多額の罰金、最悪の場合には訴追される可能性...
App Store 最適化 (略して ASO) は、開発者のアプリが App Store でユーザー...
実際、Baidu 検索キーワード クエリ ツールのベータ版がオンラインになっています。表示量とクリッ...
百度は28日、「検索エンジンインデックスシステムの概要」を正式に発表し、検索エンジンがどのようにペー...
ウェブサイトを構築するウェブマスターは皆、フレンドリーリンクがウェブサイトの重みを高めることができる...
ドメイン名ニュース: 一部のネットユーザーは、Qihoo 360 が独自のオープン ゲーム プラット...
概念を理解することはどれほど重要ですか?羅振宇はかつてこう言いました。「概念を理解することが基本的な...
2 人の業界専門家が、スターバックスのモバイル アプリをサポートするために必要なチームとプロセスを構...
インターネットの急速な発展に伴い、中小企業もインターネットの仲間入りを始めました。数年の発展を経て、...
ブルガリアのソフィアにある専用サーバープロバイダー、host.ag(BelCloud Hosting...