ちょっとKubernetesを触りたいときの手段は色々ありますが、microk8sも割と便利なので、簡単な使い方をまとめてみたいと思います。
インストール方法は簡単で、Ubuntuをインストールして sudo snap install microk8s --classic
を実行するだけです。バージョンを指定したい場合は sudo snap install microk8s --classic --channel=1.15/stable
のように指定します。現在、channelオプションを指定しない場合は1.16.0がデプロイされるようです。1.16.0にはいくつか問題があるのですが、1.16/betaで1.16.1が、1.16/edgeで1.16.2がリリースに向けて進行中なので、いずれ修正されるものと思います(なので、普段は1.15.5を使っています)。
microk8sにはアドオンというものがあって、コマンド1つでいろいろな機能をKubernetesに組み込んで使うことができるようです。 例えば以前、NVIDIA GPUとCUDAを使ってGPUコンテナーなんてものを試したことがあります。
NVIDIA GPUの実装とCUDA Driver、GPU Driverは導入済みである必要がありますが、これも割と短時間で簡単に構築できるのが魅力です。目的が本番利用ではなくてKubernetes PodでGPUを使いたいだけであれば、microk8sは割と良い選択肢である気がします(使わない時はmicrok8s.stop
しておけばいいので)。
microk8sでKubernetes Dashboardを使う
私がよく使うmicrok8sのセットアップ方法を例示してみます。コマンド3つで終了です。
$ sudo snap install microk8s --classic --channel=1.15/stable $ sudo microk8s.enable dashboard dns storage $ sudo usermod -a -G microk8s ubuntu
公式のドキュメントにもありますが、Kubeconfigは次の方法で出力することができます。
$ microk8s.kubectl config view --raw > /home/kubeconfig
このKubeconfigを確認すると「server: https://127.0.0.1:16443」と記述されている(元々1ノードKubernetesを簡単にセットアップできるツールな)ので、microk8sノードのIPアドレスに書き換えます。
あとはこのKubeconfigのファイルを手元の環境の ~/.kube/config
に書き込めばCLIでKubernetesノードにアクセスできます。
Kubernetes Dashboardを使うには次のように行います。
microk8sノードで実行
% microk8s.kubectl proxy &
手元環境で実行
% kubectl proxy &
このように実行したら、次のURLでアクセスします。
ただ、K8s 1.16からDashboardのエンドポイントが変わったようなので、注意が必要です。
kubectl proxy
を実行すると、手元の環境でブラウザーを使ってKubernetes Dashboardにアクセスできます。
ログインするには
次のようにコマンドを実行して表示されるkubernetes-dashboard-tokenのトークンキーを使うとアクセスできるようです。
$ microk8s.kubectl -n kube-system describe secret $(microk8s.kubectl -n kube-system get secret | grep kubernetes-dashboard-token | awk '{print $1}')
調べたトークンキーをコピペします。
「サインイン」ボタンをクリックするとアクセスできます。
microk8sはちょっとKubernetesを使いたい場合や、CI/CDのパーツの1つとしての利用したいとき、Kubernetesのバージョンによる挙動の違いなどを調べたいとき(例えばこういう時)に便利かなと思いました。