Member-only story
Go? Bash!shell-operatorの紹介(前半)
本記事では、Kubernetes operatorsを作るプロセスをシンプルにするためのアプローチを紹介し、shell-operatorを使って簡単に独自のoperatorを実装する方法を紹介します。この文章は、先日開催された KubeCon Europe 2020 での発表を元にしています。今回は長いので前半と後半の2つに分けて投稿いたします。今回は前半です。
本講演のフル動画を下に載せましたので、ぜひご覧ください。
https://www.youtube.com/watch?v=we0s4ETUBLc&
… スライドも同時にお楽しみください。ただし、短いテキストの要約をご希望の場合は、この記事をお読みください!
Flantは、あらゆるものを改善し、自動化することが大好きです。今日は、わくわくするエキサイティングなコンセプトについてお話しします。クラウドネイティブシェルスクリプトです。
ですがまずは、このようなとてつもないことが起こるかもしれない環境、Kubernetesから始めてみましょう。
Kubernetes API and controllers
Kubernetes APIは、オブジェクトの種類ごとのフォルダを含むファイルサーバーと考えることができます。これらのオブジェクト(リソース)は、そのサーバー上のYAMLファイルとなっています。サーバーには基本的なHTTP APIがあり、これらのオブジェクトを使って次の3つのことができます。
- リソースの種類と名前でリソースを取得;
- リソースを変更する (サーバは有効なオブジェクトのみを保存することを覚えておいてください。無効なものや他の “ディレクトリ “に置かれることを意図したものは破棄したり無視したりします)。
- リソースを監視する (この場合、ユーザはすぐにリソースの現在の/更新されたバージョンを取得します)。
言い換えれば、Kubernetesは基本的に3つの汎用的なメソッドを持つYAMLファイルサーバだと考えることができます(そうなんです。実は他にもありますが、ここでは省略します)。
しかし、サーバー自体は情報を保存することしかできません。それを機能させるためには、Kubernetesで2番目に重要で基本的なものであるコントローラが必要です。