Simplifique Kubernetes con Talos

Aprenda a utilizar Kubernetes de forma sencilla con Talos.

Traducido de Making Kubernetes Simple with Talos , autor Ritesh.

Este año, Kubernetes celebra su décimo aniversario con el lanzamiento de la versión 1.30.0, consolidando su posición como la plataforma en la nube preferida. Los clusters de Kubernetes autogestionados como EKS, GKS y AKS representan el 73% del total de clusters, siendo el 27% restante autogestionado, tal y como lo describe Dynatrace . La última década ha sido la era de la nube pública, pero debido al aumento de los costos, algunas empresas están tratando de encontrar un equilibrio con la nube híbrida. Según VMware , aproximadamente el 76% de las organizaciones utilizan actualmente múltiples nubes, una combinación de nubes públicas y privadas. Kubernetes nos permite crear niveles de nube privada y de múltiples nubes en el hardware de nuestra elección, y hacerlo de manera rentable sin comprometernos con una nube específica.

Si bien la adopción de Kubernetes continúa creciendo, persisten las preocupaciones sobre la rentabilidad, la confiabilidad y la seguridad. La transición de máquinas virtuales de Kubernetes a una infraestructura básica proporciona beneficios de rendimiento al eliminar la capa de hipervisor, simplificar los procesos de resolución de problemas y maximizar la disponibilidad de recursos para las aplicaciones. Una configuración básica brinda a las organizaciones control total sobre los componentes de hardware para una optimización personalizada para cargas de trabajo específicas. Con las prácticas de ingeniería adecuadas y la integración de Kubernetes, las organizaciones pueden lograr la paridad funcional con las ofertas de nube pública. Históricamente, ejecutar Kubernetes sin sistema operativo ha planteado desafíos debido a la complejidad operativa, particularmente en la gestión del ciclo de vida del clúster. Sin embargo, estos obstáculos se superaron con la introducción de Talos , que exploraremos más a fondo en este artículo.

Talos es un sistema operativo muy optimizado escrito en Golang. Talos está diseñado como un sistema operativo específico para el mantenimiento de clústeres de Kubernetes. Para que la infraestructura de Kubernetes sea más confiable, debemos asegurarnos de que cada nodo ejecute la misma versión del sistema operativo. Talos puede ayudarnos a mantener nuestra infraestructura de Kubernetes confiable y consistente agregando la filosofía inmutable sobre la que se basa Talos.

Talos siempre se ejecuta como una imagen de SquashFS, que es un sistema de archivos de solo lectura en Linux. El tamaño total de la imagen de Talos SquashFS es de aproximadamente 80 M. Talos omite intencionalmente componentes como systemd, utilidades GNU, paquetes de consola, bash o binarios SSH para minimizar la superficie de ataque y reducir la posibilidad de vulnerabilidades de seguridad. En cambio, se basa en una API moderna para gestionar las operaciones del sistema.

Talos contiene sólo lo que necesitas. En cambio, todo está gestionado por una API moderna. Talos está muy centrado en la idea de infraestructura inmutable.

¿Qué es la infraestructura inmutable?

Infraestructura inmutable Una vez que se implementa un sistema, no se pueden realizar cambios en él; este concepto se denomina infraestructura inmutable. Si se requiere un cambio en una infraestructura inmutable, se crea una nueva infraestructura con las modificaciones requeridas en lugar de cambiar la infraestructura existente. Tener una infraestructura inmutable hace que los entornos de preparación, preparación y producción sean más consistentes. Mantener la coherencia entre los nodos es primordial en la infraestructura básica de k8. En este tipo de infraestructura, nuestras aplicaciones están estrechamente acopladas al sistema operativo, lo cual es la desventaja de los sistemas inmutables.

Beneficios de usar Talos

  1. Talos mantiene la coherencia en todo el sistema y evita cualquier cambio de configuración. Talos llama a esto "previsibilidad".
  2. Talos tiene como objetivo hacer que la infraestructura de Kubernetes sea completamente inmutable, mejorando así la confiabilidad, la seguridad y la coherencia. Esto hace que Talos sea ideal para servidores bare metal que ejecutan Kubernetes.
  3. Talos está diseñado para ser inmutable, por lo que se ejecuta en RAM, no en disco. Debido a que Talos es una imagen de SquashFS, tiene menos puntos de escritura, que son de naturaleza efímera.
  4. Talos es muy seguro.
  5. Talos es un sistema operativo muy liviano con aproximadamente 12 archivos binarios, todos utilizados para ejecutar Kubernetes.
  6. Talos está impulsado por API.
  7. Talos sigue las recomendaciones dadas por KSPP (Kernel Self-Protection Project) - Documentación de KSPP

Ejemplo

Talos es excelente para clústeres de Kubernetes autoadministrados, pero plataformas como CIVO brindan soporte para implementar clústeres de Kubernetes utilizando Talos. A continuación se muestran algunos casos de uso para ejecutar Kubernetes con Talos.

1. Aplicaciones perimetrales:

Para administrar clústeres de dispositivos perimetrales a gran escala, Kubernetes es una de las mejores opciones, ya que no solo está diseñado para la orquestación de contenedores sino que también administra dispositivos perimetrales de manera eficiente. Para garantizar la confiabilidad y seguridad de las aplicaciones perimetrales, tenga un Kubernetes seguro y confiable

2. Kuberntes sobre metal desnudo:

El uso de Kubernetes en bare metal elimina abstracciones innecesarias y otorga a nuestras aplicaciones un control total del hardware. Talos es una excelente opción para implementar Kubernetes en servidores bare metal. Elimina la configuración y la resolución de problemas innecesarias y facilita la implementación de Kubernetes sin sistema operativo.

3. Cargas de trabajo de IA y aprendizaje automático:

Kubernetes demuestra ser una plataforma ideal para probar y entrenar nuevos modelos de aprendizaje automático, lo que permite una implementación perfecta en entornos de mayor escala. Mantener la coherencia en la implementación es fundamental para garantizar una implementación del modelo segura y estable. Talos desempeña un papel clave en este proceso al proporcionar un entorno consistente que permite un escalamiento confiable del modelo según la demanda.

arquitectura y Diseño

Talos Architecture consta de muchos componentes diferentes con interfaces gRPC definidas. La comunicación entre todos los componentes de Talos se produce a través de gRPC.

Partición del sistema de archivos Talos

  • EFI: almacena datos de arranque EFI.
  • BIOS: se utiliza para el arranque de segunda etapa de GRUB.
  • Arranque: se utiliza para el cargador de arranque, almacena initramfs y datos del kernel.
  • Meta: almacena metadatos sobre los nodos de Talos.
  • Estado: almacena la configuración de la máquina.
  • Efímero: montado en /var, utilizado para almacenar datos temporales.

El sistema de archivos de Talos tiene 3 capas:

  1. rootfs: es la capa central de squashfs de solo lectura. Luego monte Squashfs en la memoria como un dispositivo de bucle.
  2. tmpfs: este sistema de archivos se utiliza para necesidades específicas del tiempo de ejecución.
  3. sistema: Requerido para operaciones internas.

Por ejemplo, Talos escribirá en /system/etc/hosts y luego lo vinculará a /etc/hosts. Talos no permite escribir en /etc, sino sólo en partes específicas de /etc. /system se recrea completamente en cada arranque. Para lograr persistencia al inicio, Talos crea un sistema de archivos superpuesto. Kubernetes posee /var. Este directorio lo utiliza etcd para escribir datos. Agregamos la opción "--preserve" para evitar eliminar estos datos durante la actualización; solo se eliminarán cuando se actualice o reinicie la máquina.

componentes

talosctles una herramienta CLI para interactuar con todos los componentes de Talos. De manera similar a kubectlcómo usamos kube-api talosctlpara interactuar con apid.

  • apid: Talos está impulsado por API y apides responsable de proporcionar puntos finales de gRPC para interactuar con diferentes componentes. apidPresente en todos los nodos, incluido el plano de control.

arquitectura talos

  • mecanizado: Se encarga de procesar las solicitudes de API desde apid y realizar la gestión de recursos y controles.
  • Trustd: es un proceso demonio utilizado para establecer confianza en el sistema. Se utiliza para establecer confianza entre nodos.
  • udevd: se utiliza para configurar los enlaces necesarios en /dev.

Controladores y recursos

  • Recursos : Son similares a los recursos de Kubernetes, los recursos son de diferentes tipos y contienen metadatos como espacio de nombres, tipo, etc. Un recurso se identifica de forma única por su espacio de nombres. El recurso "Configuración de la máquina" refleja la configuración actual de la máquina.
  • Controlador : en Talos, los controladores se ejecutan como subprocesos. Un controlador puede gestionar varios tipos de recursos y cada tipo de recurso puede tener muchos recursos. Para evitar conflictos, solo un controlador es responsable de administrar un tipo de recurso específico en el espacio de nombres. Talos almacena los tipos de recursos definidos para el controlador en el metaespacio de nombres.

Manifestación

En este artículo, usaremos Docker para demostrar esta funcionalidad, ya que el hardware básico aún no está disponible. Suscríbase a nuestro blog, ya que planeamos cubrir cómo ejecutar Talos en bare metal en un artículo futuro. Aprenderemos cómo crear un clúster de Kubernetes usando Docker.

Configurar clústeres de Docker y Talos

requisitos previos

Antes de continuar, asegúrese de tener instalado el siguiente software:

Nota: Las versiones de la imagen ISO del sistema operativo talosctl y Talos deben ser las mismas. Para obtener más información, consulte la información de lanzamiento.

Mac:

brew install siderolabs/tap/talosctl

Linux:

wget https://github.com/siderolabs/talos/releases/download/v1.7.0/talosctl-linux-amd64
chmod +x talosctl-linux-amd64
./talosctl-linux-amd64
sudo mv ./talosctl-linux-amd64 /usr/local/bin

Instale un clúster de tres nodos usando Docker y talosctl. El siguiente comando creará un clúster de 3 nodos (plano de control, nodo de trabajador-1, nodo de trabajador-2).

talosctl cluster create --workers 2

Comprobemos el número de nodos creados y la información del sistema operativo.

kubectl get nodes -o wide
kubectl get node talos-default-worker-1 -o json | jq -r '.status.nodeInfo.osImage'

Limpiemos y eliminemos el clúster.

en conclusión

Talos desempeña un papel vital en la gestión de entornos de Kubernetes. Su sencillez simplifica enormemente la configuración de los clústeres de Kubernetes. La filosofía inmutable de Talos mejora enormemente la seguridad y la coherencia de la infraestructura.

Preguntas frecuentes

talos y k3s

No existe una comparación directa entre Talos y k3s. Sin embargo, al considerar implementar un clúster de Kubernetes, k3s requiere un sistema operativo y tiene otras dependencias que varían según el sistema operativo subyacente. El objetivo de Talos es ejecutar clústeres de Kubernetes utilizando su filosofía inmutable para mantener su seguridad y confiabilidad. Talos facilita la implementación de Kubernetes.

¿Qué binarios incluye Talos?

  • Los binarios en Talos initson responsables de ejecutar kubelet y el tiempo de ejecución del contenedor.
  • Containerd es el tiempo de ejecución de Talos, junto con runc.
  • Modprobe se utiliza para cargar módulos para ciertos binarios. Se pueden agregar módulos a Talos o podemos usar módulos prediseñados de Image Factory .
  • Para la gestión de volúmenes, utilice lvm.
  • udevd se utiliza para recopilar mensajes del kernel y pasarlos a otros sistemas.
  • Los binarios como xfs_repair se utilizan para reparar sistemas de archivos XFS.

¿Talos es gratuito?

Talos es un sistema operativo gratuito y de código abierto amparado por la Licencia Pública de Mozilla versión 2.0, que permite su uso comercial. Vea más información en el repositorio de Talos Github .

¿Por qué utilizar Talos?

Talos hace que los entornos de Kubernetes sean más seguros y confiables. Como todos sabemos, Talos es adecuado para sistemas distribuidos como Kubernetes. Si desea que su entorno Kubernetes sea más seguro y confiable, debe utilizar Talos.

¿Podemos ejecutar Talos sobre metal desnudo?

Talos es ideal si desea configurar Kubernetes sin sistema operativo. Estén atentos para aprender cómo implementar Talos en bare metal, suscríbase a nuestras publicaciones o contáctenos directamente para discutir el asunto más a fondo.

¿Quién proporciona soporte adicional para Talos?

Este artículo se publicó por primera vez en Yunyunzhongsheng ( https://yylives.cc/ ), todos son bienvenidos a visitarlo.

RustDesk suspende los servicios nacionales debido a un fraude desenfrenado Apple lanza el chip M4 Taobao (taobao.com) reinicia el trabajo de optimización de la versión web Los estudiantes de secundaria crean su propio lenguaje de programación de código abierto como regalo de mayoría de edad - Comentarios críticos de los internautas: Confiando en Defense Yunfeng renunció a Alibaba y planea producir en el futuro el destino para programadores de juegos independientes Visual Studio Code 1.89 lanza Java 17. Es la versión Java LTS más utilizada y tiene una participación de mercado de 70. % y Windows 11 continúa disminuyendo. Open Source Daily | Google apoya a Hongmeng para que se haga cargo; Rabbit R1 de código abierto respalda la ansiedad y las ambiciones de Microsoft Haier Electric;
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/6919515/blog/11105497
Recomendado
Clasificación