Microk8s


Microk8s is another lightweight k8s distribution - perfect for local tests, an interesting alternative to Minikube, k3s, and Kind.  Microk8s works smoothly in 42 flavors of Linux(Geek Moment: You know is the right answer when you see the number 42. LOL. ).  Microk8s has easy install and several interesting features like Local Storage, Dashboards, Metrics, DNS, Ingress, Istio and much more.

Zero Ops needed with a single k8s cluster done right. That's the marketing of microk8s. In practices, the product works very well but I found a bit slow(start and stop). However installing istio, is 1 command line away from happiness.  Microk8s supports several versions of Kubernetes from 1.10+ to 1.13+ right now(20/04/2019) - k8s is 1.14+.  If you are a hardcore Linux user you must try mcirok8s.




Running Microk8s on Ubuntu

Install microk8s on Ubuntu

We install microk8s with a single and simple command.

sudo snap install microk8s --classic

Info

Using info command we can get the avaliable commands and services.

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.
commands:
  - microk8s.config
  - microk8s.ctr
  - microk8s.disable
  - microk8s.enable
  - microk8s.inspect
  - microk8s.istioctl
  - microk8s.kubectl
  - microk8s.reset
  - microk8s.start
  - microk8s.status
  - microk8s.stop
services:
  microk8s.daemon-apiserver:          simple, disabled, inactive
  microk8s.daemon-apiserver-kicker:   simple, disabled, inactive
  microk8s.daemon-containerd:         simple, disabled, inactive
  microk8s.daemon-controller-manager: simple, disabled, inactive
  microk8s.daemon-etcd:               simple, disabled, inactive
  microk8s.daemon-kubelet:            simple, disabled, inactive
  microk8s.daemon-proxy:              simple, disabled, inactive
  microk8s.daemon-scheduler:          simple, disabled, inactive
snap-id:      EaXqgt1lyCaxKaQCU349mlodBkDCXRcg
tracking:     stable
refresh-date: 2 days ago, at 15:31 -03
channels:
  stable:         v1.14.1  2019-04-18 (522) 214MB classic
  candidate:      v1.14.1  2019-04-15 (522) 214MB classic
  beta:           v1.14.1  2019-04-15 (522) 214MB classic
  edge:           v1.14.1  2019-04-19 (542) 217MB classic
  1.14/stable:    v1.14.1  2019-04-18 (521) 214MB classic
  1.14/candidate: v1.14.1  2019-04-15 (521) 214MB classic
  1.14/beta:      v1.14.1  2019-04-15 (521) 214MB classic
  1.14/edge:      v1.14.1  2019-04-19 (541) 217MB classic
  1.13/stable:    v1.13.4  2019-04-17 (438) 229MB classic
  1.13/candidate: v1.13.5  2019-04-19 (526) 237MB classic
  1.13/beta:      v1.13.5  2019-04-19 (526) 237MB classic
  1.13/edge:      v1.13.5  2019-04-19 (526) 237MB classic
  1.12/stable:    v1.12.6  2019-04-19 (435) 251MB classic
  1.12/candidate: v1.12.7  2019-04-19 (534) 259MB classic
  1.12/beta:      v1.12.7  2019-04-19 (534) 259MB classic
  1.12/edge:      v1.12.7  2019-04-19 (534) 259MB classic
  1.11/stable:    v1.11.9  2019-04-10 (495) 252MB classic
  1.11/candidate: v1.11.9  2019-04-05 (495) 252MB classic
  1.11/beta:      v1.11.9  2019-04-05 (495) 252MB classic
  1.11/edge:      v1.11.9  2019-04-20 (545) 258MB classic
  1.10/stable:    v1.10.13 2019-02-25 (411) 200MB classic
  1.10/candidate: v1.10.13 2019-02-18 (411) 200MB classic
  1.10/beta:      v1.10.13 2019-02-18 (411) 200MB classic
  1.10/edge:      v1.10.13 2019-04-04 (506) 208MB classic
installed:        v1.14.1             (522) 214MB classic

Installing Istio and other components

just 1 line command :D

microk8s.enable dashboard registry istio

Using microk8s

microk8s.kubectl get all -n istio-system
NAME                                          READY   STATUS              RESTARTS   AGE
pod/grafana-5b5bb96d6d-rbw4n                  1/1     Running             2          8d
pod/istio-citadel-69694bd465-kdmsx            1/1     Running             2          8d
pod/istio-cleanup-secrets-pmn4w               0/1     Completed           0          8d
pod/istio-egressgateway-7c75dff4c-zbrjl       1/1     Running             5          7d23h
pod/istio-galley-6d6b7f9cdd-g795k             0/1     ContainerCreating   0          8d
pod/istio-ingressgateway-6857bc6b48-9tjvf     1/1     Running             5          7d23h
pod/istio-pilot-55d8dfc777-d6lpx              1/2     Running             12         7d23h
pod/istio-policy-579ccc84fb-nnxcp             2/2     Running             16         7d23h
pod/istio-sidecar-injector-56cdcffcd8-8v7sv   1/1     Running             0          8d
pod/istio-telemetry-95665d9f4-m8nkz           1/2     Running             16         7d23h
pod/istio-tracing-c8b67b59c-49hxp             1/1     Running             8          7d23h
pod/prometheus-578b7dcfdc-rkql8               1/1     Running             2          8d
pod/servicegraph-84f87799b5-b6pp4             0/1     Running             11         7d23h

NAME                             TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                                                                   AGE
service/grafana                  ClusterIP      10.152.183.49    <none>        3000/TCP                                                                                                                  8d
service/istio-citadel            ClusterIP      10.152.183.119   <none>        8060/TCP,9093/TCP                                                                                                         8d
service/istio-egressgateway      ClusterIP      10.152.183.181   <none>        80/TCP,443/TCP                                                                                                            8d
service/istio-galley             ClusterIP      10.152.183.193   <none>        443/TCP,9093/TCP                                                                                                          8d
service/istio-ingressgateway     LoadBalancer   10.152.183.4     <pending>     80:31380/TCP,443:31390/TCP,31400:31400/TCP,15011:30150/TCP,8060:30557/TCP,853:31943/TCP,15030:30547/TCP,15031:31496/TCP   8d
service/istio-pilot              ClusterIP      10.152.183.219   <none>        15010/TCP,15011/TCP,8080/TCP,9093/TCP                                                                                     8d
service/istio-policy             ClusterIP      10.152.183.51    <none>        9091/TCP,15004/TCP,9093/TCP                                                                                               8d
service/istio-sidecar-injector   ClusterIP      10.152.183.160   <none>        443/TCP                                                                                                                   8d
service/istio-telemetry          ClusterIP      10.152.183.234   <none>        9091/TCP,15004/TCP,9093/TCP,42422/TCP                                                                                     8d
service/jaeger-agent             ClusterIP      None             <none>        5775/UDP,6831/UDP,6832/UDP                                                                                                8d
service/jaeger-collector         ClusterIP      10.152.183.207   <none>        14267/TCP,14268/TCP                                                                                                       8d
service/jaeger-query             ClusterIP      10.152.183.206   <none>        16686/TCP                                                                                                                 8d
service/prometheus               ClusterIP      10.152.183.250   <none>        9090/TCP                                                                                                                  8d
service/servicegraph             ClusterIP      10.152.183.42    <none>        8088/TCP                                                                                                                  8d
service/tracing                  ClusterIP      10.152.183.35    <none>        80/TCP                                                                                                                    8d
service/zipkin                   ClusterIP      10.152.183.127   <none>        9411/TCP                                                                                                                  8d

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/grafana                  1/1     1            1           8d
deployment.apps/istio-citadel            1/1     1            1           8d
deployment.apps/istio-egressgateway      1/1     1            1           8d
deployment.apps/istio-galley             0/1     1            0           8d
deployment.apps/istio-ingressgateway     1/1     1            1           8d
deployment.apps/istio-pilot              0/1     1            0           8d
deployment.apps/istio-policy             0/1     1            0           8d
deployment.apps/istio-sidecar-injector   0/1     1            0           8d
deployment.apps/istio-telemetry          0/1     1            0           8d
deployment.apps/istio-tracing            1/1     1            1           8d
deployment.apps/prometheus               1/1     1            1           8d
deployment.apps/servicegraph             0/1     1            0           8d

NAME                                                DESIRED   CURRENT   READY   AGE
replicaset.apps/grafana-5b5bb96d6d                  1         1         1       8d
replicaset.apps/istio-citadel-69694bd465            1         1         1       8d
replicaset.apps/istio-egressgateway-7c75dff4c       1         1         1       8d
replicaset.apps/istio-galley-6d6b7f9cdd             1         1         0       8d
replicaset.apps/istio-ingressgateway-6857bc6b48     1         1         1       8d
replicaset.apps/istio-pilot-55d8dfc777              1         1         0       8d
replicaset.apps/istio-policy-579ccc84fb             1         1         0       8d
replicaset.apps/istio-sidecar-injector-56cdcffcd8   1         1         0       8d
replicaset.apps/istio-telemetry-95665d9f4           1         1         0       8d
replicaset.apps/istio-tracing-c8b67b59c             1         1         1       8d
replicaset.apps/prometheus-578b7dcfdc               1         1         1       8d
replicaset.apps/servicegraph-84f87799b5             1         1         0       8d

NAME                                                       REFERENCE                         TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/istio-egressgateway    Deployment/istio-egressgateway    <unknown>/80%   1         5         1          8d
horizontalpodautoscaler.autoscaling/istio-ingressgateway   Deployment/istio-ingressgateway   <unknown>/80%   1         5         1          8d
horizontalpodautoscaler.autoscaling/istio-pilot            Deployment/istio-pilot            <unknown>/80%   1         5         1          8d
horizontalpodautoscaler.autoscaling/istio-policy           Deployment/istio-policy           <unknown>/80%   1         5         1          8d
horizontalpodautoscaler.autoscaling/istio-telemetry        Deployment/istio-telemetry        <unknown>/80%   1         5         1          8d

NAME                                    COMPLETIONS   DURATION   AGE
job.batch/istio-cleanup-secrets         1/1           2m33s      8d
job.batch/istio-grafana-post-install    0/1           8d         8d
job.batch/istio-security-post-install   0/1           8d         8d

Start and Stop microk8s

sudo microk8s.stop
sudo microk8s.start
view raw microk8s.md hosted with ❤ by GitHub


Cheers,
Diego Pacheco

Popular posts from this blog

Having fun with Zig Language

C Unit Testing with Check

Cool Retro Terminal