パッケージ化されたコンポーネントの管理

自動デプロイマニフェスト(AddOns)

サーバーノード上で、`/var/lib/rancher/rke2/server/manifests`内に見つかったファイルは、起動時およびディスク上のファイル変更時に、`kubectl apply`と同様の方法で Kubernetes に自動的にデプロイされます。このディレクトリからファイルを削除しても、クラスターから対応するリソースは削除されません。

マニフェストは、AddOn 名前空間内の kube-system カスタムリソースとして追跡されます。マニフェストファイルを適用する際に発生したエラーや警告は、対応する kubectl describeAddOn を使用するか、またはそのネームスペースのすべてのイベントを表示するために kubectl get event -n kube-system を使用することで確認できます。デプロイコントローラーからのイベントも含まれます。

パッケージ化されたコンポーネント

RKE2 には、マニフェストディレクトリを通じて AddOn としてデプロイされる複数のパッケージ化されたコンポーネントが含まれており、例えば rke2-corednsrke2-metrics-serverrke2-ingress-nginx などがあります。

パッケージ化されたコンポーネントのマニフェストは、RKE2 によって管理され、変更してはなりません。ファイルは、RKE2 が起動するたびにディスクに再書き込まれ、その整合性が確保されます。

ユーザー AddOns

追加のファイルをマニフェストディレクトリに配置して、AddOn としてデプロイすることができます。各ファイルには、--- によって区切られた複数の Kubernetes リソースが含まれる場合があります。マニフェスト内のリソースの整理に関する詳細は、Kubernetes ドキュメントの リソースの管理 セクションを参照してください。

ファイル名の要件

マニフェストディレクトリ内の各ファイルの AddOn 名は、ファイルのベース名から派生しています。マニフェストディレクトリ内のすべてのファイル(または任意のサブディレクトリ内)の名前が一意であり、Kubernetes の オブジェクト名の制限 に従っていることを確認してください。たとえ無効化されている場合でも、デフォルトの RKE2 パッケージ化されたコンポーネントで使用されている名前と衝突しないように注意する必要があります。

複数のサーバーノードがある場合、追加のAddOnマニフェストを複数のサーバーに配置することは、これらのノード間でファイルが同期されることを保証する責任があります。RKE2 はノード間で AddOn コンテンツを sync せず、異なるサーバーが矛盾するマニフェストをデプロイしようとした場合、正しい動作を保証できません。

マニフェストの無効化

マニフェストディレクトリから特定のコンテンツの展開を無効にする方法は2つあります。

`--disable`フラグを使用する

上記にリストされたパッケージ化されたコンポーネントのAddOnsに加えて、manifests`ディレクトリに配置された追加のマニフェストのAddOnsは、--disable`フラグで無効にできます。無効化されたAddOnsはクラスターから積極的にアンインストールされ、ソースファイルは`manifests`ディレクトリから削除されます。

例えば、新しいクラスターにメトリクスサーバーがインストールされないようにする場合、または既存のクラスターからメトリクスサーバーをアンインストールしマニフェストを削除する場合は、--disable=rke2-metrics-server を用いて RKE2 を起動できます。複数のアイテムは、名前をカンマで区切るか、フラグを繰り返すことで無効にできます。

.skipファイルを使用する

/var/lib/rancher/rke2/server/manifests 内の任意のファイルに対して、対応するマニフェストを RKE2 が無視するようにするために、.skip ファイルを作成できます。.skip`ファイルの内容は重要ではなく、その存在のみがチェックされます。AddOnがすでに作成された後に.skip`ファイルを作成しても、それを削除したり変更したりすることはなく、リソースも変更されません; ファイルは存在しないかのように扱われます。

Helm AddOns

Helm チャートを自動デプロイするマニフェストの管理に関する情報については、Helm に関するセクションを参照してください。