Member-only story
Kubernetes Custom Resource DefinitionsーJavaでの実装(Part1)
この記事では、K8Sを拡張する方法として、Custom Resource Definitionについて詳しく説明したいと思います。
最初にCRDのユースケース、CRDを書く際のいくつかの衛生面について説明し、最後に手動で編集するのではなく、Javaを使ってCRDを生成する方法を学びます。
この記事では、YAMLなしでCRDを構築するためにJavaを使ってコントローラとCRDを実装する方法、CRDのためのカスタムコントローラを実行する方法、コントローラの実装について順を追って詳しく説明します。
All the sample code can be download from the GitHub repo and Gist
この記事では、CRDやノートを使用するべきかどうかについて深く掘り下げることはありませんので、K8Sの素晴らしい比較ドキュメントを読んでください。
今回の記事は、情報として大変高度なレベルになっています。K8Sを拡張する場合にのみ必要な情報になているので、みなさんがK8Sに関してかなり精通していると仮定し、K8SのJavaクライアントを使用する方法、および以前の記事をしっかりと理解しているということを前提に書いています。以前の記事:JavaでのK8Sリソースのコーディング パート1とパート2 。
すべてのサンプルコードは、GitHubのレポと Gistからダウンロードすることができます。
What is Custom Resource Definition?
Custom Resource Definitionとは何か?ほとんどの場合、K8Sと内蔵リソースを使用するだけで十分で、すべての内蔵リソースはよく構造化された包括的なYAMLを持っています。
これらのYAMLは非常に冗長になる可能性があります、例えば、デプロイしたいMySQLクラスタがある場合、それはYAMLファイル内のStatefulSet , Service , リーダー選出、ロードバランシング、スケーリング、ヘルスチェック、監視、ログ収集および他の多くのプロパティを必要とします。