CNDO2021、Kubernetesの運用ツールOperatorを作るチュートリアルセッションを紹介
CloudNative Days ONLINE 2021から、2人のエンジニアの掛け合いでKubernetes運用のためのOperatorを、SDKを使用して実際に作成して見せるセッションを紹介する。これは先輩と後輩が対話しながら実際にSDKのダウンロード、インストール、makeで準備を行うところから、Ansibleでインフラにデプロイして、Prometheusのメトリクスを見るところまでを駆け足で説明するという内容となる。
掛け合いは先輩エンジニアと後輩にあたる新人エンジニアが登場し、先輩のガイドに従って後輩が実際に操作を行いながら、説明するというスタイルである。
まず先輩はKubernetesの基本として「Control Loop/Reconciliation Loop」に関する解説を行った。これはKubernetesが宣言的で自律的と評される基本動作を解説したもので、現在のシステムの状態を常に観察し、Manifestで定義された「あるべき姿」との違いを検知して、システムをあるべき姿になるように操作する仕組みだ。
これをリソースとコントローラーに分けて解説したのが次のスライドだ。ここではコントローラーがリソースを監視し、定義された「あるべき姿」に近づけるためにリソースを操作することに当たる。ここではReplicaSetのControllerがReplicaSetとPodのResourceを監視し、必要に応じて作成や削除などの操作を行う例を挙げて解説している。Kubernetesの実際のコンポーネントにはAPI Serverやetcdなども存在するが、ここではリソースとコントローラーだけに焦点を当てて解説を行った。
これを踏まえて、標準で用意されているコントローラー+リソースを拡張するためにCustom Resource Definition(CRD)とCustom Controllerのセットで提供されるものが、Operatorであると解説した。CRDがリソース、Custom Controllerがコントローラーに相当する。
そのOperator自体を開発するためのツールとして、Operator SDKを紹介した。ここではOperator SDKの歴史的な経緯、つまりRed Hatが買収したCoreOSによって開発が始められたフレームワークであることや、Go、Helm、Ansibleなどの開発のベースとなるモードが存在することなどを解説した。
ここからはOperator SDKの公式サイトからSDKのダウンロード、インストールなどを実際に操作しながら解説するフェーズとなった。
実際にAnsible用のSDKをダウンロードしてバージョンを確認し、必要なPythonなどのモジュールのインストールなどを行ってみせた。
ここではOpenShift、Ansible、Moleculeなどのモジュールが確認できる。MoleculeはAnsibleのRoleのテストを行うツールで、現在はAnsibleの一部としてRed Hatによって開発が行われている。ここまでで勘の良い読者は気付いたかもしれないが、この先輩と後輩はレッドハットのエンジニアで、OpenShift、Ansible、Moleculeを使ったOperator SDKの解説を匿名としてやっているということだろう。
この後YAMLファイルの編集、makeファイルの編集などを行って、実際にMoleculeでテストを行うという辺りまでを実演してみせて、Operator SDKを使った開発の概要を紹介した。またOperatorにはPrometheusがデフォルトで実装されており、メトリクスの取得から監視までが行えることも解説し、単にデプロイするだけではなく監視までカバーしていることを強調した。
約40分という時間の中で掛け合いを行いながら、実際にインストールからテストまでを駆け足で解説したセッションとなったが、解説が少々足らないことも充分に承知の上だろう。ただOperatorの開発の一通りのプロセスを解説したことは評価できる。すでに次回のプレゼンテーションも予定されているようで、ここからよりおもしろくなってくることを期待したい。
ちなみにTwitterアカウントも存在しており、今後の活躍に期待したい。
Twitterアカウント:とある先輩と後輩
Operator SDKの公式サイト:Operator SDK
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Oracle Cloud Hangout Cafe Season5 #1「Kubernetes Operator 超入門」(2022年1月19日開催)
- KubeCon China:恒例の失敗談トークはスナップショットの実装について
- Rancherを構成するソフトウェア
- CNDT2021、Kubernetesをカスタマイズするカスタムコントローラーのベスト/ワーストプラクティスを紹介
- KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション
- マルチクラウドを制御するユニバーサルなコントロールプレーンCrossplane
- Kubeflowを構築する
- Oracle Cloud Hangout Cafe Season 4 #5「Kubernetesのオートスケーリング」(2021年8月4日開催)
- Pulumi Kubernetes Operatorを活用してPulumiのCI/CDを実現しよう
- KubeCon Europeでサービスメッシュの標準化を目指すSMIを発表。Istioの動向にも注目