🎉

第3回 クラウド基盤mdxで構築したKubernetesクラスタを管理するツールLensの紹介

2025/03/09に公開

この記事について

こんにちは、東京大学鈴村研究室で、インフラエンジニアとしてお手伝いさせていただいています、福田と申します。

https://sites.google.com/view/toyolab/鈴村研究室概要

今回のこの記事では、Lensというツールを使って、クラウド基盤mdxで構築したKubenetes環境に接続し、GUIで簡単にKubernetesクラスタを管理するための方法について説明します。
https://k8slens.dev/

それ以外の記事については、以下の記事一覧を参照ください。
https://zenn.dev/suzumura_lab/articles/627b5063d6884d

Lensの設定方法

Kubeconfigの設定

Lensは、PC端末と踏み台サーバを経由したmaster nodeへのssh port fowardによって、Kubernetesクラスタに接続されます。
このため、まず、PC端末に、Kubernetes環境に接続するためのKubeconfigの設定をします。

Kubeconfigは踏み台サーバに存在するので、まずは踏み台サーバにssh接続します。
その際、ローカルPCからLensで接続するため、以下のコマンドで、予めmaster nodeへのport forwardの設定をしておきます。

eval `ssh-agent`
ssh-add ~/.ssh/mdx_access_key
ssh -L 6443:(master nodeのPrivate IPアドレス):6443 -A mdxuser@(踏み台サーバのGlobal IPアドレス)

Kubeconfigの設定は、~/.kube/config に存在するため、cat ~/.kube/configコマンドを実行し、ファイルの中身を表示し、表示されたテキストをターミナル上でコピーします。

$ cat ~/.kube/config

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    server: https://kube-master:6443
  name: k0s-cluster
contexts:
- context:
    cluster: k0s-cluster
    user: admin
  name: k0s-cluster
current-context: k0s-cluster
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    client-key-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

次に、PC端末で、~/.kube/configファイルを作成し、Vimエディタなどを用いて、ファイルを開き、上記のコピーしたKubeconfigの内容を貼り付けます。
このとき、踏み台サーバとのssh接続については、Lensの接続用に、切らずに接続したままにしておきます。

$ mkdir ~/.kube
$ vim ~/.kube/config

その際、server: https://kube-master:6443 となっている部分について、localマシンのport forwardによって接続するため、server: https://localhost:6443に修正します。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    server: https://localhost:6443 # ここの接続先を、localhostに修正
  name: k0s-cluster
contexts:
- context:
    cluster: k0s-cluster
    user: admin
  name: k0s-cluster
current-context: k0s-cluster
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    client-key-data: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

修正したファイルを保存します。

Lensのインストール

以下のサイトから、Lensをダウンロードし、インストールを行います。
https://k8slens.dev/download

Lensを起動し、必要なユーザー登録などを行います。

踏み台サーバとのssh portforward接続がない場合、以下のコマンドでssh接続します。

eval `ssh-agent`
ssh-add ~/.ssh/mdx_access_key
ssh -L 6443:(master nodeのPrivate IPアドレス):6443 -A mdxuser@(踏み台サーバのGlobal IPアドレス)

画面左側のNavigatorに対象のKubernetesクラスタが表示されるので、例えばnodeなどを選ぶと、構築したnodeの状態が確認できます。


Workloads → Deploymentsを選ぶと、デプロイ済みのDeploymentを確認できます。

更に、任意のDeploymentを選択すると、左側に詳細情報が表示され、ここから、ログの確認、再起動、削除、Sclale up/downなどが実行出来ます。


Workloads → Podsを選ぶと、デプロイ済みのPodを確認できます。

Deploymentと同様、任意のPodを選択すると、左側に詳細情報が表示され、ここから、ログの確認、削除、PodのShell起動などができます。


Kubernetesでは、設定情報がconfig mapに集約されており、設定変更をするため、config mapを編集する機会が非常に多いです。

Lensでは、左側のメニューにある、Config → Config Mapsから、このconfig mapの一覧が確認できます。

任意のconfig mapを選ぶと、左側に詳細情報が表示され、鉛筆マークをクリックすると、config mapの編集が可能です。


画面下部にあるTerminalでは、kubectlなど、Kubernetesに対して必要なコマンドを発行できます。


Lensには他にも色々な情報を閲覧、管理することができるので、左側のメニューから色々な項目を選択し、それぞれの情報を見てみると、勉強になると思います。

今回のまとめと次回について

今回は、Lensというツールを使って、構築したKubenetes環境に接続し、GUIで簡単にKubernetesクラスタを管理するための方法について説明しました。

次回は、mdx上で構築したKubernetesの上で、KNativeというライブラリをインストールし、KNativeの上で簡単にスケーラブルなWebサービスを立ち上げるための手順について説明しています。

気になる方は、下記の記事一覧を参照ください。
https://zenn.dev/suzumura_lab/articles/627b5063d6884d

東京大学鈴村研究室について

https://sites.google.com/view/toyolab/鈴村研究室概要

Discussion