0

アドミッション コントローラー (プラグイン) とアドミッション Webhook は、表面上は非常によく似ています。実際の機能的な違いは何ですか?

4

1 に答える 1

2

アドミッション コントローラは、専門家や公式ドキュメントによってアドミッション プラグインとアドミッション Webhook の両方を意味するように混同されています。混乱を避けるために、これらをアドミッション プラグインとアドミッション Webhook と呼びます。

アドミッション プラグインはAPI リソースではありません。クラスター管理者が作成することはできません。これらは、Kubernetes ソース コードにハードコーディングされています。

具体的には、アドミッション プラグインは無限の力を備えたツールです。に組み込まれkube-apiserverているため、認証なしでリソースを簡単に要求できます。彼らはこの力を利用して、アドミッション プラグインを実装します。DefaultStorageClassアドミッション プラグインは、すべての es をチェックStorageClassして、デフォルトのアノテーションが適用されたものを見つけます。

一方、アドミッション Webhook は、実際にはアドミッション プラグインの実装であり、余分な機能が取り除かれています。は、その時点で検証されている正確なオブジェクト以外のWebhook.Validator リソースにアクセスできないことに注意してください。アドミッション Webhookは API リソースであり、通常、Kubernetes オペレーターまたは CRD 全般のバリデーターを実装するときに最初に推奨されるものです。それにもかかわらず、 署名された証明書が必要であり、アイデア全体を放棄する可能性があります.

これは平均的な開発者にとって何を意味するのでしょうか?

クラスター内の既存のオブジェクトのチェックに依存するバリデーターを作成するには、Kubernetes Golang Client APIを使用して追加の手順を実行する必要があります。これは、正しい RBAC が適用されたサービス アカウント トークンに依存しています。

代わりに Status を使用してオブジェクトを更新し、検証が失敗した理由を説明することもできます。Kubernetes Operator を作成している場合は、調整ループで作成できます。

カスタム リソースの洗練された UI を作成した場合は、これらのステータスを読み取って、より適切な方法でユーザーに公開できるはずです。残念ながら、OpenShift 4.X のユーザーは、派手な UI を OpenShift Web コンソールに追加することはできませんRoute

于 2021-04-09T17:54:14.793 に答える