最近「Monokle」を使っている.Monokle(モノクレ)は「Kubernetes マニフェスト用エディタ」とも言えるアプリで,2週間ほど使って操作にも慣れてきたので紹介する!macOS でも Windows でもアプリをダウンロードすればすぐに使えるぞ!
機能 ☸️
Monokle の機能(できること)はドキュメントに載っている.機能は本当に多くて,継続的にリリースもされている.今回は代表的な機能を4点紹介する!Monokle v1.6.0
を前提にする.UI は日々変わるかも!
- マニフェスト操作
- Kustomize 対応
- Helm 対応
- Kubernetes クラスタ統合
検証環境 ☸️
今回はブログ記事用にサンプルマニフェストを管理するディレクトリを作った(非公開).すぐに試すなら普段仕事などで使っている GitHub リポジトリのディレクトリなどを読み込んでしまって OK!個人的に Monokle を使い始めたときは複雑な UI に慣れなかったけど,使い続ければ慣れてくる!
$ tree -L 1 . . ├── helm ├── kustomize └── manifests
1. マニフェスト操作 ☸️
まず,Monokle 画面は大きく「3種類」のウィジェットで構成されている.まず,左側にある「File Explorer」でディレクトリのマニフェストなどを一覧できる.適当にマニフェストを選択すると,右側にある「Editor」で YAML を直接編集できる(ちゃんと補完も効くぞー👏).そして,真ん中にある「Navigator」では Kubernetes リソースごとにオブジェクトを一覧できる.さらにオブジェクトの関係性を確認できる Outgoing Links 機能も便利!
「Editor」で特に便利なのは Form 機能で,マニフェストの各フィールドを GUI で設定できる.マニフェストを書くときにフィールド名を調べることも多いけど,Form 機能を使えば簡単に YAML に反映できる.以下のキャプチャには Deployment の spec.selector.matchLabels
や strategy:type
などを載せている.下にスクロールをするとまだまだ多くのフィールドが出てくる!
新しくマニフェストを作るときは File Explorer で Add Resource
を選択すると GUI で作れる.
またマニフェストの記法エラーにも気付ける.意図的に以下のエラーを混入させてみた.Editor でエラーに気付けるのは便利ー!
spec.replicas
に文字列を指定する🔥spec.template.spec.volumes
に存在しない ConfigMap を指定する🔥
2. Kustomize 対応 ☸️
Monokle は Kustomize に対応している.左側のメニューで Kustomize アイコンを選択する.今回は検証用にサンプルプロジェクトを作った.
$ tree kustomize kustomize ├── base │ ├── deployment.yaml │ ├── kustomization.yaml │ └── namespace.yaml └── overlays ├── dev │ └── kustomization.yaml └── prd └── kustomization.yaml
kustomize/overlays/prd/kustomization.yaml
を以下のように設定して,Monokle で Preview
を押すと自動的に kustomize build overlays/prd
が実行されて Editor に表示される.試行錯誤をしながら kustomization.yaml
を実装するときに便利!また Kustomize の Editor にも Form 機能があり configMapGenerator
や patchesStrategicMerge
なども GUI で設定できる!イイ!
bases: - ../../base namespace: my-kustomize-prd replicas: - name: my-kustomize-prd-nginx count: 10 namePrefix: my-kustomize-prd-
3. Helm 対応 ☸️
Monokle は Helm にも対応している.左側のメニューで Helm アイコンを選択する.今回は検証用にサンプルプロジェクトを作った.
$ tree helm helm ├── Chart.yaml ├── charts ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── hpa.yaml │ ├── ingress.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ └── tests │ └── test-connection.yaml └── values.yaml
Monokle で Preview
を押すと templates/*.yaml
のテンプレートに values.yaml
を展開したマニフェストを確認できる.アプリケーションを Helm Chart にまとめている場合に便利そう!
4. Kubernetes クラスタ統合 ☸️
ここまでは「Kubernetes マニフェスト用エディタ」として,マニフェスト関連の操作を紹介してきたけど,Monokle を使うと Kubernetes クラスタに接続もできる(kubeconfig の設定は前提となる).クラスタにデプロイされた Kubernetes オブジェクトを一覧したり,マニフェストを編集して反映もできる.以下のキャプチャは検証用の Amazon EKS クラスタに接続している(なんと 662 オブジェクトもあった!).
まとめ ☸️
最近使っている「Monokle」を紹介した.今後も使っていくぞー!