Cómo configurar un clúster de Kubernetes K3s en Ubuntu 22.04
Cómo configurar un clúster de Kubernetes K3s en Ubuntu 22.04

Cómo configurar un clúster de Kubernetes K3s en Ubuntu 22.04

0 acciones
0
0
0
0

Cómo configurar un clúster de Kubernetes K3s en Ubuntu 22.04

Introducción

Kubernetes es una de las herramientas favoritas de la industria para la orquestación de contenedores. Sin embargo, configurar un clúster de Kubernetes desde cero puede ser una tarea abrumadora y requiere mucha configuración. Además, existen varias maneras de comenzar a configurar un clúster de Kubernetes, pero muchas de ellas pueden requerir mucho tiempo, a menos que se desee crear un clúster de producción.

Para simplificar la configuración de un clúster de Kubernetes y permitir su implementación en ubicaciones remotas con recursos limitados (lo que lo convierte en un buen candidato para la computación de borde), Rancher Labs desarrolló K3s. K3s es una distribución ligera de Kubernetes que permite instalar un clúster de Kubernetes con un binario pequeño en minutos.

En este tutorial, aprenderá cómo instalar K3s en Ubuntu y las opciones de configuración adicionales disponibles en K3s.

Requisitos previos

Para completar este tutorial, necesitarás:

Se ha configurado un servidor Ubuntu 22.04 con al menos 1 GB de RAM siguiendo la guía de configuración inicial del servidor Ubuntu 22.04.

Paso 1: Instalar K3s

En este paso, instalará la última versión de K3s en su máquina Ubuntu.

Si utiliza un inicio de sesión basado en contraseña, inicie sesión en su servidor como su usuario sudo (en este tutorial, será sammy) usando el siguiente comando:

$ ssh sammy@your_server_ip

سپس با استفاده از دستور زیر K3 را نصب کنید.

$ curl -sfL https://get.k3s.io | sh -

Se le pedirá que ingrese la contraseña de usuario para ejecutar el script.

Este comando usa curl para descargar el script ubicado en https://get.k3s.io y lo ejecuta canalizándolo a –sh. Tras ejecutar el script, la instalación del clúster de K3s comienza con las opciones de configuración predeterminadas que crean un clúster de Kubernetes de un solo nodo.

Obtendrás un resultado similar a este:

[secondary_label Output]

[INFO] Finding release for channel stable

[INFO] Using v1.27.7+k3s2 as release

[INFO] Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/sha256sum-amd64.txt

[INFO] Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.27.7+k3s2/k3s

[INFO] Verifying binary download

[INFO] Installing k3s to /usr/local/bin/k3s

[INFO] Skipping installation of SELinux RPM

[INFO] Creating /usr/local/bin/kubectl symlink to k3s

[INFO] Creating /usr/local/bin/crictl symlink to k3s

[INFO] Creating /usr/local/bin/ctr symlink to k3s

[INFO] Creating killall script /usr/local/bin/k3s-killall.sh

[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh

[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env

[INFO] systemd: Creating service file /etc/systemd/system/k3s.service

[INFO] systemd: Enabling k3s unit

Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.

[INFO] systemd: Starting k3s

...

La salida del script muestra los pasos del script de instalación para instalar e iniciar el clúster. A continuación, comprobará el estado del servicio K3s con systemctl para comprobar si se está ejecutando. Para ello, utilice el siguiente comando.

$ systemctl status k3s

Este comando muestra el estado como activo (en ejecución):

[secondary_label Output]

● k3s.service - Lightweight Kubernetes

Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)

Active: active (running) since Mon 2023-11-27 16:52:01 UTC; 19s ago

Docs: https://k3s.io

Process: 8396 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exi>

Process: 8398 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)

Process: 8399 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)

Main PID: 8400 (k3s-server)

Tasks: 20

Memory: 467.3M

CPU: 12.952s

CGroup: /system.slice/k3s.service

├─8400 "/usr/local/bin/k3s server"

└─8421 "containerd " "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

...

En este punto, ha instalado K3s en Ubuntu para crear un clúster de Kubernetes de un solo nodo. A continuación, revisará los objetos de Kubernetes predeterminados implementados en el clúster.

Paso 2: Revisar los objetos predeterminados de Kubernetes

En este paso, revisará los objetos de Kubernetes predeterminados que se implementaron después de instalar K3s.

Ejecute el siguiente comando para ver todos los objetos de Kubernetes implementados en el clúster en el espacio de nombres kube. kubectl se instala automáticamente durante la instalación de K3s y, por lo tanto, no requiere una instalación separada.

$ sudo kubectl get all -n kube-system

Obtendrás un resultado similar a este:

[secondary_label Output]

NAME                                         READY   STATUS      RESTARTS   AGE

pod/local-path-provisioner-957fdf8bc-t8vpx   1/1     Running     0          4m34s

pod/coredns-77ccd57875-4hrd9                 1/1     Running     0          4m34s

pod/helm-install-traefik-crd-j2sqs           0/1     Completed   0          4m34s

pod/helm-install-traefik-mvxhw               0/1     Completed   1          4m34s

pod/metrics-server-648b5df564-gqxcz          1/1     Running     0          4m34s

pod/svclb-traefik-18597fcd-2cf68             2/2     Running     0          4m6s

pod/traefik-768bdcdcdd-srb8d                 1/1     Running     0          4m7s



NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE

service/kube-dns         ClusterIP      10.43.0.10      <none>           53/UDP,53/TCP,9153/TCP       4m44s

service/metrics-server   ClusterIP      10.43.69.115    <none>           443/TCP                      4m43s

service/traefik          LoadBalancer   10.43.149.125   159.65.159.115   80:32266/TCP,443:32628/TCP   4m7s



NAME                                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE

daemonset.apps/svclb-traefik-18597fcd   1         1         1       1            1           <none>          4m7s



NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE

deployment.apps/local-path-provisioner   1/1     1            1           4m44s

deployment.apps/coredns                  1/1     1            1           4m44s

deployment.apps/metrics-server           1/1     1            1           4m44s

deployment.apps/traefik                  1/1     1            1           4m7s



NAME                                               DESIRED   CURRENT   READY   AGE

replicaset.apps/local-path-provisioner-957fdf8bc   1         1         1       4m34s

replicaset.apps/coredns-77ccd57875                 1         1         1       4m34s

replicaset.apps/metrics-server-648b5df564          1         1         1       4m34s

replicaset.apps/traefik-768bdcdcdd                 1         1         1       4m7s



NAME                                 COMPLETIONS   DURATION   AGE

job.batch/helm-install-traefik-crd   1/1           28s        4m41s

job.batch/helm-install-traefik       1/1           31s        4m41s



...
 

El resultado anterior muestra los distintos objetos implementados en el clúster de Kubernetes. Por ejemplo, hay cuatro implementaciones en ejecución: una para coredns, una para local-path-provisioner, una para metrics-server y una para traefik.

Si ejecuta el comando sin usar sudo, puede encontrar el siguiente error.

Output
WARN[0000] Unable to read /etc/rancher/k3s/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions

error: error loading config file "/etc/rancher/k3s/k3s.yaml": open /etc/rancher/k3s/k3s.yaml: permission denied

...

Para evitar requerir sudo al ejecutar comandos kubectl, cambie los permisos del archivo de configuración con chmod, como se muestra a continuación.

$ sudo chmod 644 /etc/rancher/k3s/k3s.yaml

En este punto, ha verificado el estado de los objetos de Kubernetes implementados en el clúster de K3s de forma predeterminada. A continuación, comprenderá y modificará las opciones de configuración de K3s durante la instalación.

Paso 3: Comprender y modificar las opciones de configuración en K3S

Instalaste K3s con la configuración predeterminada; sin embargo, puedes ajustar la configuración para lograr un comportamiento personalizado específico del clúster. En este paso, aprenderás a usar variables de entorno en K3 para configurar la configuración en el script de instalación.

Por ejemplo, la configuración predeterminada viene con la instalación del controlador de ingreso traefik; en algunos casos, es posible que desee deshabilitar el controlador de ingreso durante la instalación.

La variable de entorno INSTALL_K3S_EXEC permite pasar indicadores al servicio K3s. El siguiente comando permite deshabilitar traefik durante la instalación de K3.

$ curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -

Verifique los objetos de Kubernetes. Los recursos del controlador no existirán en este caso.

$ sudo kubectl get all -n kube-system

Además de modificar las opciones de configuración mediante variables de entorno, esto también se puede hacer en el archivo de configuración de K3s. Se pueden especificar las opciones necesarias en el archivo de configuración y, a continuación, reiniciar el servidor de K3s para que los cambios surtan efecto.

K3s utiliza el archivo de configuración ubicado en etc/rancher/k3s/config.yaml/.

Ejecute el siguiente comando para crear y escribir el archivo de configuración.

$ sudo nano /etc/rancher/k3s/config.yaml

Escriba lo siguiente en el archivo de configuración.

$ disable: traefik

Presione Ctrl+X para escribir y salir del archivo. La línea deshabilitada: traefik indica al servicio K3s que elimine los recursos asociados con la instalación de traefik.

Luego reinicie el servicio K3s usando el siguiente comando para aplicar los cambios.

$ sudo systemctl restart k3s

Ahora puede verificarlo enumerando todos los objetos de Kubernetes en el espacio de nombres del sistema kube. No debería haber recursos asociados a la instalación de traefik en este momento.

$ sudo kubectl get all -n kube-system

En este paso, aprendió a cambiar la configuración de K3s durante y después de la instalación. A continuación, eliminará el clúster de K3s para limpiar las máquinas virtuales.

Paso 4 – Desinstalar K3s

Para desinstalar K3S, debe ejecutar un script de shell llamado "usr/local/bin/k3s-uninstall.sh/". Este script se genera automáticamente tras la instalación de K3S y puede usarse para realizar una limpieza completa. Durante la desinstalación, se eliminan todas las herramientas de configuración y clúster de K3S creadas o instaladas durante la instalación.

Para eliminar K3, ejecute el siguiente comando:

$ /usr/local/bin/k3s-uninstall.sh

Confirme la desinstalación verificando el estado del servicio K3s usando el siguiente comando:

$ systemctl status k3s

Obtendrás un resultado similar a este:

[secondary_label Output]

Unit k3s.service could not be found.

Resultado

En este artículo, instaló un clúster de K3s en Ubuntu y comprendió las opciones de configuración disponibles en K3s y su mecanismo de uso. Ahora que ha configurado su clúster de Kubernetes, debería explorar los diferentes tipos de objetos y su funcionalidad en Kubernetes.

Deja una respuesta

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

También te puede gustar

Cómo instalar IBSng en CentOS 6/7

Tutorial de instalación de IBSng en CentOS 6/7. En este artículo se proporciona un tutorial de instalación de IBSng en CentOS 6/7 para ayudarle…