CloudNative Days Spring 2021 ONLINEレポート 10

CNDO2021、Kubernetesの運用ツールOperatorを作るチュートリアルセッションを紹介

2人の開発者の掛け合いによって、Kubernetes運用のためのOperatorを作るセッションを紹介する。

松下 康之 - Yasuyuki Matsushita

2021年7月19日 6:00

CloudNative Days ONLINE 2021から、2人のエンジニアの掛け合いでKubernetes運用のためのOperatorを、SDKを使用して実際に作成して見せるセッションを紹介する。これは先輩と後輩が対話しながら実際にSDKのダウンロード、インストール、makeで準備を行うところから、Ansibleでインフラにデプロイして、Prometheusのメトリクスを見るところまでを駆け足で説明するという内容となる。

掛け合いでKubernetesのOperatorを作るまでを解説するセッション

掛け合いでKubernetesのOperatorを作るまでを解説するセッション

掛け合いは先輩エンジニアと後輩にあたる新人エンジニアが登場し、先輩のガイドに従って後輩が実際に操作を行いながら、説明するというスタイルである。

登壇する先輩エンジニアと後輩エンジニアの紹介

登壇する先輩エンジニアと後輩エンジニアの紹介

まず先輩はKubernetesの基本として「Control Loop/Reconciliation Loop」に関する解説を行った。これはKubernetesが宣言的で自律的と評される基本動作を解説したもので、現在のシステムの状態を常に観察し、Manifestで定義された「あるべき姿」との違いを検知して、システムをあるべき姿になるように操作する仕組みだ。

Kubernetesの動作の基本を解説

Kubernetesの動作の基本を解説

これをリソースとコントローラーに分けて解説したのが次のスライドだ。ここではコントローラーがリソースを監視し、定義された「あるべき姿」に近づけるためにリソースを操作することに当たる。ここではReplicaSetのControllerがReplicaSetとPodのResourceを監視し、必要に応じて作成や削除などの操作を行う例を挙げて解説している。Kubernetesの実際のコンポーネントにはAPI Serverやetcdなども存在するが、ここではリソースとコントローラーだけに焦点を当てて解説を行った。

ResourceとControllerの関係を解説

ResourceとControllerの関係を解説

これを踏まえて、標準で用意されているコントローラー+リソースを拡張するためにCustom Resource Definition(CRD)とCustom Controllerのセットで提供されるものが、Operatorであると解説した。CRDがリソース、Custom Controllerがコントローラーに相当する。

Operatorとは何かを解説

Operatorとは何かを解説

そのOperator自体を開発するためのツールとして、Operator SDKを紹介した。ここではOperator SDKの歴史的な経緯、つまりRed Hatが買収したCoreOSによって開発が始められたフレームワークであることや、Go、Helm、Ansibleなどの開発のベースとなるモードが存在することなどを解説した。

Operator SDKの解説

Operator SDKの解説

ここからはOperator SDKの公式サイトからSDKのダウンロード、インストールなどを実際に操作しながら解説するフェーズとなった。

Operator SDKの公式サイトから必要なソフトウェアをダウンロード

Operator SDKの公式サイトから必要なソフトウェアをダウンロード

実際にAnsible用のSDKをダウンロードしてバージョンを確認し、必要なPythonなどのモジュールのインストールなどを行ってみせた。

ダウンロードしたSDKのバージョンを確認

ダウンロードしたSDKのバージョンを確認

インストールされたモジュールを確認

インストールされたモジュールを確認

ここではOpenShift、Ansible、Moleculeなどのモジュールが確認できる。MoleculeはAnsibleのRoleのテストを行うツールで、現在はAnsibleの一部としてRed Hatによって開発が行われている。ここまでで勘の良い読者は気付いたかもしれないが、この先輩と後輩はレッドハットのエンジニアで、OpenShift、Ansible、Moleculeを使ったOperator SDKの解説を匿名としてやっているということだろう。

この後YAMLファイルの編集、makeファイルの編集などを行って、実際にMoleculeでテストを行うという辺りまでを実演してみせて、Operator SDKを使った開発の概要を紹介した。またOperatorにはPrometheusがデフォルトで実装されており、メトリクスの取得から監視までが行えることも解説し、単にデプロイするだけではなく監視までカバーしていることを強調した。

Moleculeのテスト用の設定ファイルを編集

Moleculeのテスト用の設定ファイルを編集

約40分という時間の中で掛け合いを行いながら、実際にインストールからテストまでを駆け足で解説したセッションとなったが、解説が少々足らないことも充分に承知の上だろう。ただOperatorの開発の一通りのプロセスを解説したことは評価できる。すでに次回のプレゼンテーションも予定されているようで、ここからよりおもしろくなってくることを期待したい。

次回の予告は「Operator運用編」だという

次回の予告は「Operator運用編」だという

ちなみにTwitterアカウントも存在しており、今後の活躍に期待したい。

Twitterアカウント:とある先輩と後輩

Operator SDKの公式サイト:Operator SDK

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る