第3回 クラウド基盤mdxで構築したKubernetesクラスタを管理するツールLensの紹介
この記事について
こんにちは、東京大学鈴村研究室で、インフラエンジニアとしてお手伝いさせていただいています、福田と申します。
今回のこの記事では、Lensというツールを使って、クラウド基盤mdxで構築したKubenetes環境に接続し、GUIで簡単にKubernetesクラスタを管理するための方法について説明します。
それ以外の記事については、以下の記事一覧を参照ください。
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をダウンロードし、インストールを行います。
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サービスを立ち上げるための手順について説明しています。
気になる方は、下記の記事一覧を参照ください。
東京大学鈴村研究室について
Discussion