Client-Go による CustomResourceDefinitions (CRD) の監視
Kubernetes では、CustomResourceDefinitions ( CRD)。単純な REST クライアントはこのタスクを処理できますが、次のような疑問が生じます: 公式 Kubernetes クライアント ライブラリである client-go は CRD に対してこの役割を果たすことができますか?
課題: Client-Go の CRD 認識の欠如
Client-go は、ポッドやサービスなどの標準 Kubernetes リソースの組み込みサポートを提供します。ただし、CRD は client-go にネイティブに認識されないカスタム定義のリソースです。その結果、client-go を使用して CRD を監視するには、この認識ギャップに対処する必要があります。
解決策: CRD 用のカスタム クライアントの生成
解決策はカスタム クライアントを生成することです。 CRD用。 Kubernetes は、開発者が CRD API の構造を定義し、必要なクライアントを自動的に生成できるコード生成ツールを提供します。これにより、client-go は CRD を認識して対話できるようになります。
サンプル コントローラーおよびコード生成ツール
Kubernetes は、次のサンプル コントローラーのサンプルを提供します。 client-go を使用して CRD を監視する方法を示します。この例の pkg ディレクトリには、生成された API 定義とクライアント コードが含まれていますが、main.go ファイルとcontroller.go ファイルは CRD イベントの監視と処理を処理します。
Kubebuilder による簡素化されたコード生成
最近、kubernetes-sigs によって管理されているツールである kubebuilder が、CRD のクライアント構成とコントローラーを生成する便利な方法として登場しました。 kubebuilder を使用すると、開発者は client-go を使用して CRD を監視するプロセスを合理化できます。
以上がClient-Go は CustomResourceDefinitions (CRD) を監視できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。