概要
Kubernetesのカスタムコントローラーを開発するためのツールを調べる
前提知識
オペレーター ≒ カスタムリソース + カスタムコントローラー
https://kubernetes.io/ja/docs/concepts/extend-kubernetes/operator/
調査対象の選定
KubebuilderとOperator SDKがよく使われていそう
https://kubernetes.io/ja/docs/concepts/extend-kubernetes/operator/#writing-operator
Kubebuilderの使い方
$ brew install kubebuilder
$ kubebuilder init --domain my.domain --repo my.domain/guestbook
$ kubebuilder create api --group webapp --version v1 --kind Guestbook
$ make manifests install run
Operator SDKの使い方
$ brew install operator-sdk
$ operator-sdk init --domain example.com --repo github.com/example/memcached-operator
$ operator-sdk create api --group cache --version v1alpha1 --kind Memcached
$ make manifests install run
KubebuilderとOperator SDKの比較
- Operator SDKがKubebuilderをライブラリとして使用している
- 初期化のコマンドや生成されるコードはほぼ同じ
- Operator SDKはより複雑なことができる
- Operator SDKはOperator Lifecycle Managerと組み合わせて使える
まとめ
まずはKubebuilderを使ってみるのが良さそう
複数のコントローラーを運用する場合などではOperator SDKの使用を検討すると良さそう