Enviado por admin el
En Linode desde hace un tiempo ofrecen el servicio de creación de un Kubernetes Cluster. Kubernetes es un sistema que permite la instalación, configuración y gestión de contenedores donde vamos a desarrollar nuestros servicios, por ejemplo, un servidor web. De esta forma podemos aislar los servicios que corren y volverlos independientes del servidor fisico/virtual donde está corriendo. Un ejemplo que se me ocurre, es correr un contenedor con una versión de Asterisk certificada y otro con la ultima versión de la rama 16. Con Kubernetes además el mucho más fácil la configuración de la escalabilidad horizontal y alta disponibilidad. Encuentran más características/ventajas en esta entrada de blog.
En este articulo veremos como configurarlo en Linode y como gestionarlo desde una MacBook Pro. Una vez en nuestra cuenta de Linode, en el menú de la derecha seleccionamos Kubernetes y en la pagina que aparece Add a Cluster.
En la nueva pagina escogemos un nombre, el centro de datos y la versión de Kubernetes que utilizaremos. Luego tenemos que añadir por lo menos 3 VPS para que se pueda crear el cluster:
Para terminar:
El Cluster empezará a crearse… Una vez que el proceso de creación haya terminado, tenemos que bajar el archivo de configuración que luego utilizaremos con kubectl, la aplicación que utilizaremos en el MacBook Pro para gestionar el Cluster:
Guardamos el contenido en un archivo de texto y abrimos una ventana terminal en el MacBook Pro (personalmente utilizo iTerm). Primero instalamos kubectl:
brew install kubernetes-cli
para conocer la versión instalada:
kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-16T00:04:31Z", GoVersion:"go1.14.4", Compiler:"gc", Platform:"darwin/amd64"
Luego pasamos a la configuración. Desde la carpeta Home del usuario creamos la carpeta .kube/configs que es donde se creará el archivo de texto descargado desde Linode; archivo que nos permitirá conectarnos al Kubernetes Cluster:
mkdir .kube
cd .kube
mkdir configs
Luego creamos el archivo:
nano configs/kubeconfig.yaml
donde copiamos el contenido completo del archivo descargado desde Linode. Guardamos los cambios y modificamos el archivo de perfil del usuario utilizado en el MAC:
cd ..
nano .profile
al final del archivo copiamos:
export KUBECONFIG="$KUBECONFIG:$HOME/.kube/config:$HOME/.kube/configs/kubeconfig.yaml"
Guardamos los cambios y recargamos la configuración del perfil:
source .profile
Ahora deberíamos poder acceder a nuestro Kubernetes Cluster. Lo podemos averiguar con el comando:
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* lke8465-ctx lke8465 lke8465-admin default
En este caso tenemos solamente un Cluster y es el que está actualmente seleccionado (asterisco presente bajo la columna CURRENT). Para obtener más información acerca del Cluster seleccionado:
kubectl cluster-info
Kubernetes master is running at https://74a51906-0ff4-4332-bf6f-6f6934dcfba1.cpc2-us-central.linodelke.n...
KubeDNS is running at https://74a51906-0ff4-4332-bf6f-6f6934dcfba1.cpc2-us-central.linodelke.n...
En el caso de dos o más Cluster, para seleccionar el Cluster que queremos utilizar:
kubectl config use-context lke8465-ctx
Switched to context "lke8465-ctx".
lke8645-ctx es el nombre del Cluster (aparece bajo la columna NAME como resultado del comando kubectl config get-contexts). El siguiente comando nos entrega la lista completa de los PODS activos en el Cluster, que todavía son solamente los predefinidos al crear el Cluster:
kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-75b995c787-pvt25 1/1 Running 1 93m
kube-system calico-node-62x4m 1/1 Running 0 92m
kube-system calico-node-l8frx 1/1 Running 0 92m
kube-system calico-node-vjwtv 1/1 Running 0 92m
kube-system coredns-6955765f44-hg8wc 1/1 Running 0 93m
kube-system coredns-6955765f44-qq9pc 1/1 Running 0 93m
kube-system csi-linode-controller-0 3/3 Running 0 93m
kube-system csi-linode-node-c8mp6 2/2 Running 0 91m
kube-system csi-linode-node-s872z 2/2 Running 0 91m
kube-system csi-linode-node-s8xtv 2/2 Running 0 91m
kube-system kube-proxy-b8g8p 1/1 Running 0 92m
kube-system kube-proxy-bb5jb 1/1 Running 0 92m
kube-system kube-proxy-srlkp 1/1 Running 0 92m
El Kubernetes Cluster y la consola para gestionarlo están listos. Quizás próximamente veremos como crear un contenedor.
Comentarios recientes