
Kubernetes の Pod に CPU アフィニティを設定したいのですが、設定に失敗し、対応するドキュメントを見つけるのに苦労しています。
私が理解していること:
- 基本的に、k8s の CPU マネージャーは、ノード内のすべての CPU コアを共有プールと見なし、それらを使用してノードにデプロイされたポッドを実行します。
- kubelet の CPU-manager-policy フィールドを 'static' に設定すると、.yaml ファイルで CPU 要求/制限を整数として設定することで、Pod に CPU アフィニティを設定できます。
私がしたこと:
- CPU-manager-policy フィールドを静的に変更するために、次のように kubelet の設定を変更してみました。リンク
- しかし、CPU-manager-policy フィールドは変更されず、依然として「なし」のままです。
- そこで、/var/lib/kubelet/config.yaml の 'cpuManagerPolicy' フィールドを変更しました。
- 次に、「sudo systemctl restart kubelet」を実行しました。
- ノードのステータスが「NotReady」に変わり、すべてのポッドが保留状態になりました。
使用している環境:
- k8s バージョン: v1.13.2
- CNI: カリコ
- OS: Ubuntu 16.04
- ノード数: 2 (マスター 1 台、ワーカー 1 台)
- アプリケーション: istioのサンプルアプリ書籍情報
よろしくお願いします!
答え1
解決しました。config.yaml ファイルに 'kubeReserved' フィールドを追加する必要があります。さらに、/var/lib/kubelet/cpu_manager_state ファイルを削除する必要があります。次に、 'systemctl restart kubelet' を実行して kubelet を再起動します。