DevOps en Los Libros
Credenciales Git
¿Que son las AppImages?
AppImage es un formato de paquete de software portátil para Linux sin necesidad de instalación. Es una imagen de disco que contiene una aplicación completa, que se ejecuta como un proceso y que no se instala en el sistema operativo host. Puede ser descargado y ejecutado como un archivo único sin necesidad de un instalador.
Como se usan ❓
Para usar una AppImage, descargue el archivo, haga clic con el botón derecho en él, vaya a Propiedades, haga clic en Permisos y marque la casilla Ejecutar. O desde la terminal:
chmod +x MiAppImage.AppImage
Luego, simplemente hacemos doble clic en la AppImage para ejecutarla.
Para mas comodidad tambien se puede hacer un alias
en el archivo .bashrc
o .zshrc
de la siguiente manera:
alias MiAppImage="./MiAppImage.AppImage"
Donde se consiguen ❓
Generalmente las vas a ver cuando vayas a descargar una app Linux con el formato .AppImage
. Tambien tenes paginas que hacen de repositorios comunitariamente como AppImageHub
Que sigue ❓
En su pagina oficial hay muchos recursos para aprender mas sobre ellas Sitio Oficial. Tambien aca hay un ejemplo personal de como crear una AppImage para un script de Python Repositorio
¿ Cómo se compone la arquitectura de Kubernetes ?
La arquitectura de Kubernetes es modular y escalable. Se compone de varios componentes que trabajan juntos para proporcionar un entorno de orquestación de contenedores altamente disponible y resistente a fallos. Los principales componentes de Kubernetes son los siguientes:
-
Master Node: es el nodo maestro del clúster Kubernetes y es responsable de la gestión del clúster en su conjunto. Incluye varios componentes, como el API Server, el Scheduler, el Controller Manager y el etcd.
-
API Server: es la interfaz que utilizan los usuarios y los componentes de Kubernetes para comunicarse con el clúster. Proporciona una API RESTful para crear, modificar y eliminar recursos en el clúster.
-
Scheduler: es responsable de programar los pods en los nodos del clúster. Se encarga de distribuir los pods a los nodos que tengan la capacidad necesaria para ejecutarlos.
-
Controller Manager: es responsable de garantizar que los recursos del clúster estén en el estado correcto en todo momento. Por ejemplo, se encarga de garantizar que haya el número correcto de réplicas de un pod en el clúster.
-
etcd: es un almacén de datos distribuido que se utiliza para almacenar y sincronizar el estado del clúster Kubernetes.
-
Node: es un servidor que ejecuta las aplicaciones y servicios en contenedores y que se une al clúster Kubernetes. Cada nodo tiene varios componentes, como el Kubelet, el kube-proxy y el container runtime.
-
Kubelet: es el agente que se ejecuta en cada nodo del clúster y es responsable de administrar los contenedores en ese nodo. Se encarga de asegurarse de que los pods se ejecuten correctamente y de comunicarse con el API Server para recibir órdenes.
-
kube-proxy: es responsable de gestionar la conectividad de red para los pods en el nodo. Configura las reglas de iptables para redirigir el tráfico de red hacia los pods adecuados.
-
Container runtime: es el motor que se utiliza para ejecutar los contenedores. Kubernetes es compatible con varios motores de contenedores, como Docker o Containerd.
-
En conjunto, estos componentes forman la arquitectura de Kubernetes, que es altamente escalable y resistente a fallos.
-
kubectl es una herramienta de línea de comandos utilizada para interactuar con clústeres de Kubernetes. Permite a los usuarios administrar recursos en el clúster.
El siguiente es un esquema que ejemplifica gráficamente lo explicado anteriormente:
¿ Que es Kubernetes ?
Kubernetes es un sistema de orquestación de contenedores que automatiza la implementación, el escalado y la administración de aplicaciones en contenedores. Fue desarrollado originalmente por Google y ahora es mantenido por la Cloud Native Computing Foundation (CNCF).
Kubernetes permite a los desarrolladores desplegar aplicaciones en contenedores en múltiples nodos de servidor y gestionar automáticamente su escalado y capacidad de recuperación. También proporciona una interfaz unificada para administrar y monitorear aplicaciones en un entorno de contenedor.
Además, Kubernetes ofrece características avanzadas, como la gestión de almacenamiento de datos, el balanceo de carga, la gestión de redes y la automatización de actualizaciones y despliegues de aplicaciones. Todo esto hace que Kubernetes sea una herramienta muy popular en el desarrollo de aplicaciones en contenedores y en la gestión de infraestructuras de TI a gran escala.