Kubernetes, instalación de addons

junio 28th, 2016 Posted by Sin categoría 0 thoughts on “Kubernetes, instalación de addons”

Seguimos con la serie de entradas investigando el desempeño de Kubernetes en cluster de servidores. Después de la instalación y configuración del cluster, con el nodo master y tres nodos workers, llega el turno de empezar a ver que posibilidades nos ofrece e instalar los addons disponibles.

Volvemos a la página de Github de Luxas, donde revisaremos ahora la parte de addons. Luxas nos ofrece cinco addons compilados para nuestro cluster:

  • DNS
  • Registry
  • Load Balancer
  • Dashboard
  • Monitorización

El primer addon para activar, recomiendo el Dashboard, esto se realiza de esta manera, desde el nodo master:

$ kube-config enable-addon dns

Este primer addon es el más inmediato, y no debería haber ningún problema. Si nos conectamos al nodo master http://ip_master:8080/ nos debe mostrar:

Captura de pantalla 2016-05-29 a las 0.43.54

Una representación muy visual. Es posible que si solo activáis este addon, la pantalla que os salga sea un cuadro con un texto para desplegar aplicaciones. El botón “+” de la esquina superior derecha os lleva al mismo sitio.

ui-dashboard-zerostate

Tenéis más información del Dashboard aquí.

Personalmente, he activado todos y jugado un poco con cada uno de ello. No lo he probado pero activar el último el DNS ayuda a que todo funcione mejor.

$ kube-config enable-addon registry
$ kube-config enable-addon heapster
$ kube-config enable-addon loadbalancer
$ kube-config enable-addon dns

En la dirección http://ip_master:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/dashboard/db/cluster, tenemos el monitor Grafana para revisar los nodos, consumo de CPU, etc… Es divertido de ver pero no aporta mucho.

Captura de pantalla 2016-05-29 a las 0.54.04

Más interesante es el monitor de cada nodo, que se activa por defecto en la dirección http://ip_nodo:4194/

Captura de pantalla 2016-05-29 a las 0.57.46 Captura de pantalla 2016-05-29 a las 0.57.58 Captura de pantalla 2016-05-29 a las 0.58.20

En cuanto al módulo Load Balancer, la única acción adicional a realizar en taggear un nodo como balanceador, evidentemente he taggeado el nodo master como balanceador para el resto:

$ kubectl label node ip_master role=loadbalancer

Con esta instrucción

$ kubectl describe no 192.168.1.8

Podemos ver información de todo del nodo:

$ kubectl describe no 192.168.1.8
Name:			192.168.1.8
Labels:			kubernetes.io/hostname=192.168.1.8,role=loadbalancer
CreationTimestamp:	Sun, 22 May 2016 22:21:03 +0200
Phase:
Conditions:
  Type		Status	LastHeartbeatTime			LastTransitionTime			Reason				Message
  ----		------	-----------------			------------------			------				-------
  OutOfDisk 	False 	Sun, 29 May 2016 01:05:50 +0200 	Sun, 29 May 2016 01:04:27 +0200 	KubeletHasSufficientDisk 	kubelet has sufficient disk space available
  Ready 	True 	Sun, 29 May 2016 01:05:50 +0200 	Sun, 29 May 2016 01:04:27 +0200 	KubeletReady 			kubelet is posting ready status
Addresses:	192.168.1.8,192.168.1.8
Capacity:
 cpu:		4
 memory:	947696Ki
 pods:		110
System Info:
 Machine ID:			e1f1b26c7e6e4d2bb421c3d638fc53b3
 System UUID:			e1f1b26c7e6e4d2bb421c3d638fc53b3
 Boot ID:			edf03a23-0e4f-431d-8c78-027990e64f98
 Kernel Version:		4.1.17-hypriotos-v7+
 OS Image:			Raspbian GNU/Linux 8 (jessie)
 Container Runtime Version:	docker://1.10.3
 Kubelet Version:		v1.2.0
 Kube-Proxy Version:		v1.2.0
ExternalID:			192.168.1.8
Non-terminated Pods:		(2 in total)
  Namespace			Name					CPU Requests	CPU Limits	Memory Requests	Memory Limits
  ---------			----					------------	----------	---------------	-------------
  default			k8s-master-192.168.1.8			0 (0%)		0 (0%)		0 (0%)		0 (0%)
  kube-system			service-loadbalancer-65uuz		0 (0%)		0 (0%)		0 (0%)		0 (0%)
Allocated resources:
  (Total limits may be over 100%, i.e., overcommitted. More info: http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md)
  CPU Requests	CPU Limits	Memory Requests	Memory Limits
  ------------	----------	---------------	-------------
  0 (0%)	0 (0%)		0 (0%)		0 (0%)
Events:
  FirstSeen	LastSeen	Count	From			SubobjectPath	Type		Reason			Message
  ---------	--------	-----	----			-------------	--------	------			-------
  6d		1m		1939	{controllermanager }			Normal		NodeNotReady		Node 192.168.1.8 status is now: NodeNotReady
  6d		1m		1966	{kubelet 192.168.1.8}			Normal		NodeHasSufficientDisk	Node 192.168.1.8 status is now: NodeHasSufficientDisk
  6d		1m		1957	{kubelet 192.168.1.8}			Normal		NodeReady		Node 192.168.1.8 status is now: NodeReady

Como podéis ver, el nodo master se ha etiquetado como loadbalancer.

El addon registry es bastante interesante porque te permite tener un repositorio local privado donde guardar las imágenes de contenedores de aplicaciones que vayamos generando. Pero para ello debemos realizar una acción puesto que la instalación del addon no termina de funcionar de forma correcta. Para ellos buscamos en la documentación oficial del addon, no en la de Luxas, si no en la de Kubernetes.

$ POD=$(kubectl get pods --namespace kube-system -l k8s-app=kube-registry \
            -o template --template '{{range .items}}{{.metadata.name}} {{.status.phase}}{{"\n"}}{{end}}' \
            | grep Running | head -1 | cut -f1 -d' ')

$ kubectl port-forward --namespace kube-system $POD 5000:5000 &

Con esto tendremos un cluster funcional, con todos los addons instalados y funcionando. Es hora de jugar.

¿Qué os esta pareciendo? Dejadlo en comentarios y hablamos. Volvemos a dar las gracias a Diego Barrio (@guili) por su ayuda en el camino.

Tags: , ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies