LINUX

Cómo instalar Kubernetes en CoreOS en Vagrant

instalar kubernetes coreos
Anteriormente teníamos un artículo sobre la instalación de Kubernetes en CentOS y Ubuntu, y esta vez optamos por CoreOS. CoreOS container Linux es un sistema operativo que usa contenedores para todas las aplicaciones que le instalas y no tiene un administrador de paquetes como RPM o APT. Junto con Ubuntu y CentOS, es una de las plataformas populares para implementar Kubernetes. Vamos a configurar Kubernetes en CoreOS con Vagrant.

Instalación de dependencias

Necesitamos Virtual Box, Vagrant y Git como dependencias. Así que vamos a instalarlos. Tengo fedora en mi estación de trabajo, por lo que el comando sería el siguiente:

 sudo dnf install VirtualBox vagrant git

Para VirtualBox, necesitaría tener RMPfusion habilitado. Si está utilizando Ubuntu, debe escribir el siguiente comando

sudo apt install virtualbox vagrant git

El resto de esta guía es independiente de la distribución.

Cómo instalar kubectl

En nuestra máquina local, también necesitamos instalar kubectl, para administrar nuestro clúster que se creará como un conjunto de VM en Virtual Box. Utilice este comando para obtener kubectl 1.5.2, que es la versión más reciente en el momento de escribir este artículo.

curl -O https://storage.googleapis.com/kubernetes-release/release/v1.5.2/bin/linux/amd64/kubectl

A continuación, debemos agregar un bit ejecutable para el binario kubectl que acabamos de descargar

chmod +x kubectl

Y luego muévalo a algún directorio que esté en la ruta

sudo mv kubectl /usr/local/bin/kubectl

Sacando a relucir el clúster

A continuación, clonemos el repositorio que tiene un Vagrantfile que necesitamos para iniciar nuestro clúster.

git clone https://github.com/coreos/coreos-kubernetes.git

A continuación, vaya al subdirectorio que contiene Vagrantfile

cd coreos-kubernetes/multi-node/vagrant/

Allí necesitaremos usar la plantilla (que es config.rb.sample) para crear un archivo config.rb que vagabundo lee cuando abrimos el clúster.

cp config.rb.sample config.rb

Ahora, cuando hicimos eso, editámoslo.

nano config.rb

En el archivo, necesitamos descomentar algunas líneas.

$update_channel="alpha"

$controller_count=1
#$controller_vm_memory=512

$worker_count=3
#$worker_vm_memory=1024

$etcd_count=1
#$etcd_vm_memory=512

Si necesita más recursos para su aplicación, no dude en descomentar todas las líneas y aumentar los tamaños de RAM asignados. Sin embargo, asegúrese de que su estación de trabajo tenga suficiente RAM.

Después de eso, estamos listos para abrir el clúster.

vagrant up --provider=virtualbox

Esto puede llevar algún tiempo dependiendo de la velocidad de la conexión y E / S de su entierro. Cuando termine, necesitaremos configurar el contexto de kubectl para administrar nuestro clúster en las VM.

export KUBECONFIG="${KUBECONFIG}:$(pwd)/kubeconfig"

kubectl config use-context vagrant-multi

Una vez hecho esto, puede buscar nodos con el siguiente comando

kubectl get nodes

kubectl obtener nodos

Tenga en cuenta que en el primer intento, es posible que este comando no funcione. En su lugar, es posible que obtenga un error que diga que la conexión se rechaza y le pregunte si especificó el número de puerto correcto. Esto se debe a que Vagrant necesita tiempo para arrancar y conectar el clúster. Espere unos minutos y vuelva a intentarlo.

Implementar la aplicación

La implementación de aplicaciones en este clúster recién creado es sencilla. Usaremos la misma aplicación de tienda de calcetines que usamos para CentOS y Ubuntu.

kubectl create namespace sock-shop

El comando anterior creó un espacio de nombres de tienda de calcetines, y el siguiente comando instalará la aplicación:

kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true"

Ahora revisamos las vainas

[miki@latitude-e5470 vagrant]$ kubectl get pods
No resources found.

¿Que es esto? ¿Sin vainas? Bueno, por supuesto, no hay vainas cuando las ponemos todas en un espacio de nombres llamado sock-shop. Entonces este comando te dará vainas

kubectl get pods -n sock-shop

Hay muchos de ellos y es posible que deba esperar un tiempo para que se implementen.

Accediendo a la aplicación en su navegador

Se puede acceder a la aplicación desde su estación de trabajo utilizando cualquier navegador. Para eso, necesitamos saber la dirección IP de nuestro nodo maestro y el puerto que usa la aplicación. Primero llegamos con el comando ya conocido

[miki@latitude-e5470 vagrant]$ kubectl get nodes
NAME STATUS AGE
172.17.4.101 Ready,SchedulingDisabled 3h
172.17.4.201 Ready 3h
172.17.4.202 Ready 3h
172.17.4.203 Ready 3h

El primero es el maestro, por lo que la dirección que estoy buscando es 172.17.4.101. A esta dirección también necesitamos agregar el puerto del contenedor de front-end.

[miki@latitude-e5470 vagrant]$ kubectl describe svc front-end -n sock-shop
Name: front-end
Namespace: sock-shop
Labels: name=front-end
Selector: name=front-end
Type: NodePort
IP: 10.3.0.163
Port: <unset> 80/TCP
NodePort: <unset> 30001/TCP
Endpoints: 10.2.38.8:8079
Session Affinity: None
No events.

Es el puerto 30001 en mi caso. Entonces, la dirección que estamos buscando es http://172.17.4.101:30001

portada de la tienda de calcetines

Cómo quitar la aplicación del clúster

Si desea eliminar la aplicación del clúster, por ejemplo, para hacer espacio para una nueva aplicación, eso también se hace con bastante facilidad. Simplemente elimine el espacio de nombres donde colocamos la aplicación. Como esto

kubectl delete namespace sock-shop

Si desea eliminar todo el clúster y liberar la RAM de su estación de trabajo para algún trabajo nuevo, hágalo con el siguiente comando

[miki@latitude-e5470 vagrant]$ vagrant destroy -f

Conclusión

Hemos instalado con éxito Kubernetes en CoreOS con Vagrant, probamos la aplicación de prueba y limpiamos el entorno. Con hizo esto ahora para los 3 principales sistemas operativos utilizados para implementaciones de Kubernetes. Ubuntu, CentOS y en este artículo, CoreOS. Gracias por leer y que tengas un buen día.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar