Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
3.2. OpenShift Container Platform ノードホストの推奨プラクティス
OpenShift Container Platform ノード設定ファイルには、iptables 同期期間、SDN ネットワークの Maximum Transmission Unit (MTU)、プロキシーモードなどの重要なオプションが含まれます。ノードを設定するには、適切な ノード設定マップ を変更します。
node-config.yaml
ファイルを直接編集しないでください。
ノード設定ファイルでは、kubelet (node) プロセスに引数を渡すことができます。kubelet --help
を実行すると、利用可能なオプション一覧を表示できます。
kubelet オプションは、OpenShift Container Platform ですべてサポートされておらず、アップストリームの Kubernetes ですべてが使用されている訳ではありません。そのため、オプションによってはサポートに制限があります。
OpenShift Container Platform の各バージョンでサポートされている最大制限については、Cluster maximums ページを参照してください。
/etc/origin/node/node-config.yaml ファイルでは、1 つのパラメーターでノードにスケジュールできる Pod の最大数 max-pods
を制御します。max-pods
オプションを使用すると、ノード上の Pod の数が制限されます。この値を超えると、次の結果になる可能性があります。
- OpenShift Container Platform と Docker の両方で CPU 使用率が増加する。
- Pod のスケジューリングの速度が遅くなる。
- メモリー不足のシナリオが生じる可能性がある (ノードのメモリー量によって異なる)。
- IP アドレスのプールを消費する。
- リソースのオーバーコミット、およびこれによるアプリケーションのパフォーマンスの低下。
Kubernetes では、単一コンテナーを保持する Pod は実際には 2 つのコンテナーを使用します。2 つ目のコンテナーは実際のコンテナーの起動前にネットワークを設定するために使用されます。そのため、10 の Pod を使用するシステムでは、実際には 20 のコンテナーが実行されていることになります。
max-pods
は、ノードのプロパティーにかかわらず、ノードが実行できる Pod 数を固定値に設定します。クラスターの制限 では、max-pods
のサポートされる最大値について説明しています。
kubeletArguments: max-pods: - "250"
上記の例を使用すると、max-pods
のデフォルト値は 250
です。
OpenShift Container Platform クラスターの推奨制限については、インストールドキュメントの サイジングに関する考慮事項 セクションを参照してください。推奨のサイズは、コンテナーのステータス更新時の OpenShift Container Platform とコンテナーエンジンの連携に対応します。この連携により、大量のログデータの書き込みなどを含め、マスターやコンテナーエンジンプロセスへの CPU の負荷がかかります。
kubelet が API サーバーと通信する速度は、qps およびバースト値によって異なります。各ノードで実行中の Pod に限りがある場合には、デフォルト値で十分です。ノードに CPU およびメモリーリソースが十分にある場合、qps および burst の値は /etc/origin/node/node-config.yaml ファイルで調整できます。
kubeletArguments: kube-api-qps: - "20" kube-api-burst: - "40"
上記の qps およびバースト値は OpenShift Container Platform のデフォルトです。