Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

マスター タイトルの書式設定 自己紹介 ● 名前 : 秋葉 洋毅 ● 所属 : 株式会社オージス総研 1

Slide 3

Slide 3 text

マスター タイトルの書式設定 k8sリソースの可視化や操作を OSSなGUIツールを使って楽にしたい 2

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

マスター タイトルの書式設定 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で遡れるバージョン

Slide 6

Slide 6 text

マスター タイトルの書式設定 5 Kubernetes Dashboard

Slide 7

Slide 7 text

マスター タイトルの書式設定 Kubernetes Dashboard 6  Kubernetes Dashboardの個人的な所感 • Kubernetes Dashboard用(GUIサーバ) Podをk8sクラスタ内に立てる必要あり • 閲覧専用と思いきや、簡易(限定)的なk8sリソース作成も可能 • k8sリポジトリ(プロジェクト)直下のGUIツールというお墨付き? ※kubernetes Dashboard自体がセキュリティホールになる可能性が あるので使わない方が良いと言っている人達もいる

Slide 8

Slide 8 text

マスター タイトルの書式設定 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/)

Slide 9

Slide 9 text

マスター タイトルの書式設定 8 Kubernetes Dashboard > 簡易的にWorkload作成 ↑ ・簡易なworkloadはGUIでk8sリソース作成が可能 ・yamlファイルをアップロードしてk8sリソース作成も可能

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

マスター タイトルの書式設定 OCTANT 10  OCTANTの個人的な所感、目に留まった機能  Pod Log確認  Pod Shell操作  Context Switch ※kubeconfigの切り替え  Resource Viewer ※k8sリソースの相関を可視化  Plugin ※OCTANT GUIの拡張  etc • Proxy Setting • RBACによる認可制限はクセあり • **

Slide 12

Slide 12 text

マスター タイトルの書式設定 OCTANT > Pod Log確認 11 特定Podのログ ↓ OCTANT Version 0.14.1で試行 (2020年8月10日時点の最新) ←Light/Darkモードの切り替え

Slide 13

Slide 13 text

マスター タイトルの書式設定 OCTANT > Pod Shell操作 12 特定コンテナのTerminal操作 ↓

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

マスター タイトルの書式設定 OCTANT > Resource Viewer 14 ←Deployment ←ReplicaSet ←Pod ←SA、Secret ←Service サンプルアプリ (https://istio.io/latest/docs/examples/bookinfo/)

Slide 16

Slide 16 text

マスター タイトルの書式設定 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の表示例

Slide 17

Slide 17 text

マスター タイトルの書式設定 OCTANT > RBACによる認可制限はクセあり 16 ←RBACで閲覧制限をしていても 一通りの画面遷移は出来る ↑ ・実際はReplicaSetは存在していもRBACで閲覧制限をしている為、 表示されない。 ・k8sリソースが実在しないのか、RBAC権限で閲覧出来ないだけなの かの見分けがつかないので、RBAC制限は注意が必要。

Slide 18

Slide 18 text

マスター タイトルの書式設定 17 Lens

Slide 19

Slide 19 text

マスター タイトルの書式設定 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の統計機能が内蔵 • **

Slide 20

Slide 20 text

マスター タイトルの書式設定 19 ログのダウンロードも出来る ↓ Lens > Pod Log確認 Lens Version 3.5.2で試行 (2020年8月10日時点の最新) ←Darkモード表示(Lightモードも可)

Slide 21

Slide 21 text

マスター タイトルの書式設定 Lens > PodやNodeのShell、ローカルPCのTerminal操作 20 ↑ ・各PodやNodeのShell操作 ・ローカルPCのTerminal操作 ・タブ切替

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

マスター タイトルの書式設定 24 Lens > Helm Chartの操作 ↑ ・Helm ChartリストからInstall ・Helm Update/Downgrade/UnInstall可 ←Helm Repositoryを追加

Slide 26

Slide 26 text

マスター タイトルの書式設定 25 Lens > RBACによる認可制限はクセあり RBACで特定のdeploymentのみの閲覧のみに権限を絞った ↓ ←選択出来るWorkloadsが限定される ↑ Kubectl get deploymenで値の取得は出来る のだが、Lens UIでは表示出来ない

Slide 27

Slide 27 text

マスター タイトルの書式設定 まとめ 26 • k8sリソースの可視化、logs確認、shell操作で有効 • k8sリソースの作成、更新、削除で有効 • 開発・運用者向けのGUIツール (GUI自体のID認証機能は現時点で無いので) OCTANT Lens Kubernetes Dashboard • k8sリソースの可視化に割り切って利用 • 専用Pod作成やセキュリティホールのリスクを考慮 (使うにしても閉域NW内に限定したほうが良い)

Slide 28

Slide 28 text

マスター タイトルの書式設定 ご清聴ありがとうございました 27