Kubernetes Director (KubeDirector) を使ってみた。

Posted on
この記事は、最終更新日から 4 年以上経過しています。 情報が古い可能性があります。

この記事はKubernetes Advent Calendarの穴埋め記事です。

Kubernetes Director (KubeDirector)をご存知でしょうか。

Statefulなアプリケーションを管理するためのカスタムコントローラです。

アプリケーション固有のオペレーターと違い、KubeDirectorにはアプリケーション固有のロジックはなく、アプリケーションの情報はカスタムリソースの設定として定義していきます。

KubeDirectorインストール

KubeDirectorはGKEやEKS、Local Kubernetesなどで使用できます。今回はLocal Kubernetesでやってみます。

$ git clone https://github.com/bluek8s/kubedirector.git
$ cd kubedirector/
$ git checkout v0.3.0
$ make deploy

デプロイが完了すると、以下のCustomResourceDefinitionが作成されます。

また、サンプルのアプリケーションとして、以下のアプリケーションがKubeDirectorAppのカスタムリソースとして追加されます。

KubeDirector設定

早速アプリケーションをデプロイしたいところですが、その前KubeDirectorをしておきたいと思います。 設定は、KubeDirectorConfigのカスタムリソースで、kd-global-configの名前で作成すると反映させることができます。 設定可能な値はこちらで確認できます。 サンプル。 デフォルトのStorageClassやServiceType、Systemdのサポートなどが設定できます。

アプリケーションデプロイ

こちらのサンプルにある永続ストレージを使用するSparkのアプリケーションをデプロイしてみたいと思います。

$ kubectl apply -f cr-cluster-spark221e2-stor.yaml

すると、↑ のyamlファイルに書かれた以下のオブジェクトが作成されます。

アプリケーションの作成

こちらにあるサンプルをベースに変更していくのがスムーズかと思います。

ポイントは以下の3点です。

まとめ

KubeDirectorを使用すると既存のStatefulなアプリケーションを容易にコンテナ環境に移すことができます。

ぜひ使ってみてください。(^^)