Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Minikube Gentoo/VirtualBox


Kubernetes es un sistema de automatización de despliegue, escalado y gestión de aplicaciones sobre contenedores. Se compone de muchas partes cada una de ellas concebida para un fín específico, todo esto implica una mayor complejidad pero si lo único que queremos es probar Kubernetes existe un alternativa llamada minikube.
Básicamente arrancaremos una máquina virtual de VirtualBox donde se instalará todo lo necesario para una infraestructura básica de Kubernetes.

Consultamos la versión estable actual de Kubernetes:

curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt
v1.12.2

Desenmascaramos dicha versión:

eix kubectl
* sys-cluster/kubectl
     Available versions:  ~1.9.8^t ~1.9.9^t 1.9.10^t ~1.9.11^t ~1.10.5^t ~1.10.9^t ~1.11.1^t ~1.11.2^t ~1.11.3^t ~1.11.4^t ~1.12.0^t ~1.12.2^t
     Homepage:            https://github.com/kubernetes/kubernetes https://kubernetes.io
     Description:         CLI to run commands against Kubernetes clusters
vi /etc/portage/package.accept_keywords/kubectl
sys-cluster/kubectl ~amd64

Procedemos con la instalación:

emerge -av sys-cluster/kubectl

Consultamos la última versión de minikube:

https://github.com/kubernetes/minikube/releases

Minikube v0.30.0

Desenmascaramos dicha versión:

eix minikube
* sys-cluster/minikube
     Available versions:  ~0.28.0^t ~0.28.0-r1^t ~0.28.1^t ~0.28.2^t ~0.29.0^t ~0.30.0^t {hardened libvirt}
     Homepage:            https://github.com/kubernetes/minikube https://kubernetes.io
     Description:         Single Node Kubernetes Cluster
vi /etc/portage/package.accept_keywords/minikube
sys-cluster/minikube ~amd64

Procedemos con la instalación:

emerge -av sys-cluster/minikube

Arrancamos minikube indicándole que utilice VirtualBox:

minikube start --vm-driver virtualbox

Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
Loading cached images from config file.

Comprobamos que ha arrancado una VM:

ps aux|grep minikube
kr0m      1151 65.2 13.4 3893184 2194372 ?     Sl   09:47   3:17 /usr/lib64/virtualbox/VBoxHeadless --comment minikube --startvm 9790dd5a-d299-4701-aeb6-ad4e18b6efd0 --vrde config

Creamos un CT en Kubernetes:

kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/hello-minikube created

Exponemos el servicio del CT:

kubectl expose deployment hello-minikube --type=NodePort
service/hello-minikube exposed

Listamos los CTs:

kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
hello-minikube-7c77b68cff-qzd4f   1/1     Running   0          1m

Obtenemos la URL del CT:

minikube service hello-minikube --url
http://192.168.99.100:32642

Realizamos una peticíón mediante curl:

curl $(minikube service hello-minikube --url)

Hostname: hello-minikube-7c77b68cff-qzd4f

Pod Information:
    -no pod information available-

Server values:
    server_version=nginx: 1.13.3 - lua: 10008

Request Information:
    client_address=172.17.0.1
    method=GET
    real path=/
    query=
    request_version=1.1
    request_scheme=http
    request_uri=http://192.168.99.100:8080/

Request Headers:
    accept=*/*
    host=192.168.99.100:32642
    user-agent=curl/7.61.1

Request Body:
    -no body in request-

Arrancamos el dashboard donde veremos información diversa sobre el cluster de Kubernetes:

minikube dashboard

Accedemos mediante navegador web a:

http://127.0.0.1:35391/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

Nos mostrará una interfaz tal que así:

Eliminamos el servicio:

kubectl delete services hello-minikube
service "hello-minikube" deleted

Eliminamos el CT:

kubectl delete deployment hello-minikube
deployment.extensions "hello-minikube" deleted

Paramos minikube:

minikube stop
Stopping local Kubernetes cluster...
Machine stopped.

Autor: Kr0m -- 22/11/2018 19:13:31