Pro Yearly is on sale from $80 to $50! »

k8sリソースの可視化・操作ツール(OSS)

 k8sリソースの可視化・操作ツール(OSS)

F1623a7cda4c0e95a20cb01c978c3f30?s=128

hiropinponpan

August 24, 2020
Tweet

Transcript

  1. マスター タイトルの書式設定 k8sリソースの可視化・操作ツール(OSS)

  2. マスター タイトルの書式設定 自己紹介 • 名前 : 秋葉 洋毅 • 所属

    : 株式会社オージス総研 1
  3. マスター タイトルの書式設定 k8sリソースの可視化や操作を OSSなGUIツールを使って楽にしたい 2

  4. マスター タイトルの書式設定 今回のテーマ 3  課題感 • k8sリソース全体をkubectl CLIだけで把握や操作するのはシンドイ •

    GUIツール(OSS)を使って効率的にk8sリソースの可視化や操作が行いたい  今回取り上げるk8s GUIツール(OSS)達 • Kubernetes Dashboard • OCTANT • Lens  補足 • 今回のテーマは、observabilityがメインの目的では無いのと、k8sリソースの操作も 行えるツールをスコープとしたので、メトリクス・ログ監視で良く聞くgrafanaや、ト レーシング・サービスメッシュ界隈で良く聞くkialiなどは、対象としない事とする
  5. マスター タイトルの書式設定 OSSなk8s GUIツール達 4 Kubernetes Dashboard OCTANT Lens Overview

    Web based UI tool Desktop/Client application The Kubernetes IDE Github kubernetes/dashboard vmware-tanzu/octant lensapp/lens Initial release V0.1.0 (Feb 4,2016) V0.1.0 (Nov 20,2018) V2.70 (Dec 3,2019) Star 8.3k 4.3k 7.3k Fork 2.4k 288 344 Contributors 246 44 26 Issues 89 169 254 commits 3,234 2,374 175 Authentication Token(一時認証) or Kubeconfig(Webアクセス時に 指定) Kubeconfig(OCTANTプロセス起 動時に読み込み) Kubeconfig(Lensプロセス起動 後のメニューで指定) 2020年8月12日時点 ↑ ・2020年3月にOSS公開 ・2020年8月13日にMirantisが取得(買収) ↑ ? Githubで遡れるバージョン
  6. マスター タイトルの書式設定 5 Kubernetes Dashboard

  7. マスター タイトルの書式設定 Kubernetes Dashboard 6  Kubernetes Dashboardの個人的な所感 • Kubernetes

    Dashboard用(GUIサーバ) Podをk8sクラスタ内に立てる必要あり • 閲覧専用と思いきや、簡易(限定)的なk8sリソース作成も可能 • k8sリポジトリ(プロジェクト)直下のGUIツールというお墨付き? ※kubernetes Dashboard自体がセキュリティホールになる可能性が あるので使わない方が良いと言っている人達もいる
  8. マスター タイトルの書式設定 7 Kubernetes Dashboard > とあるWorkloadsを表示 ← 一通りのk8sリソースの可視化が可能 metric-server(任意にセットアップ)経由でCPU/MEM使用率も可視化出来る

    ↓ Dashboard Version 2.0.0で試行 (2020年8月11日時点の最新は2.0.3) ↑ Namespace切替 サンプルアプリ(https://istio.io/latest/docs/examples/bookinfo/)
  9. マスター タイトルの書式設定 8 Kubernetes Dashboard > 簡易的にWorkload作成 ↑ ・簡易なworkloadはGUIでk8sリソース作成が可能 ・yamlファイルをアップロードしてk8sリソース作成も可能

  10. マスター タイトルの書式設定 9 OCTANT

  11. マスター タイトルの書式設定 OCTANT 10  OCTANTの個人的な所感、目に留まった機能  Pod Log確認 

    Pod Shell操作  Context Switch ※kubeconfigの切り替え  Resource Viewer ※k8sリソースの相関を可視化  Plugin ※OCTANT GUIの拡張  etc • Proxy Setting • RBACによる認可制限はクセあり • **
  12. マスター タイトルの書式設定 OCTANT > Pod Log確認 11 特定Podのログ ↓ OCTANT

    Version 0.14.1で試行 (2020年8月10日時点の最新) ←Light/Darkモードの切り替え
  13. マスター タイトルの書式設定 OCTANT > Pod Shell操作 12 特定コンテナのTerminal操作 ↓

  14. マスター タイトルの書式設定 OCTANT > Context Switch 13 ↑ Context Switch

    ↑ Namespace
  15. マスター タイトルの書式設定 OCTANT > Resource Viewer 14 ←Deployment ←ReplicaSet ←Pod

    ←SA、Secret ←Service サンプルアプリ (https://istio.io/latest/docs/examples/bookinfo/)
  16. マスター タイトルの書式設定 OCTANT > Plugin ( helm、velero、starboardなど) 15 ←octant-plugin (https://github.com/topics/octant-plugin)

    2020年8月13日時点で11個のpublic repositories ↑ starboard-octant-plugin中のkube-hunter reportの表示例
  17. マスター タイトルの書式設定 OCTANT > RBACによる認可制限はクセあり 16 ←RBACで閲覧制限をしていても 一通りの画面遷移は出来る ↑ ・実際はReplicaSetは存在していもRBACで閲覧制限をしている為、

    表示されない。 ・k8sリソースが実在しないのか、RBAC権限で閲覧出来ないだけなの かの見分けがつかないので、RBAC制限は注意が必要。
  18. マスター タイトルの書式設定 17 Lens

  19. マスター タイトルの書式設定 Lens 18  Lensの個人的な所感、目に留まった機能  Pod Log確認 

    PodやNodeのShell操作、ローカルPCのTerminal操作との統合  Context Switch ※kubeconfig(k8sクラスタ)の切り替え  Replica数の変更  NodeやPodの一部操作 ※Cordon、Drain、Edit、Deleteなど  Helm Chartの操作  etc • Proxy Setting • RBACによる認可制限はクセあり • Prometheusの統計機能が内蔵 • **
  20. マスター タイトルの書式設定 19 ログのダウンロードも出来る ↓ Lens > Pod Log確認 Lens

    Version 3.5.2で試行 (2020年8月10日時点の最新) ←Darkモード表示(Lightモードも可)
  21. マスター タイトルの書式設定 Lens > PodやNodeのShell、ローカルPCのTerminal操作 20 ↑ ・各PodやNodeのShell操作 ・ローカルPCのTerminal操作 ・タブ切替

  22. マスター タイトルの書式設定 21 ↑ kubeconfig追加 Lens > kubeconfig(k8sクラスタ)の切り替え

  23. マスター タイトルの書式設定 Lens > Replica数の変更 22 ↑ ReplicaSet > Pod数を変更

  24. マスター タイトルの書式設定 23 Lens > NodeやPod操作 ↑ Cordon、Drain、Edit、Delete

  25. マスター タイトルの書式設定 24 Lens > Helm Chartの操作 ↑ ・Helm ChartリストからInstall

    ・Helm Update/Downgrade/UnInstall可 ←Helm Repositoryを追加
  26. マスター タイトルの書式設定 25 Lens > RBACによる認可制限はクセあり RBACで特定のdeploymentのみの閲覧のみに権限を絞った ↓ ←選択出来るWorkloadsが限定される ↑

    Kubectl get deploymenで値の取得は出来る のだが、Lens UIでは表示出来ない
  27. マスター タイトルの書式設定 まとめ 26 • k8sリソースの可視化、logs確認、shell操作で有効 • k8sリソースの作成、更新、削除で有効 • 開発・運用者向けのGUIツール

    (GUI自体のID認証機能は現時点で無いので) OCTANT Lens Kubernetes Dashboard • k8sリソースの可視化に割り切って利用 • 専用Pod作成やセキュリティホールのリスクを考慮 (使うにしても閉域NW内に限定したほうが良い)
  28. マスター タイトルの書式設定 ご清聴ありがとうございました 27