5章リソースの管理
足るを知らない者は何事にも満足できない。
――Epicurus(古代ギリシアの哲学者、BC341~BC270)
この章では、クラスタを最大限に活用する方法について検討します。具体的には、リソースの使用状況を管理および最適化する方法、コンテナのライフサイクルを管理する方法、Namespaceを用いてクラスタをパーティション化する方法などです。また、クラスタのコストを抑制しつつ、投入資金から最大限の価値を引き出すための手法やベストプラクティスも概観します。
さらに、リソースに関する要求、制限、デフォルトの使用方法とVertical Pod Autoscalerでリソースを最適化する方法、Readiness probe、Liveness probe、Pod Disruption Budgetを用いてコンテナを管理する方法、クラウドのストレージを最適化する方法、プリエンプティブインスタンスまたはリザーブドインスタンスを用いてコストをコントロールする方法とタイミングについても説明します。
5.1 リソースの理解
あるキャパシティのKubernetesクラスタを運用しており、適切と考えられるサイズで合理的な数のノードがあるとします。この環境から最大限の価値を引き出すためにはどうすればよいでしょうか。つまり、ワークロードに利用可能なクラスタリソースを望みうる最高の使用率で稼働させながら、需要のピーク、ノードの障害、不適切なデプロイなどに対処しうる十分な余裕も同時に確保することは、どのようにすれば可能になるでしょうか。
この疑問に答えを出すためには、Kubernetesスケジューラの立場になって、その観点から状況を検討することが役立ちます。スケジューラの仕事は、与えられたPodの実行場所を決定することです。そのPodを実行するのに十分な量のリソースが余っているノードはあるでしょうか。 ...
Get Kubernetesで実践するクラウドネイティブDevOps now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.