4.2. パフォーマンスとスケーリング
CPU がオフラインの場合、コンテナーの CPU リソース制限を増やせない
要求された CPU がオフラインの場合に、コンテナーの CPU リソース制限を使用して Pod で使用可能な CPU の数を増やすと失敗します。この機能が利用可能な場合は、oc rsh <pod> コマンドを実行して Pod にアクセスし、次に lscpu コマンドを実行することで、CPU リソースの問題を診断できます。
lscpu
$ lscpu
出力例:
CPU(s): 16 On-line CPU(s) list: 0-12,14,15 Off-line CPU(s) list: 13
CPU(s): 16
On-line CPU(s) list: 0-12,14,15
Off-line CPU(s) list: 13
オフライン CPU のリストは予測不可能で、実行ごとにリストが異なる可能性があります。
回避策: 次の例のように、Pod アノテーションを使用して追加の CPU をリクエストします。
metadata:
annotations:
io.katacontainers.config.hypervisor.default_vcpus: "16"
metadata:
annotations:
io.katacontainers.config.hypervisor.default_vcpus: "16"
sizeLimit を増やしても一時ボリュームは拡張されない
ボリュームサイズはデフォルトで、sandboxed container に割り当てられたメモリーの 50% であるため、Pod 仕様の sizeLimit パラメーターを使用して一時ボリュームを拡張できません。
回避策: ボリュームを再マウントしてサイズを変更します。たとえば、sandboxed container に割り当てられたメモリーが 6 GB で、一時ボリュームが /var/lib/containers にマウントされている場合、次のコマンドを実行して、このボリュームのサイズをデフォルトの 3 GB より大きくすることができます。
mount -o remount,size=4G /var/lib/containers
$ mount -o remount,size=4G /var/lib/containers
リソース要求のアノテーションがシステムリソースと一致しない場合にピア Pod に問題が発生する
io.katacontainers.config.hypervisor.default_vcpus アノテーションおよび io.katacontainers.config.hypervisor.default_memory アノテーションの値は QEMU のセマンティクスに従いますが、ピア Pod には次の制限があります。
io.katacontainers.config.hypervisor.default_memoryを256未満の値に設定すると、次のエラーが表示されます。Failed to create pod sandbox: rpc error: code = Unknown desc = CreateContainer failed: Memory specified in annotation io.katacontainers.config.hypervisor.default_memory is less than minimum required 256, please specify a larger value: unknown
Failed to create pod sandbox: rpc error: code = Unknown desc = CreateContainer failed: Memory specified in annotation io.katacontainers.config.hypervisor.default_memory is less than minimum required 256, please specify a larger value: unknownCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
io.katacontainers.config.hypervisor.default_memoryを256に設定し、io.katacontainers.config.hypervisor.default_vcpusを1に設定すると、リストから最小のインスタンスタイプまたはインスタンスサイズが起動されます。 -
io.katacontainers.config.hypervisor.default_vcpusを0に設定すると、すべてのアノテーションが無視され、デフォルトのインスタンスが起動されます。
回避策: 柔軟な Pod 仮想マシンサイズを有効にするには、io.katacontainers.config.hypervisor.machine_type を、config map で指定されたデフォルトの AWS インスタンスタイプまたは Azure インスタンスサイズに設定します。
Jira:KATA-2575、Jira:KATA-2578、Jira:KATA-2577