序文上記に引き続き、 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 アプリケーション アクセス管理の理解
9月17日、「すべてをクラウド化できる」をテーマにしたInspurクラウドイノベーションサミットが盛...
[51CTO.comよりオリジナル記事] 顧客関係管理の概念と提案以来、多くの業界で広く利用されてき...
Chicagogovps から、スマート サーバーを宣伝するメールが届きました。現在、スマート サー...
多くのウェブマスターはこのタイトルを見て、私が異常なブラックハット手法について話していると思ったでし...
[51CTO.com クイック翻訳] 一言で言えば、Multipass は私がこれまで使用した中で最...
Bandwagonhost vps: ビジネスで極めて高速なネットワークが必要な場合、最速の海外 v...
Pinterestのような画像ソーシャルネットワーキングサイトの台頭は、ソーシャルネットワークの視覚...
アプリケーションを構築する場合、システムの動作を理解することは、アプリケーションを操作する上で重要な...
基本的に、SEO 業界の誰もが、Baidu が SEO に無関心であることを知っています。Baidu...
数日前、あるネットユーザーが私にメールを送ってきて、次のような質問をしました。 引用内容は以下のとお...
私は SEO に携わってまだ 3 か月も経っていない初心者です。この業界について理解を深めていくうち...
マルチテナント クラウド プラットフォームとシングルテナント クラウド プラットフォームに関する議論...
一般的に、ホームページはウェブサイトの権威ページであり、ページランキングやトラフィック獲得の点ではウ...
Hostus Cat は、hostus KVM VPS を購入した友人の役に立つことを期待して、ho...
速報: linode - 月額 10 ドル / メモリ 1g / SSD 24g / トラフィック ...