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の配置まで試してみる
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 の学習をしていきたいと思います。