k8s \ openshiftのポッド\コンテナにデフォルトのメモリリクエストや制限はありますか?

Jan 24 2021

Halloの仲間のDevOpsの人々、

k8sまたはOpenshiftのポッド\コンテナごとの基本リクエストおよび/または制限が現在のようになっているのか、それとも将来の変更を知っているのかを理解しようとしています。

私はこの答えを見ました:少なくともGoogleのk8sの実装では、ポッドに割り当てられたデフォルトのメモリは何もないと述べていますが、k8sの現在の状態についてもそれを確実に知りたいです。オンプレミスデプロイメントでのOpenshift。

現在エンタープライズopenshift3.11.16クラスターを実行しており、まもなく4.6.4に移行するため、私の質問は、RedHatによるデフォルトのk8(Openshift)上でのビルドの実装についても説明しています。

container \ podの基本リクエストまたは制限値はありますか?

編集:k8sまたはopenshiftがアプリケーション開発言語またはデプロイ用に設定された環境変数(Java Container RUNコマンドまたはenv:JVM_OPTS -Xms1G -Xmx1Gなど)によってコンテナーメモリ要求を予測する方法もありますか?

回答

2 VasiliAngapov Jan 24 2021 at 01:15

デフォルトでは、リソース要求や制限はありません。つまり、すべてのポッドはBestEffortQoSを使用して作成されます。リクエストと制限のデフォルト値を設定する場合は、LimitRangeを使用する必要があります。

BestEffortポッドは、定義上、「ポッドにBestEffortのQoSクラスを付与するには、ポッド内のコンテナーにメモリまたはCPUの制限や要求があってはなりません」です。BestEffortポッドは、Kubernetesスケジューラの優先度が最も低く、リソースが競合した場合に削除できます

上記のすべては、OpenShiftを含むすべてのKubernetesディストリビューションに当てはまります。

1 StavBernaz Feb 04 2021 at 05:31

デフォルトの制限やリクエストはありません。デフォルトのリソースを構成するには、次の説明に従ってLimitRangeリソースを作成する必要があります。https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

すべての新しいプロジェクトを特定のリソース制限で作成する場合は、次に説明するようにデフォルトのプロジェクトテンプレートを変更できます。 https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

これは4.6でも変更されておらず、LimitRangeまたはデフォルトのプロジェクトテンプレートを変更する方法の実装のみが変更されています。(方法論はまったく同じです)

アプリケーションのリソースを予測するというあなたの質問に関しては、この問題の周りに何人かのプレーヤーがいます。使用率と、場合によってはいくつかのカスタムメトリックによって、デプロイメントリソースを自動的に変更できるターボノミックについて聞いたことがあります。