VPSに microk8s を導入する

2019-06-02 03:00:00
Kubernetes

このエントリーをはてなブックマークに追加 Tweet

VPSに microk8s を導入する

さくらのVPSサーバに学習用にkubernetesを導入していきます。
以前 minikube を導入する記事を書きましたが、今回は microk8s を導入していきます。
以前の minikube についての記事はこちら: VPSにminikubeを入れて失敗した話 | mintsu's blog

目次

環境

VPSサーバ さくらのVPS 1Gプラン
メモリ 1G
HDD 100GB
CPU 仮想2Core
OS Ubuntu 16.04.6

準備

snap のインストール

参考: Installing snap on Ubuntu - Snap documentation

snapdのインストール

$ sudo apt update
$ sudo apt install snapd

microk8s をインストールする

参考: MicroK8s - Fast, Light, Upstream Developer Kubernetes

インストール

$ sudo snap install microk8s --classic

過去のリリースバージョンの確認や、別のバージョンに切り替えたいときは、こちらのコマンドでリリース済みのバージョンを確認できます

$ snap info microk8s

これは snap の機能になりますが、切り替えるには下記のように refresh で切り替えることができるようです。

$ sudo snap refresh --channel=1.15/beta microk8s

動作確認

microk8s の起動

$ sudo microk8s.start

確認

$ sudo microk8s.status

microk8s is running と表示されていればOKです

バージョン確認

$ microk8s.kubectl version

毎回 microk8s.kubectl と打つのは大変なので kubectlで実行できるようにします。

$ sudo snap alias microk8s.kubectl kubectl

podの配置まで試してみる

参考: Tutorials - Kubernetes

deploymentの作成

$ kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080

起動したpodを確認

$ kubectl get pods

# 例
# $ kubectl get pods
# NAME                                  READY   STATUS    RESTARTS   AGE
# kubernetes-bootcamp-b94cb9bff-bb8fl   1/1     Running   0          30s

例のようにSTATUSがRunnningになればOKです

pod のアプリケーションをcurlで叩いてみる

kubectl exec -ti $POD_NAME bash
curl localhost:8080
exit

curl localhost:8080のときに下記のような実行結果が出ます

Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-b94cb9bff-bb8fl | v=1

アプリケーションが動くところまでは確認できました.
サーバーの load も上がっておらず学習用途には使うことができそうです。

まとめ

  • snap を使って簡単に microk8s を導入可能
  • さくらのVPS1Gのスペックで動作可能
  • microk8s なら minikube よりも快適

VPSにminikubeを入れて失敗した話 | mintsu's blog
以前 minikube をVPSを入れたときには動作が重くて使い物にならない状態でしたが、microk8sのほうが軽量なのか、 2vCPU, 1G のスペックのVPSでも問題なく動かすことができました。
また、snapで簡単にインストールできるため、導入も非常に簡単に導入ができました

記事に具体的には書いていませんが、microk8s を使うとアドオンとして istioなども簡単に導入できそうです。

今後は microk8s を使って kubernetes の学習をしていきたいと思います。