Kubernetes リソースの管理: 留意すべき 5 つのポイント

Kubernetes リソースの管理: 留意すべき 5 つのポイント

[[340175]]

この記事はWeChat公式アカウント「Xintai Cloud Service」から転載され、Huang Haojieが翻訳したものです。この記事を転載する場合は、Xintai Cloud Service公式アカウントまでご連絡ください。

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

<<:  数十億のトラフィックがあるシステムで JVM を使用する方法

>>:  ダーウィンの瞬間における変革 IBMは、企業がオープンで安全なハイブリッドクラウドプラットフォームを構築できるよう支援します

推薦する

Puyuan は、デジタルの未来を勝ち取るためにマイクロサービスと DevOps プラットフォームをアップグレードします

[51CTO.comよりオリジナル記事] 世界経済フォーラムの最新レポートによると、企業のデジタルト...

分散クラウドコンピューティングの利点と革新的な実践

クラウド コンピューティングは、私たちの日常生活に欠かせないものとなった最近の現象であり、この傾向は...

2013 年 6 月の SEO 体験

SEOをやっていたものの、以前の仕事とはどんどん違いが出てきており、小さなサイトしかなく、長い間更新...

LightCloud - 春節期間中は 20% オフ/高防御 CN2\韓国 VPS、香港 Du Fu は 38% オフ

LightCloudの春節プロモーションオファー:[1] 14日から15日まで、すべてのKVM仮想V...

別のクラウドを構築して、ビジョンをつなげましょう。 Kedaがビデオハイブリッドクラウドを正式に開始

9月22日、「新しいクラウド、完全に接続されたビジョンの構築」をテーマにした2017 Keda Vi...

格安旅行でお金を稼ぐ方法: オンライン旅行コミュニティの現状と将来について語る

文/李翔昊予想外のビジネスベンチャー趣味を仕事にし、大きな発展性のある会社を創ることができるのは大き...

クラウドバーストの一般的な課題を克服する

クラウド バーストは一部の人々の期待通りには普及していませんが、多くの企業は依然としてこのハイブリッ...

分散システムのCAP定理とBASE理論

[[386799]]この記事はWeChatの公開アカウント「Coder's Private ...

パブリッククラウドのプライバシーに関して、知っておくべき問題

パブリッククラウドとプライベートクラウドの使用に関する議論が激しくなっています。ほとんどの企業がパブ...

魅力的なクラウドイノベーション16選

従量課金制の価格モデルの背後には、パブリック クラウドが最新かつ最高の開発、DevOps、AI ツー...

なぜWeiboでファンを維持できないのですか? Weiboマーケティングへの影響は?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeibo が大規模なマ...

最近の百度検索における2つの不可解な点を詳しく見る

現在、中国でインターネットをサーフィンする場合、Baidu は基本的に欠かせないものとなっているため...

すっかり人気がなくなったライブストリーミングは2019年に好転するのでしょうか?

DouyinやKuaishouなどの大手プラットフォームが動画コンテンツ業界全体の注目を集めるように...

Dreamhost-VPS シンプルレビュー (旧バージョン VPS)

まず、昨日テスト用に Dreamhost VPS を提供してくれたウェブマスターに感謝したいと思いま...