/ HOWTO

MiniKube - Instalación.


En este post veremos como instalar MiniKube, un producto simple, con un solo nodo y que corre en modo local para probar Kubernetes.

Lógicamente nos estaremos perdiendo parte de la complejidad de Kubernetes, pero para aprender o para pruebas rápidas es un muy buen producto. Minikube corre como una máquina virtual sobre nuestro equipo real.

Usaremos un equipo real con Linux Xubuntu 19.04.

Luego debemos verificar la CPU y memoria RAM, debemos tener al menos 4 Cores y 4 gb RAM.

También debemos tener instalado un producto de Virtualización, en mi caso tengo instalado VirtualBox 6.0.4.

Desde una sesión BASH comenzamos la instalación, con paquetes que necesitará MiniKube, agregamos un repositorio

apt update
apt upgrade
apt install -y apt-transport-https
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
sudo cp minikube /usr/local/bin
rm minikube

Descarga una ISO de 142 megas al ponerse a funcionar y creará una máquina virtual llamada “minikube” con 2 Vcpu y 2 gb ram.

Este proceso lo deberemos ejecutar como un usuario del S.O. y no hace falta ser “root”, la máquina virtual Virtualbox se creará en nuestra cuenta.

minikube start
😄  minikube v1.0.1 on linux (amd64)
🤹  Downloading Kubernetes v1.14.1 images in the background ...
🔥  Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
📶  "minikube" IP address is 192.168.99.100
🐳  Configuring Docker as the container runtime ...
🐳  Version of container runtime is 18.06.3-ce
⌛  Waiting for image downloads to complete ...
✨  Preparing Kubernetes environment ...
💾  Downloading kubeadm v1.14.1
💾  Downloading kubelet v1.14.1
🚜  Pulling images required by Kubernetes v1.14.1 ...
🚀  Launching Kubernetes v1.14.1 using kubeadm ... 
⌛  Waiting for pods: apiserver proxy etcd scheduler controller dns
🔑  Configuring cluster permissions ...
🤔  Verifying component health .....
💗  kubectl is now configured to use "minikube"
🏄  Done! Thank you for using minikube!

Luego para tener una interfaz gráfica deberemos correr.

minikube addons enable dashboard

minikube dashboard
🔌  Enabling dashboard ...
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:45305/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...

Si todo funciona bien, nos abrirá una página WEB en nuestro equipo Real desde donde podemos ver Kubernetes y sus componentes.

Veremos en Virtualbox los detalles de la máquina virtual.

Para detener ese equipo debemos hacerlo desde la interfaz BASH.

minikube stop
✋  Stopping "minikube" in virtualbox ...
🛑  "minikube" stopped.

La clave asignada a root es “tcuser”.

En nuestro caso este equipo virtual tiene el ip 192.168.99.100.

Aunque no la necesitamos ya que podemos conectarnos directamente al equipo virtual con “docker ssh”.

minikube ssh
                        _             _            
           _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

# Dentro del equipo podemos vereficar detalles del equipo virtual.


$ sudo su -
# uname -a
Linux minikube 4.15.0 #1 SMP Thu Apr 25 20:51:48 UTC 2019 x86_64 GNU/Linux

Miremos las unidades de almacenamiento del equipo virtual.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        927M     0  927M   0% /dev
tmpfs           996M     0  996M   0% /dev/shm
tmpfs           996M   17M  979M   2% /run
tmpfs           996M     0  996M   0% /sys/fs/cgroup
tmpfs           996M   52K  996M   1% /tmp
/dev/sda1        17G  1.3G   15G   8% /mnt/sda1
/hosthome       469G  284G  186G  61% /hosthome

Con “ifconfig” podremos ver las redes definidas.

# ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:0B:E6:F2:A5  
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::42:bff:fee6:f2a5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8695 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9371 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1593229 (1.5 MiB)  TX bytes:2732385 (2.6 MiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:8A:22:DC  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe8a:22dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:770753 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64022 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1140061067 (1.0 GiB)  TX bytes:4546750 (4.3 MiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:38:E0:4C  
          inet addr:192.168.99.100  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe38:e04c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:419 errors:0 dropped:0 overruns:0 frame:0
          TX packets:453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:56630 (55.3 KiB)  TX bytes:989565 (966.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:204995 errors:0 dropped:0 overruns:0 frame:0
          TX packets:204995 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:47520718 (45.3 MiB)  TX bytes:47520718 (45.3 MiB)

veth2c25c09 Link encap:Ethernet  HWaddr 5E:96:34:21:C2:26  
          inet6 addr: fe80::5c96:34ff:fe21:c226/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3558 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3789 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:294798 (287.8 KiB)  TX bytes:1114343 (1.0 MiB)

veth9f2c5d6 Link encap:Ethernet  HWaddr A6:AD:FE:2D:01:25  
          inet6 addr: fe80::a4ad:feff:fe2d:125/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3570 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3823 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:296092 (289.1 KiB)  TX bytes:1123798 (1.0 MiB)

vethd4275e0 Link encap:Ethernet  HWaddr 4E:0B:BD:0A:DC:05  
          inet6 addr: fe80::4c0b:bdff:fe0a:dc05/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1567 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1843 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1124069 (1.0 MiB)  TX bytes:500778 (489.0 KiB)

Mediante “top” podremos ver los procesos corriendo.

TOP
top - 16:47:35 up 33 min,  1 user,  load average: 0.03, 0.09, 0.09
Tasks: 184 total,   1 running, 183 sleeping,   0 stopped,   0 zombie
%Cpu0  :   3.4/2.1     5[|||                                                  ]
%Cpu1  :   2.1/1.4     3[||                                                   ]
GiB Mem : 26.3/1.9      [                                                     ]
GiB Swap:  0.0/0.0      [                                                     ]

  PID USER      PR  NI    VIRT    RES  %CPU  %MEM     TIME+ S COMMAND           
    1 root      20   0   37.1m   7.4m   0.0   0.4   0:18.00 S /sbin/init noemb+ 
 1312 root      20   0   52.0m   8.0m   0.0   0.4   0:00.74 S  `- /usr/lib/sys+ 
 1966 root      20   0   43.1m   4.9m   0.0   0.2   0:00.07 S  `- /usr/lib/sys+ 
 1970 systemd+  20   0   46.1m   4.8m   0.0   0.2   0:00.03 S  `- /usr/lib/sys+ 
 1982 systemd+  20   0   33.3m   3.8m   0.0   0.2   0:00.10 S  `- /usr/lib/sys+ 
 2001 root      20   0   12.9m   0.5m   0.0   0.0   0:00.00 S  `- /usr/sbin/rp+ 
 2010 root      20   0    9.0m   0.4m   0.0   0.0   0:00.00 S  `- /sbin/getty + 
 2016 dbus      20   0   22.1m   3.1m   0.0   0.2   0:00.17 S  `- /usr/bin/dbu+ 
 2019 root      20   0   19.3m   2.1m   0.0   0.1   0:00.00 S  `- /usr/bin/rpc+ 
 2023 root      20   0   27.7m   4.1m   0.0   0.2   0:00.08 S  `- /usr/lib/sys+ 
 2032 root      20   0  297.6m   2.8m   0.0   0.1   0:00.37 S  `- /usr/sbin/VB+ 
 2148 root      20   0   21.6m   4.3m   0.0   0.2   0:00.01 S  `- /usr/sbin/ss+ 
15228 root      20   0   21.6m   4.4m   0.0   0.2   0:00.00 S      `- sshd: do+ 
15230 docker    20   0   21.6m   2.8m   0.0   0.1   0:00.00 S          `- sshd+ 
15341 root      20   0   21.6m   4.2m   0.0   0.2   0:00.00 S      `- sshd: do+ 
15343 docker    20   0   21.6m   3.1m   0.0   0.2   0:00.00 S          `- sshd+ 

Veremos los contenedores corriendo.

docker stats
CONTAINER ID NAME                                       CPU %  MEM USAGE / LIMIT     MEM %  NET I/O             BLOCK I/O           PIDS
69f947f2a42b k8s_kube-addon-manager_kube-addon-manager- 0.00%  1.93MiB / 1.944GiB    0.10%  0B / 0B             0B / 0B             2
643908fd5b5d k8s_POD_kube-addon-manager-minikube_kube-s 0.00%  456KiB / 1.944GiB     0.02%  0B / 0B             0B / 0B             1
488fbf405d40 k8s_kube-controller-manager_kube-controlle 1.26%  37.83MiB / 1.944GiB   1.90%  0B / 0B             0B / 0B             9
57ef46a97ac5 k8s_POD_kube-controller-manager-minikube_k 0.00%  516KiB / 1.944GiB     0.03%  0B / 0B             0B / 0B             1
ea23b7c79190 k8s_coredns_coredns-fb8b8dccf-kc7cj_kube-s 0.26%  7.727MiB / 170MiB     4.55%  1.13MB / 300kB      0B / 0B             10
3567be0e2ecd k8s_storage-provisioner_storage-provisione 0.02%  13.68MiB / 1.944GiB   0.69%  0B / 0B             0B / 0B             8
f38a7f2fc1c2 k8s_coredns_coredns-fb8b8dccf-xx2gl_kube-s 0.24%  7.871MiB / 170MiB     4.63%  1.14MB / 301kB      0B / 0B             11
d8acfd332ae4 k8s_kubernetes-dashboard_kubernetes-dashbo 0.00%  14.97MiB / 1.944GiB   0.75%  503kB / 1.13MB      0B / 0B             9
d891ac9adf07 k8s_kube-proxy_kube-proxy-plmt7_kube-syste 0.06%  11.19MiB / 1.944GiB   0.56%  0B / 0B             0B / 0B             8
54984f2e04e8 k8s_POD_kube-proxy-plmt7_kube-system_353fe 0.00%  512KiB / 1.944GiB     0.03%  0B / 0B             0B / 0B             1
47f9a0729b68 k8s_POD_kubernetes-dashboard-79dd6bfc48-zh 0.00%  444KiB / 1.944GiB     0.02%  503kB / 1.13MB      0B / 0B             1
deac3685d898 k8s_POD_storage-provisioner_kube-system_f1 0.00%  376KiB / 1.944GiB     0.02%  0B / 0B             0B / 0B             1
cf68e6c999ee k8s_POD_coredns-fb8b8dccf-xx2gl_kube-syste 0.00%  488KiB / 1.944GiB     0.02%  1.14MB / 301kB      0B / 0B             1
2beccdc79ec1 k8s_POD_coredns-fb8b8dccf-kc7cj_kube-syste 0.00%  492KiB / 1.944GiB     0.02%  1.13MB / 300kB      0B / 0B             1
f449d28a680c k8s_kube-scheduler_kube-scheduler-minikube 0.17%  10.06MiB / 1.944GiB   0.51%  0B / 0B             0B / 0B             10
2dae1f39a5e0 k8s_kube-apiserver_kube-apiserver-minikube 2.58%  195.3MiB / 1.944GiB   9.81%  0B / 0B             0B / 0B             11
c220a26a8dcd k8s_etcd_etcd-minikube_kube-system_18c827a 1.45%  31.81MiB / 1.944GiB   1.60%  0B / 0B             0B / 0B             12
41c5e4511470 k8s_POD_etcd-minikube_kube-system_18c827a1 0.00%  336KiB / 1.944GiB     0.02%  0B / 0B             0B / 0B             1
4742ef8b02bd k8s_POD_kube-scheduler-minikube_kube-syste 0.00%  496KiB / 1.944GiB     0.02%  0B / 0B             0B / 0B             1
6a58cec61de0 k8s_POD_kube-apiserver-minikube_kube-syste 0.00%  484KiB / 1.944GiB     0.02%  0B / 0B             0B / 0B             1

Subscríbete y recibirás los últimos artículos semanalmente en tu email.