Ubuntu Weekly Recipe

第670回 Kubernetes IDEであるLensをMicroK8sで使う

この記事を読むのに必要な時間:およそ 4 分

コンテナ管理基盤であるKubernetesは,kubectlコマンドを用いてCLIから操作したり,Kubernetes DashboardなどのWeb UIを使って操作し,管理することが一般的です。それに対して今回紹介するLensは,そんな複数のKubernetesクラスターを管理できるスタンドアローンのアプリケーションとなっています。そこで今回はMicroK8sでさくっと構築したKubernetesクラスターを,ローカルマシンにインストールしたLensで管理してみましょう。

MicroK8sでKubernetesクラスターを構築する

Lensを使うためにはまずKubernetesクラスターが必要です。もちろん既存のKubernetes環境でもかまわないのですが,まずは動作確認も兼ねてMicroK8sでシンプルな環境を構築してみても良いでしょう。もし既に存在するKubernetesを使いたい場合は,「Lensの初期設定」の項まで読み飛ばしてください。

MicroK8sはコマンドひとつでKubernetes環境を構築できる便利なソフトウェアです。Add-on機能によって,DashboardやCoreDNS,Multusといった利用頻度の高い機能だけでなく,KubeflowやCUDAを利用したコンテナなどの複雑な機能もコマンドひとつでセットアップできます。また,複数台のマシンにインストールすれば,Kubernetesクラスター化することも可能です。

動作環境としてUbuntuはもちろん,2020年6月にはWindowsやmacOSもサポート対象に追加されましたUbuntu Weekly Topics 2020年6月5日号⁠。非Linux環境の場合,Hyper-VやHyperKitを用いてLinux環境を構築した上で,そこにKubernetesをインストールします。これでそれなりのスペックを持ったマシンであれば,OSを問わずKubernetesをインストールできるようになったわけです。

そんなMicroK8sについては本連載でも何度か紹介しています。

今回は第641回のように,LXD上で構築した仮想マシン上にMicroK8sをインストールし,ホスト上からLensを利用して管理を試みます。もちろんホストに直接MicroK8sをインストールしても良いですし,MicroK8sを使わずに既に存在する別のKubernetes環境を利用してもかまいません。

LXDそのものの環境は構築済みであるとします※1⁠。また名前空間にまつわる権限等を考慮しなくて済むように,コンテナではなく仮想マシン版のインスタンスを作成します※2⁠。

※1
未構築の場合は第521回の入門システムコンテナマネージャーLXD 3.0などを参照してください。またLXDの仮想マシン対応については第609回のLXDからコンテナではなく仮想マシンを起動するにて詳しく解説しています。
※2
もしコンテナ上でMicroK8sを動かしてみたい場合は,公式ドキュメントのMicorK8s in LXDが参考になるでしょう。
$ lxc launch ubuntu:20.04 microk8s --vm -c limits.cpu=2 -c limits.memory=4GiB
$ lxc config device override microk8s root size=40GiB
$ lxc exec microk8s -- sed -i 's/archive.ubuntu/jp.archive.ubuntu/' /etc/apt/sources.list
$ lxc exec microk8s -- timedatectl set-timezone Asia/Tokyo
$ lxc exec microk8s -- sh -c 'apt update && apt full-upgrade -y'
$ lxc restart microk8s

上記でLXD側の準備は整いましたので,MicroK8sをインストールします。

$ lxc exec microk8s -- snap install microk8s --classic --channel=1.21
$ lxc exec microk8s -- microk8s status --wait-ready

これだけでKubernetes環境を構築できました。とても簡単ですね。今回はシングルノードで構築していますが,第641回では複数台のインスタンスでクラスターも構築しています。興味のある読者はそちらも参照してください。

LXDを用いずにホストに直接MicroK8sをインストールした場合は,lxc exec microk8s --の部分を省いて実行してください。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。