IT Blog

kubernetes ubuntu
Configuracion Documentacion servidores tutoriales

Instalando Kubernetes en Ubuntu Server

A continuación, te presentamos un tutorial paso a paso para instalar Kubernetes en Ubuntu Server.

Paso 1: Actualizar el sistema

Antes de comenzar la instalación, actualiza el sistema operativo Ubuntu a la última versión disponible con el siguiente comando:

sudo apt-get update && sudo apt-get upgrade -y

Paso 2: Deshabilitar el intercambio de memoria

Kubernetes requiere que el intercambio de memoria esté deshabilitado en los nodos del clúster, para esto ejecuta el siguiente comando para deshabilitar el intercambio de memoria:

sudo swapoff -a

Para desactivar la swap de forma permanente, edita el archivo /etc/fstab y comenta la línea que contiene el archivo de swap.

Paso 3: Instalar Docker

Kubernetes utiliza Docker como su contenedor de elección, por lo que debes instalar Docker en el servidor. Para hacerlo, ejecuta los siguientes comandos:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce -y

Paso 4: Añadir el repositorio de Kubernetes

Ahora, añade el repositorio de Kubernetes a tu sistema con los siguientes comandos:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Paso 5: Instalar kubelet, kubeadm y kubectl

Instala kubelet, kubeadm y kubectl con los siguientes comandos:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl

Paso 6: Inicializar Kubernetes

Ahora, inicializa Kubernetes en el servidor maestro con el siguiente comando:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Si les arroja un error como este:

[init] Using Kubernetes version: v1.26.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: time="2023-03-01T00:06:17Z" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

Realizamos lo siguiente:

 rm /etc/containerd/config.toml
 systemctl restart containerd

y volvemos a ejecutar el paso 6

Paso 7: Configurar kubectl

Para usar kubectl, debes configurar tu usuario y contexto. Para hacerlo, ejecuta los siguientes comandos:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Paso 8: Instalar una red de pods flannel

Ahora, instala una red de pods en Kubernetes con el siguiente comando:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Paso 9: Verificar el estado de Kubernetes

Verifica el estado de Kubernetes con el siguiente comando:

kubectl get pods --all-namespaces


NAMESPACE    NAME                                   READY     STATUS      RESTARTS     AGE
kube-flannel kube-flannel-ds-slgbd                  0/1       Init:0/2    0            8s
kube-system  coredns-787d4945fb-4rz46               0/1       Pending     0            109s
kube-system  coredns-787d4945fb-xn672               0/1       Pending     0            109s
kube-system  etcd-kubernetes                        1/1       Running     0            2m1s
kube-system  kube-apiserver-kubernetes              1/1       Running     0            2m1s
kube-system  kube-controller-manager-kubernetes     1/1       Running     0            2m1s
kube-system  kube-proxy-n4lkp                       1/1       Running     0            109s
kube-system  kube-scheduler-kubernetes              1/1       Running     0            2m1s

Paso 10: Configurar un nodo de trabajo

Si quieres agregar un nodo de trabajo al clúster, ejecuta el siguiente comando en el nodo de trabajo con el token que se generó en el paso 6:

sudo kubeadm join <IP_DEL_SERVIDOR_MAESTRO>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <CERT_HASH>

Algo como esto:

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.0.240:6443 --token 1i1afv.4ienmhsst4jspssj \
--discovery-token-ca-cert-hash sha256:bc657745c741d6b327883ebe91a77746d2455d7963021d957f446acaf4e10060

Siguiendo estos pasos, se debe poder configurar correctamente Kubernetes en Ubuntu Server.

Ejemplos de uso de Kubernates

  1. Escalado automático: Uno de los principales beneficios de Kubernetes es su capacidad para escalar automáticamente tus aplicaciones en función de la demanda. Por ejemplo, si tu aplicación experimenta un aumento en el tráfico, Kubernetes puede crear automáticamente nuevos contenedores para manejar la carga adicional. De esta manera, tu aplicación puede manejar cualquier cantidad de tráfico sin caerse o ralentizarse.
  2. Despliegue de aplicaciones: Kubernetes también facilita el despliegue de tus aplicaciones. Puedes utilizar Kubernetes para crear un conjunto de réplicas de tu aplicación y luego desplegarla en tu clúster. Kubernetes se encargará de distribuir las réplicas a través de tus nodos de clúster para garantizar la disponibilidad y el rendimiento de la aplicación.
  3. Actualización de aplicaciones: Kubernetes también facilita la actualización de tus aplicaciones. Puedes utilizar Kubernetes para crear una nueva versión de tu aplicación y, a continuación, desplegarla en tu clúster. Kubernetes se encargará de actualizar las réplicas de la aplicación de manera gradual para garantizar la disponibilidad continua de la aplicación.
  4. Administración de contenedores: Kubernetes también te permite administrar tus contenedores de manera centralizada. Puedes utilizar Kubernetes para crear y eliminar contenedores, así como para monitorizar su estado y rendimiento. Kubernetes también te permite configurar el almacenamiento, la red y otros recursos para tus contenedores.
  5. Entrega continua: Kubernetes también puede utilizarse como parte de una estrategia de entrega continua. Puedes utilizar Kubernetes para automatizar el proceso de creación, pruebas y despliegue de tu aplicación. Esto te permite entregar nuevas características y correcciones de errores a tus usuarios de manera más rápida y frecuente.

Estos son solo algunos ejemplos de uso de Kubernetes. Hay muchas más maneras de utilizar Kubernetes para administrar tus aplicaciones y contenedores en la nube.

Para cualquier consulta o sugerencia no duden en contactarnos.