Kubernetes

Arquitectura Kubernetes (I)

Existen herramientas para la creación automática de clusters de Kubernetes pero es interesante una vez que se tiene conocimiento de cómo funciona Kubernetes intentar crear un cluster manualmente y ver toda su arquitectura paso por paso. Vamos a crear un cluster con cinco nodos 3 master y 2 Workers. Master1             172.20.20.10 Master2            172.20.20.11 Master3            172.20.20.12 Nodo1               172.20.20.13 Nodo2              172.20.20.14 Todos los componentes de Kubernetes se comunican mediante certificados cifrados TLS. Por este motivo es necesario crear esos certificados. Podemos utilizar varias utilidades que nos permiten firmar certificados, las más conocidas open source son openssl y cfssl. En nuestro caso utilizaremos cfssl. Primeros configuraremos los nodos Master y mas tarde empezaremos con los Workers. Añadimos en /etc/hosts las direcciones de las maquinas: 172.20.20.10 master1 master1.scmsi.es 172.20.20.11 master2 master2.scmsi.es 172.20.20.12 master3 master3.scmsi.es El primer paso es generar una llave CA (certificate authority). Nos bajamos el software cfssl y lo dejamos en un directorio que creamos /usr/kubernetes

Una vez instaladas las herramientas modificamos el PATH en el profile: export PATH=$PATH/usr/kubernetes. Nos creamos un directorio por ejemplo ssl donde vamos a ir guardando los certificados Creamos una configuracion inicial para trabajar sobre ella. Se pueden definir varios perfiles, nosotros definiremos el perfil kubernetes: Después generamos un modelo de certificate signing request (CSR) que modificaremos con nuestros datos. Con este CSR un CA se puede crear un certificado. Mas información en https://kubernetes.io/docs/concepts/cluster-administration/certificates/ Generamos un certificado CA y una llave privada: gencert lleva a cabo todo el proceso de generar el certificado. Crea la llave privada,genera un CSR, envia el CSR al CA para ser firmado y devuelve el certificado firmado. Los copiamos en /etc/kubernetes/ssl A partir de aquí podemos ir instalando los componentes de kubernetes uno a uno. Todos los componentes los vamos a instalar en modo servicio Linux pero también se podrían instalar como containers. Para nuestro caso que es estudiar la arquitectura kubernetes nos daría igual mientras los conceptos estén claros. Instalación de ETCD Etcd es un almacenamiento distribuido de datos (key value). Al ser distribuido nos permite tener un cluster de maquinas en las que todas las maquinas se hace participes del almacenamiento. Kubernetes va a utilizar Etcd como almacenamiento del estado de cada parte del cluster. Etcd lo instalaremos en las tres máquinas que van a hacer de master. Con ello conseguiremos que la información este replicada y tendremos una Alta disponibilidad. Recomiendo estudiar el Algoritmo Ralf Consensus de ETCD para tener una vision mas general del funcionamiento de Etcd. Primero descargamos el software etcd, lo descomprimimos y copiamos los binarios a /usr/kubernetes Creamos el certficado la ip 172.20.20.10 habra que cambiarla en cada nodo master y tendremos que crear el certificado en cada master y copiarlo al directorio /etc/etcd/ssl En /etc/systemd/system creamos el fichero etcd.service Una vez que tengamos arrancados los servicios etcd ejecutamos este comando para ver que esta todo correcto: 369b8d6b2f82c8ee, started, master2, https://172.20.20.11:2380, https://172.20.20.11:2379 379bf444fd813ba7, started, master3, https://172.20.20.12:2380, https://172.20.20.12:2379 938f760c9f6e9155, started, master1, https://172.20.20.10:2380, https://172.20.20.10:2379 Para mas informacion https://coreos.com/etcd/docs/latest/op-guide/clustering.html En los siguientes Posts continuaremos con los demas componentes.

Author


Avatar