LoginSignup
4
2

More than 3 years have passed since last update.

microk8s は まぁまぁだった件

Last updated at Posted at 2019-08-14

あることを試すために、kubernetes 環境を手軽に作る
方式はいろいろあるが、今回は microk8s にて試す。

  • On DigitalOcean Instance
  • Ubuntu 18.04.2 LTS
リソース スペック
Core 4
Memory 8GB
SSD 160GB

Setup

$ sudo snap install microk8s --classic
2019-08-07T22:52:29Z INFO Waiting for restart...
microk8s v1.15.2 from Canonical✓ installed
  • インストールは1,2分で完了
root@mk8s:~# kubectl get node -o wide
NAME   STATUS   ROLES    AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
mk8s   Ready    <none>   29m   v1.15.2   157.230.42.196   <none>        Ubuntu 18.04.2 LTS   4.15.0-52-generic   containerd://1.2.5
# snap info microk8s
name:      microk8s
summary:   Kubernetes for workstations and appliances
publisher: Canonical*
contact:   https://github.com/ubuntu/microk8s
license:   unset
description: |
  MicroK8s is a small, fast, secure, single node Kubernetes that installs on
  just about any Linux box. Use it for offline development, prototyping,
  testing, or use it on a VM as a small, cheap, reliable k8s for CI/CD. It's
  also a great k8s for appliances - develop your IoT apps for k8s and deploy
  them to MicroK8s on your boxes.

(略)
# microk8s.status
microk8s is running
addons:
knative: disabled
jaeger: disabled
fluentd: disabled
gpu: disabled
storage: disabled
registry: disabled
rbac: disabled
ingress: disabled
dns: disabled
metrics-server: disabled
linkerd: disabled
prometheus: disabled
istio: disabled
dashboard: disabled

microk8s.kubectl config view --raw > $HOME/.kube/config

  • アドオンで立ち上げられるサービスがいくつかあるよう。結構いろいろある。とりあえず、dns,dashboardあげてみる

# microk8s.enable dashboard
Applying manifest
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
service/monitoring-grafana created
service/monitoring-influxdb created
service/heapster created
deployment.extensions/monitoring-influxdb-grafana-v4 created
serviceaccount/heapster created
clusterrolebinding.rbac.authorization.k8s.io/heapster created
configmap/heapster-config created
configmap/eventer-config created
deployment.extensions/heapster-v1.5.2 created

If RBAC is not enabled access the dashboard using the default token retrieved with:

token=$(microk8s.kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s.kubectl -n kube-system describe secret $token

In an RBAC enabled setup (microk8s.enable RBAC) you need to create a user with restricted
permissions as shown in https://github.com/kubernetes/dashboard/wiki/Creating-sample-user
# microk8s.kubectl get pod -n kube-system
NAME                                              READY   STATUS    RESTARTS   AGE
heapster-v1.5.2-844b564688-vq9s9                  4/4     Running   0          4m19s
kubernetes-dashboard-7d75c474bb-n7crm             1/1     Running   0          5m24s
monitoring-influxdb-grafana-v4-6b6954958c-pp6xt   2/2     Running   0          5m23s

こんな感じ。マニフェストがapplyされているわけ。

毎度、microk8s.kubectlと打つのはかったるいので、エイリアス

# snap alias microk8s.kubectl kubectl
Added:
  - microk8s.kubectl as kubectl

おまけ

すべての Add-ons を enable にしてみた

  • あげるときはいっぺんじゃなくて1つずつがよさそう
  • 機能がかぶるやつものあるので結構無理やり
  • GPU add-on はGPUでないので無理だった
  • knative のステータスは enabled にならなかった
    • CrashLoopBackOff な Pod がいくつか
  • 母艦の Memory は 8GB じゃたらなかったので、16GB(6Core)でやりなおした
    • 終わってみたらだいたい、11GB 消費してた
    • Install した直後は 500MB 程度の Memory 使用量
  • microk8s.reset でリセットするのもやたら時間がかかる(このスペックのインスタンスで15分~20分くらい)
    • しかも最後ハングった
    • それぞれの add-on でできあがった namespace が消えてない
    • microk8s.stop / start でもだめ
    • snap remove してから install してやって復活

結論としては、「使うやつだけ enabled にしましょう」。

Ref

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2