Lens Proを使ってGUI操作のみでKubernetes環境を構築しコンテナのイメージスキャンを実施してみよう #kubernetes #k8s #コンテナ #k0s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
LensはKubernetes環境を統合的に管理可能なデスクトップアプリケーションツールです。
現在リリースされているLens6は、無料版のLens Personalと有料版のLens Proの2つのモデルがあります。
Lens ProではLens Desktop Kubernetesという機能を使い、自分専用のKubernetes環境を作成・管理可能になりました。更にイメージスキャンがデフォルトで組み込まれており、コンテナ起動後即座に脆弱性診断が可能になっています。
本稿ではこのLens Desktop Kubernetesを用いて、コマンドラインを使わずGUI操作のみでPC上にKubernetes環境を構築し、コンテナイメージのスキャンにより脆弱性診断をおこなってみます。
環境
私のPCの環境・スペックは以下です。
OSエディション : Windows10 Pro
バージョン : 21H2
プロセッサ : Intel(R) Core(TM) i5-1035G7 CPU
メモリ : 16GB
LensドキュメントにLens Desktop Kubernetesを使う条件が記載されていました。
- Windows 10 version 2004以上 (Build 19041以上) or Windows 11
- WSL2がインストールされていること
- Hyper-Vがインストールされ有効になっていること
ドキュメントにHardware requirementsに関する記載があり、これはLensを動作させるのに最低限のスペックです。KubeadmでインストールできるKubernetes requirementsは満たしており、OSのバージョンとしては問題なく、WSL2インストールとHyper-Vを有効にしましたので、条件はクリアしていると判断しています。
Lensインストール
Lensの公式サイトから実行ファイルをダウンロードします。
自身のプラットフォームに応じた実行ファイルを選択します。ここでは私の環境に準じたインストーラであるWindows x64(.exe)をダウンロードして実行しました。セットアップの流れに応じてインストールが終わったらLensを起動します。
Lensを操作するにはLens IDを取得する必要があります。Lens IDを選択してActivateを選択します。
画面が遷移した後でCreate your Lens IDをクリックします。USERNAMEやPASSWORDなど必須項目を入力しLens IDを作成します。
無料版のLens Personalを使う場合はこの手続きだけで充分ですが、本稿ではLens Proの機能であるLens Desktop Kubernetesとイメージスキャンを使うのが目的なので、Lens Proへの更新が必要です。Lens Proには30日間のトライアルがあるのでそちらを利用してみます。
Lens IDを作成したあとでAdd Lens Subscriptionを押下します。以下画面からSTART 30-DAY FREE TRIALを選択してLens Proのトライアルを開始しました。
Lens Desktop Kubernetesを起動
Lens Proへの更新が完了したので、Kubernetes環境をUIの操作で作成してみます。
Lens Desktopを開いて画面右下の「LDK:Stopped」の部分をクリックしてSettingを選択します。
Enable Lens Desktop Kubernetes on this machineをONにして有効にします。Profile Nameにあるlens-vmのStartを選択しKubernetesクラスタを起動します。
StartingからRunningになるまで少し待ちます。Runningとなったら右上のEscを押して、[Catalog] (左上にある青いアイコン)- [CATEGORIES] - [Clusters]を見るとKubernetesクラスタ名であるLens Desktop Kubeが表示されます。
Connectを選択してクラスタへ接続します。
Connect後にLens Desktop KubeをクリックするとKubernetesクラスタの情報が見えるようになりました。
Terminalを選択するとコンソール画面が開きます。kubectlが自動でインストールされているのでkubectlを使っての操作も可能です。[kubectl get nodes]のVERSIONを見るとどうやらクラスタはk0sで作成されているようでした。
これでKubernetes環境構築が完了しました。GUI操作だけでクラスタの構築・起動ができる上にPodやDeploymentsなどKubernetesの各リソースが可視化されていますので、管理しやすい印象です。
イメージスキャン
Kubernetes環境を作成したので、コンテナを起動してイメージスキャンを実施してみます。
LensではHelmがデフォルトで使えるようになっていますので、試しにHelmからlogstashを作成します。
[Helm] - [Charts] からlogstashを検索しInstallをクリックします。
PodがRunningとなったのでこのPodのコンテナイメージに対してスキャンを実施してみます。
Scan Pod imagesを押すとスキャンが開始されます。
Imagesタブからスキャン状況を確認でき、以下はスキャン終了後の情報です。イメージにおけるCVEやSeverityなど脆弱性情報を確認することができます。
詳細な情報を得たい場合は、対象のCVE番号をクリックするとAqua Vulnerability Databaseが提供している脆弱性情報を閲覧できます。この仕組みがあるといちいち脆弱性情報を他のサイトへ探しに行く手間が無く、地味ながらもありがたい機能です。また自分のPCが開発環境になり、開発段階で脆弱性診断ができることはシフトレフトでの対処を掲げるコンテナセキュリティにおいてとても重要な実装と言えます。
まとめ
本稿ではLens Proの機能であるLens Desktop Kubernetesを用いて、GUI操作のみでKubernetes環境を作成してみました。次にHelmでコンテナを起動し、こちらもLens Proの機能であるイメージスキャンを実行して脆弱性のチェックをおこないました。
LensはKubernetesのためのIDEであり、開発環境からステージング、プロダクションまで幅広い環境で開発・運用が可能です。
オープンソースで世界中のエンジニアにより開発されていることから今後更に機能拡張されることが期待されます。現時点でも本稿では紹介しきれていない機能があります。先日、Docker Desktopの価格変更が発表されたことで、他の製品を検討されている方もいらっしゃると思います。投稿にあるようにLens ProではKubernetes環境を自身のPCに準備することができますので、ご興味持たれた方は是非Lens Proをお試し下さい。
Lensの概要資料はこちらからダウンロードできます。
Lens Proサブスクリプションの日本国内販売および、その他Mirantis製品に関するお問い合わせはこちらへ。