クラスタとクラスタ スコープ オブジェクトの構成
このページでは、クラスタとクラスタ スコープ オブジェクトを構成する方法について説明します。Namespace オブジェクトと Namespace スコープ オブジェクトの構成もご覧ください。
非構造化リポジトリでは、リポジトリ内のクラスタやクラスタ スコープ オブジェクトの構成ファイルを最も都合の良い方法で整理できます。リポジトリに ClusterSelector を含めない場合、クラスタ スコープ オブジェクトのすべての構成ファイルは、Config Sync に登録されているすべてのクラスタに適用されます。
階層リポジトリでは、クラスタとクラスタ スコープ オブジェクトのすべての構成ファイルは、階層リポジトリの cluster/
ディレクトリにあります。リポジトリに ClusterSelector を含めない場合、cluster/
の構成ファイルは、Config Sync に登録されているすべてのクラスタに適用されます。
構成が影響を与えるクラスタの制限
通常、Config Sync は登録済みの各クラスタに構成を適用します。構成ファイルが階層リポジトリの namespaces/
サブディレクトリ内にある場合、Config Sync はまず各クラスタ内に Namespace を作成し、継承したすべての構成ファイルをその Namespace に適用します。
ただし、クラスタのサブセットに構成ファイルを適用する必要がある場合は、構成ファイルにアノテーションまたは ClusterSelector を追加できます。これらの機能の使用方法については、クラスタのサブセットのみを構成するをご覧ください。
クラスタのラベルの構成
クラスタ構成を使用して、クラスタのラベルとアノテーションを構成できます。ClusterSelector を使用する場合、各クラスタには ClusterSelector が選択できるラベルのセットが必要です。クラスタに手動でラベルを付けることはできますが、クラスタ コンフィグを使用してラベルを構成することをおすすめします。
CustomResourceDefinitions を構成する
Config Sync では、他のリソースの同期と同じ方法で CustomResourceDefinitions(CRD) を同期できます。CRD を同期するときに注意する点は、次のとおりです。
階層リポジトリの CRD は、Namespace 付きのカスタム リソースを宣言する場合でも、
cluster/
ディレクトリに配置する必要があります。CRD とそれに対応する CustomResource の更新は、予測可能な順序では行われません。同じ commit で CRD とそれに対応する CustomResource を変更した場合、カスタム リソースが更新される前に CRD が更新されることはありません。これにより、CustomResource と CRD の両方がクラスタに存在するようになるまで、
nomos status
で一時的なエラーが報告されることがあります。リポジトリ内の CustomResource が CRD に依存している場合、Config Sync で CRD を削除することはできません。CRD を削除するには、その CustomResource も削除する必要があります。リポジトリに対する同じ commit で両方を削除することをおすすめします。
CRD がすでにクラスタに存在していることを保証できれば、CRD と同期せずに CustomResource を同期できます。
次のステップ
- クラスタのサブセットへの構成ファイルの適用について学習する
- Namespace オブジェクトと Namespace スコープ オブジェクトの構成について学習する