アプリケーションが動作するコンテナが含まれるPodのチューニングについて説明します。
Pod(Application)が利用できるCPUやメモリは、そのPodが動作するnode(サーバ)のリソースの利用可能な範囲に限られるため、 Pod(Application)のスケーリングは、Kubernetes nodeサーバのスケーリングと併せて検討してください。
Pod(Application)のスケールアップ・スケールダウンについて説明します。
1. Pod(Application)の配備に利用したマニフェストにおいて、以下のパラメーターを変更します。
変更対象 | マニフェストのパラメーター |
---|---|
メモリの割り当て制限値(注1) | spec.containers.resources.limits.memory |
メモリの割り当て保証値(注1) | spec.containers.resources.requests.memory |
CPUの割り当て制限値(注2) | spec.containers.resources.limits.cpu |
CPUの割り当て保証値(注2) | spec.containers.resources.requests.cpu |
注1) メモリの割り当てに関する詳細は、Assign Memory Resources to Containers and Pods - Kubernetesを参照してください。
注2) CPUの割り当てに関する詳細は、Assign CPU Resources to Containers and Pods - Kubernetesを参照してください。
2. 以下のコマンドを実行して、Pod(Application)の削除を行います。
kubectl delete -f <マニフェストファイル>
3. 以下のコマンドを実行して、Pod(Application)のスケールアップ・スケールダウンを行います。
kubectl apply -f <マニフェストファイル>
Container Managementのデフォルト設定では、メモリ・CPUの割り当て制限値・割り当て保証値のデフォルト値は設定してない(注3)ため、 Pod(Application)が動作するnode(サーバ)のリソースの利用可能な範囲で、上限なくメモリやCPUが利用されます。
注3) メモリ・CPUの割り当て制限値・割り当て保証値のデフォルト値を設定する場合、詳細については以下のドキュメントを参照してください。
- Configure Default Memory Requests and Limits for a Namespace - Kubernetes - Configure Default CPU Requests and Limits for a Namespace - Kubernetes
Pod(Application)のスケールアウト・スケールインについて説明します。
スケーリング対象のPod(Application)がDeploymentの作成により配備されていることを前提とします。 Deploymentの詳細は、Deployments - Kubernetesを参照してください。
Pod(Application)の配備に利用したマニフェストにおいて「spec.replicas」の値をスケールしたい数に設定します。
以下のコマンドを実行して、Pod(Application)のスケールアウト・スケールインを行います。
kubectl apply -f <マニフェストファイル>