プロジェクトの設定#
プロジェクトは、キー/値の設定オプションのセットを通じて設定することができます。 これらのオプションを設定する方法については、プロジェクトの設定 を参照してください。
キー/値の設定は名前空間化されています。 次のオプションが利用可能です。
プロジェクトの機能#
プロジェクトの機能は、プロジェクト内でどのエンティティが隔離され、どのエンティティがdefault
プロジェクトから継承されるかを定義します。
feature.*
オプションが true
に設定されている場合、対応するエンティティはプロジェクト内で隔離されます。
注釈
特定のオプションを明示的に設定せずにプロジェクトを作成すると、このオプションは以下の表で与えられた初期値に設定されます。
ただし、feature.*
オプションのいずれかを解除すると、初期値に戻るのではなく、デフォルト値に戻ります。
すべての feature.*
オプションのデフォルト値は false
です。
キー |
タイプ |
デフォルト |
初期値 |
説明 |
---|---|---|---|---|
|
bool |
|
|
プロジェクト用に独立したイメージとイメージエイリアスのセットを使用するかどうか |
|
bool |
|
|
プロジェクト用に独立したネットワークのセットを使用するかどうか |
|
bool |
|
|
プロジェクト用に独立したネットワークゾーンのセットを使用するかどうか |
|
bool |
|
|
プロジェクト用に独立したプロファイルのセットを使用するかどうか |
|
bool |
|
|
プロジェクト用に独立したストレージバケットのセットを使用するかどうか |
|
bool |
|
|
プロジェクト用に独立したストレージボリュームのセットを使用するかどうか |
プロジェクトの制限#
プロジェクトの制限は、プロジェクトに属するコンテナやVMが使用できるリソースの上限を定義します。
limits.*
オプションによっては、プロジェクト内で許可されるエンティティの数に制限が適用されることがあります(例: limits.containers
や limits.networks
)。また、プロジェクト内のすべてのインスタンスのリソース使用量の合計値に制限が適用されることもあります(例: limits.cpu
や limits.processes
)。
後者の場合、制限は通常、各インスタンスに設定されている リソース制限 に適用されます(直接またはプロファイル経由で設定されている場合)、実際に使用されているリソースではありません。
例えば、プロジェクトの limits.memory
設定を 50GB
に設定した場合、プロジェクトのインスタンスで定義されたすべての limits.memory
設定キーの個別の値の合計が50GB未満に保たれます。
limits.memory
設定の合計が50GBを超えるインスタンスを作成しようとすると、エラーが発生します。
同様に、プロジェクトの limits.cpu
設定キーを 100
に設定すると、個々の limits.cpu
値の合計が100未満に保たれます。
プロジェクトの制限を使用する場合、以下の条件を満たす必要があります。
limits.*
設定のいずれかを設定し、インスタンスに対応する設定がある場合、プロジェクト内のすべてのインスタンスに対応する設定が定義されている必要があります(直接またはプロファイル経由で設定)。 インスタンスの設定オプションについては リソース制限 を参照してください。CPUピンニング が有効になっている場合、
limits.cpu
設定は使用できません。 これは、プロジェクトでlimits.cpu
を使用するためには、プロジェクト内の各インスタンスのlimits.cpu
設定をCPUの数、またはCPUのセットや範囲ではなく、数値に設定する必要があることを意味します。limits.memory
設定は、パーセンテージではなく絶対値で設定する必要があります。
キー |
タイプ |
デフォルト |
説明 |
---|---|---|---|
|
integer |
- |
プロジェクトで作成できるコンテナの最大数 |
|
integer |
- |
プロジェクトのインスタンスで設定された個々の |
|
string |
- |
プロジェクトのすべてのインスタンスボリューム、カスタムボリューム、およびイメージが使用するディスク容量の合計の最大値 |
|
integer |
- |
プロジェクトで作成できるインスタンスの合計数の最大値 |
|
string |
- |
プロジェクトのインスタンスで設定された個々の |
|
integer |
- |
プロジェクトが持つことのできるネットワークの最大数 |
|
integer |
- |
プロジェクトのインスタンスで設定された個々の |
|
integer |
- |
プロジェクトで作成できるVMの最大数 |
プロジェクトの制約#
プロジェクトのインスタンスがセキュリティに関連する機能(コンテナのネストや raw LXC 設定など)にアクセスできないようにするには、restricted
設定オプションを true
に設定します。
その後、さまざまな restricted.*
オプションを使用して、通常は restricted
によってブロックされる個々の機能を選択し、プロジェクトのインスタンスで使用できるように許可できます。
例えば、プロジェクトを制限し、すべてのセキュリティ関連機能をブロックしつつ、コンテナのネストを許可するには、次のコマンドを入力します:
lxc project set <project_name> restricted=true
lxc project set <project_name> restricted.containers.nesting=allow
セキュリティに関連する各機能には、関連する restricted.*
プロジェクト設定オプションがあります。
機能の使用を許可する場合は、その restricted.*
オプションの値を変更してください。
ほとんどの restricted.*
設定は、block
(デフォルト)または allow
に設定できる二値スイッチです。
ただし、一部のオプションは、より細かい制御のために他の値をサポートしています。
注釈
restricted.*
オプションを有効にするには、restricted
設定を true
に設定する必要があります。
restricted
が false
に設定されている場合、restricted.*
オプションを変更しても効果はありません。
すべての restricted.*
キーを allow
に設定することは、restricted
自体を false
に設定することと同等です。
キー |
タイプ |
デフォルト |
説明 |
---|---|---|---|
|
bool |
|
セキュリティに敏感な機能へのアクセスをブロックするかどうか - |
|
string |
|
インスタンスやボリュームのバックアップを作成できないようにする |
|
string |
- |
与えられたもの以外のクラスタグループをターゲットにすることを防ぐ |
|
string |
|
インスタンスの作成や移動時にクラスタメンバーを直接ターゲットにすることを防ぐ |
|
string |
|
|
|
string |
|
|
|
string |
|
特権コンテナの設定を制限する( |
|
string |
|
システムコールインターセプトオプションの使用を制限する - |
|
string |
|
ディスクデバイスの使用を制限する( |
|
string |
- |
|
|
string |
|
|
|
string |
|
|
|
string |
|
ネットワークデバイスの使用を制限し、ネットワークへのアクセスを制御する( |
|
string |
|
|
|
string |
|
|
|
string |
|
|
|
string |
|
|
|
string |
|
|
|
string |
|
|
|
string |
- |
インスタンスの |
|
string |
- |
インスタンスの |
|
string |
- |
このプロジェクトで使用が許可されるネットワーク名のカンマ区切りリスト - 設定されていない場合、すべてのネットワークがアクセス可能(この設定は |
|
string |
|
このプロジェクトで使用するために割り当てられたアップリンクネットワークのネットワークサブネットのカンマ区切りリスト( |
|
string |
|
このプロジェクトのネットワークのアップリンクとして使用できるネットワーク名のカンマ区切りリスト |
|
string |
|
このプロジェクトで使用できるネットワークゾーンのカンマ区切りリスト(またはそれらの下の何か) |
|
string |
|
インスタンスやボリュームのスナップショットを作成できないようにする |
|
string |
|
|
プロジェクト固有の設定#
プロジェクトに対していくつかの サーバー設定 オプションを上書きできます。 また、プロジェクトにユーザーメタデータを追加することができます。
キー |
タイプ |
デフォルト |
説明 |
---|---|---|---|
|
string |
- |
プロジェクト内のバックアップに使用する圧縮アルゴリズム( |
|
bool |
- |
LXDがキャッシュするイメージを自動的に更新するかどうか |
|
integer |
- |
キャッシュされたイメージの更新を検索する間隔(時間単位)(無効にするには |
|
string |
- |
プロジェクト内の新しいイメージに使用する圧縮アルゴリズム( |
|
string |
- |
混在アーキテクチャクラスタで使用するデフォルトアーキテクチャ |
|
integer |
- |
プロジェクト内で未使用のキャッシュされたリモートイメージが削除されるまでの日数 |
|
string |
- |
ユーザーが提供する自由形式のキー/値ペア |