アーキテクチャ
SUSE® Rancher Prime Continuous Deliveryには2つの主要なコンポーネントがあります。SUSE® Rancher Prime Continuous Deliveryコントローラとクラスタエージェントです。これらのコンポーネントは、2段階のプルモデルで機能します。SUSE® Rancher Prime Continuous Deliveryコントローラはgitからプルし、クラスタエージェントはSUSE® Rancher Prime Continuous Deliveryコントローラからプルします。
SUSE® Rancher Prime Continuous Deliveryコントローラ
SUSE® Rancher Prime Continuous Deliveryコントローラは、標準的なKubernetesクラスタで実行されるKubernetesコントローラのセットです。 SUSE® Rancher Prime Continuous Deliveryコントローラによって公開される唯一のAPIはKubernetes APIであり、フリートコントローラ用のカスタムAPIはありません。
クラスタエージェント
1つのクラスタエージェントが各クラスタで実行され、SUSE® Rancher Prime Continuous Deliveryコントローラと通信する責任があります。 クラスタからSUSE® Rancher Prime Continuous Deliveryコントローラへの唯一の通信はこのエージェントによって行われ、すべての通信は管理されたクラスタからSUSE® Rancher Prime Continuous Deliveryコントローラに向かいます。フリートコントローラは、ダウンストリームのクラスタへの接続を開始しません。これは、管理されたクラスタがプライベートネットワークやNATの背後で実行できることを意味します。唯一の要件は、クラスタエージェントがSUSE® Rancher Prime Continuous Deliveryコントローラを実行しているクラスタのKubernetes APIと通信できる必要があることです。これに対する唯一の例外は、マネージャー主導の登録クラスタ登録フローを使用する場合です。これは必須ではありませんが、オプションのパターンです。
クラスタエージェントは「always-on」接続であるとは想定されていません。接続できるようになるとすぐに動作を再開します。今後の機能拡張により、エージェントがチェックインする時刻をスケジュールする機能が追加される可能性がありますが、現時点では常に接続を試みます。
セキュリティ
SUSE® Rancher Prime Continuous Deliveryコントローラは動的にサービスアカウントを作成し、それらのRBACを管理し、トークンをダウンストリームのクラスタに渡します。クラスタは、オプションでクラスタ登録トークンを期限切れにすることにより登録されます。 クラスタ登録トークンは、登録プロセス中にのみ使用され、そのクラスタに特有の資格情報を生成します。クラスタ資格情報が確立されると、クラスタはクラスタ登録トークンを「忘れます」。
クラスタに与えられたサービスアカウントには、そのクラスタに対して特別に作成されたネームスペースに`BundleDeployment`を一覧表示する特権のみがあります。それはまた、`status`の`BundleDeployment`サブリソースと、その`status`リソースの`Cluster`サブリソースを更新することもできます。