Kubernetes リソースを管理する際に注意すべき 5 つのポイント!

Kubernetes リソースを管理する際に注意すべき 5 つのポイント!

Kubernetes は、大規模なコンテナ管理のタスクの多くを自動化します。ただし、コンテナ化されたアプリケーションはプールされたリソースを共有することが多いので、それらを適切に割り当てて管理する必要があります。

コンテナ オーケストレーションは、IT チームにとって大きな可能性を秘めています。コンテナの管理に必要な作業の多くを自動的に処理できるからです。

プロジェクトの公式 Web サイトで説明されているように、Kubernetes (K8s) のパワーを考えてみましょう。「Kubernetes (K8s) は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するオープンソース システムです。」

これは非常に重要です。特に、コンテナ化されたアプリケーションを多数実行しているチームの場合に重要です。 Kubernetes のようなオーケストレーターの形での自動化は、コンテナを本番環境で実行するために必要であると広く考えられていますが、だからといって IT プロフェッショナルが安心できるわけではありません。

クラスター上で実行されるアプリケーションのリソース管理の設定と最適化など、まだやるべき作業はたくさんあります。

Kubernetes リソースを管理する必要があるのはなぜですか?

「Kubernetes は、Kubernetes 上で実行される予定のポッドのコンピューティング、メモリ、ストレージなどのすべての重要なリソースを管理するためのオプションを提供します」と、Altran のテクノロジー、研究、イノベーション担当ディレクターの Raghu Kishore Vempati 氏は述べています。クラスターには無制限のリソースはなく、非常に特殊でそのように実行する必要がある場合を除き、各アプリケーション/ソリューションが独自の Kubernetes クラスターを持つことは一般的ではありません。

つまり、アプリケーションはコレクションのリソースを共有することが多いのです。これらのリソースを割り当てる「正しい」方法は組織やアプリケーションによって異なりますが、幸いなことに、Kubernetes にはリソース管理のための機能が多数含まれています。

「Kubernetes はどこにでも導入できますが、それは必要なインフラストラクチャが環境に固有のものになることを意味します」と Kasten のエンジニアリング ディレクター、Tom Manville 氏は述べています。 「自分の環境で必要なリソースを理解し、それを適切に割り当てることが重要です。クラスターが拡張されると、インフラストラクチャも拡張する必要があります。幸いなことに、クラスターの拡張は簡単で、多くの場合、自動的に行われます。」

Kubernetes リソースの管理: 知っておくべき 5 つの重要なポイント

Vempati 氏は、Kubernetes 環境におけるコンピューティングやストレージなどのリソースの管理は、Kubernetes がシステム レベルで提供するものと、アプリケーションおよびアーキテクチャ レベルで計画する必要があるものの 2 つのカテゴリに大まかに分類できると指摘しました。この投稿では、主に前者のカテゴリの機能に焦点を当てます。

5つの重要な点について詳しく見ていきましょう。

1. 名前空間とリソースクォータを使用する

Vempati 氏は、チームが同じクラスター上で複数のアプリケーションを実行することが多いと指摘しました。このような使用法の場合、Vempati や他の専門家は一般に、分離やその他の目的のためのベスト プラクティスとして、マルチテナント環境で名前空間を使用することを推奨しています。同様に、複数のチームまたは複数のユーザーが同じクラスターにアクセスする場合 (複数のアプリケーションが同時に実行される場合もあります) には、名前空間が推奨されます。名前空間も Kubernetes セキュリティの一部です。

これらのマルチアプリケーション、マルチユーザー環境で名前空間を使用する場合、Vempati では、Kubernetes のネイティブ リソース クォータ機能を使用して、それらの名前空間に割り当てられたアプリケーションとチーム全体に正しく割り当てられるようにすることも推奨しています。

「リソースクォータにより、クラスター管理者は各名前空間の全体的なリソース消費を制御できます」と Vempati 氏は述べています。これには、コンピューティング、メモリ、ストレージなど、名前空間ごとに作成できるオブジェクトの合計数が含まれます。たとえば、非ターミナル状態のすべてのポッドに対して、特定の値を超えない CPU 制限またはメモリ制限を設定できます。 ”

Kasten の Manville 氏は、CPU とメモリは一般的に管理者がリソース クォータを使用して制限する最も一般的なリソースであるが、名前空間内のポッドの数を制限することもできると指摘しました。リソース割り当ては重要な管理ツールであると言えます。

「クォータベースの管理により、クラスタ管理者はリソース全体を効果的に管理し、すべてのアプリケーションに最も適切な方法でリソースを割り当てることができる」とベンパティ氏は述べた。

2. 利用範囲の制限

リソース クォータは、名前空間レベルでリソース消費を管理するために使用されます。つまり、一度設定すると、名前空間全体に適用されます。制限スコープは同様の目的を持ちますが、単一のコンテナーまたはコンテナー レベルでリソースの消費を制限します。

「Kubernetes は、アプリケーションが消費するリソースを制御するための強力なプリミティブを管理者に提供します」とマンビル氏は述べています。 「管理者は、開発者のリソース要求を制限するために制限範囲を構成し、名前空間で消費されるリソースの合計量を制限するためにリソースクォータを作成できます。」

これらの関連機能の違いについて考える別の方法は、名前空間とリソース クォータを使用して、アプリケーションまたはチームがクラスターの全体的なプール リソースの必要な割合を占有しないようにできることです。スコープを制限すると、単一のポッドまたはコンテナが特定の名前空間に割り当てられたリソースの大部分を消費する状況を防ぐことができます。

3. ネットワークポリシーを設定する

Kubernetes には、ポッドが相互に通信する方法 (または通信を禁止する方法) など、ネットワークに関する固有の特殊性もあります。 Vempati では、ネットワーク ポリシーの使用を推奨しています。

「ネットワークに関しては、Kubernetes ではネットワーク ポリシーを設定するオプションが用意されており、クラスター上でスケジュールされた個々のポッドが同じクラスター上の他のノードや他のエンドポイントとどのように通信するかを指定するのに役立ちます」と Vempati 氏は述べています。 「たとえば、ポッドの受信トラフィック ルールと送信トラフィック ルールを設定できます。」これは、コンテナ セキュリティに対する総合的かつ階層化されたアプローチの一部でもあります。

4. 該当する場合は忘れずに保管してください

ストレージは、独自の詳細な調査に値します。管理者が CPU とメモリを非常に具体的に制御できるのと同様に、同じ原則がストレージにも適用されます。

「Kubernetes は非常にきめ細かい制限を設定するのに役立ちます」と Vempati 氏は言います。したがって、特定の名前空間内で、その名前空間に存在できる PersistentVolumeClaim の数に制限を設定できます。

Red Hat のテクニカル フェローである Gordon Haff 氏は、永続ボリューム (PV) を、効果的に管理する最も重要な Kubernetes リソースの 1 つとして説明しています。

「一時的なコンテナ イメージに縛られないストレージを構成する機能は、Kubernetes を以前のコンテナ ベースのプラットフォーム アズ ア サービス (PaaS) 製品と差別化する Kubernetes の重要なイノベーションの 1 つです」と Haff 氏は述べています。 「永続的なストレージがなければ、アプリケーション アーキテクチャは特定のスタイルに制限されます。

Haff 氏は、Kubernetes の PV はプラグインとして実装されており、そのライフサイクルは PV を使用する個々の Pod から独立していると指摘しました。 PersistentVolumeClaim は本質的にはユーザーからのストレージ要求であり、PV の詳細をさらに抽象化するものであると Haff 氏は付け加えた。

「Kubernetes がこのように設計されているのは、ユーザーがさまざまな問題やワークロードを解決するために、異なる特性 (パフォーマンスなど) を持つ PV を必要とすることが多いためです」と Haff 氏は説明します。 「PV の種類によって、アクセス パターンも異なります。」

したがって、これは、Vempati が上で説明したリソース管理の 2 番目のカテゴリ、つまりアプリケーションおよびアーキテクチャ レベルでのリソース計画に関係します。ストレージは最初に評価する必要があるものだとハフ氏は指摘した。

「Kubernetes リソースを管理する上で重要なのは、まず永続ストレージ (データベースなど) が必要かどうか、また必要であればどのボリューム プラグインがワークロードとコンピューティング環境に最適かを事前に計画することです」と Haff 氏は述べています。

データベースについて言えば、Crunchy Data のプラットフォーム エンジニアリング担当副社長 Jonathan Katz 氏は、ステートフル アプリケーションはリソース管理にいくつかの追加のニュアンスを導入すると述べています。 「たとえば、メモリはPostgreSQLの重要な調整可能なリソースです」とKatz氏は語った。 Kubernetes オペレーターの PostreqSQL の背後には複雑なデータが隠されています。

「低い要求と高い制限を設定するのではなく、長期的に使用したい実際のメモリ値にメモリ要求を設定することが重要です」と Katz 氏は説明します。 「これにより、より多くのデータがメモリにキャッシュされるため、PostgreSQL インスタンスが十分なリソースを持つノードにスケジュールされ、エビクションや OOM キラーによるアクセスなどのイベントのリスクが制限されます。」

5. 整理整頓: API オブジェクトと監視

「アプリケーションのいずれかが Kubernetes API を直接使用している場合は、API オブジェクトを自動的にクリーンアップするようにしてください」と Manville 氏は述べています。未使用の API オブジェクトが多数あると、クラスターのパフォーマンスが低下する可能性があります。さらに悪いことに、これらのオブジェクトはアイドル状態のインフラストラクチャにマップされることがあり、不必要なコストが追加される可能性があります。 ”

多くの場合、効果的なリソース管理には、チームと管理者が状況を把握できることが必要です。したがって、クラスター全体のリソース使用状況を監視し、注意深く監視することを忘れないでください。

「これにより、クラスターが使用しているリソースをよりよく理解し、クラスターが容量に近づいたときに警告を発し、場合によっては Kubernetes を自動的にスケーリングできるようになります」と Manville 氏は述べています。

*元のリンク: https://enterprisersproject.com/article/2020/8/managing-kubernetes-resources-5-things-remember​

<<:  Dapr 入門チュートリアル: キーストレージ

>>:  Google Cloud が IoT に最適なクラウドである 5 つの理由

推薦する

SEO担当者の不必要な心配

SEO 担当者は、現在のパフォーマンスを維持するために毎日多くの指標を考慮しますが、あまり心配する必...

「江南スタイル」の人気でマーケティングスタイルが広がる

「江南スタイル」を知らない人は時代遅れとしか言えません。最近世界中で人気を集めている「江南スタイル」...

IBM のハイブリッド クラウド プラットフォーム: 企業にとっての価値が 2.5 倍に跳ね上がるのはなぜでしょうか?

[[354831]] 「IBM中国開発センターでは、同僚たちと私はIBMハイブリッドクラウドプラット...

百度に略奪されたウェブサイトを8日間で復元

最近、Baiduのアルゴリズムが頻繁に変更され、著者のウェブサイトを含む多くのウェブマスターが深刻な...

vpsdime - 年間 30 ドル / メモリ 1g / ハード ドライブ 40g / トラフィック 1T / G ポート / データ センター 3 つ

vpsdimeからOVZを購入した人は多いですよね?それでもまだ良いです。Windows VPS 用...

記事を更新せずにウェブサイトのSEOを行う方法

コンテンツを更新せずにウェブサイトを最適化するにはどうすればよいでしょうか。会社のウェブサイトを引き...

ランキング間の密接な関係を合理的に見る方法

多くのウェブマスターは、この質問について考えています。インクルージョンとランキングには関係があります...

ホワイトハット最適化手法が再び主流に

最適化の方法としては、ホワイトハットとブラックハットに分けられます。 2 つの最適化方法の性質は逆で...

SharkTech: OpenStack 専用クラウド、月額 43 ドルから、16G メモリ/8 コア/500g SSD/5T トラフィック、60G の高防御

SharkTech は、簡単に言えば、プリペイドのベアメタル サーバー (リソースを独占的に使用する...

デュレックスブランドのマーケティング創造性の目録!

最近の天気はとても寒く、いいねやリポストをまったく受け取っていない公開アカウント編集者の心と同じくら...

racknerd: 米国のハイエンド ビデオ スライシング サーバー、月額 199 ドル、24 コア (48 スレッド)/128G メモリ/2*1.92T SSD

米国西海岸ユタ州(ソルトレイクシティ)にある Racknerd のデータセンターでは、24 コア/4...

ブランドに合ったロゴをデザインするにはどうすればいいでしょうか? LOGO Design Networkはブランドロゴを簡単にデザインします

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

分散システムの知識共有: CAP定理の正しい理解

序文私は CAP に関する同僚の本やブログをたくさん読んできました。基本的に、人によって理解は異なり...