【Aprende un poco todos los días】Implementa en Docker-Compose
Debido a la implementación de microservicios de servicios y limitaciones de hardware, actualmente utilizamos Swarm como herramienta de orquestación de contenedores. Correspondiente al pod en k8s, existe el concepto de dab en swarm, es decir, un paquete de aplicación distribuida. Su uso aún no se ha explorado, ya que todavía es una característica experimental y no se ha cubierto aquí. , se realiza principalmente a través de docker-compose. El método yaml unifica la operación y el mantenimiento de múltiples microservicios.
El comando docker stack implementar lt; argsgt;
El comando en el sitio web oficial tiene los siguientes parámetros:
Dado que se utiliza el archivo docker-compose, se puede implementar directamente a través de compose-file, como el ejemplo en el sitio web oficial
Incluso puedes modificar la configuración en el archivo anterior superponiendo el archivo de redacción
Luego, echemos un vistazo a otros comandos opcionales:
espacio de nombres y kubeconfig son exclusivos de los comandos k8s, no explicaré demasiado aquí, solo mire los relacionados con el enjambre.
Actualmente, creo que el parámetro de eliminación es más crítico, ya que puede limpiar automáticamente algunos servicios caídos.
¿Cómo realizar la implementación del clúster a través del archivo de configuración docker-compose.yml?
En primer lugar, ¿necesita saber qué parte del archivo docker-compose corresponde principalmente a la operación? y requisitos de mantenimiento en swarm, la respuesta son las diversas configuraciones bajo el parámetro de implementación.
Veamos las configuraciones en la imagen de arriba una por una.
En primer lugar, veamos los parámetros marcados en la parte inferior que la implementación de la pila acoplable no admite para obtener más detalles. , consulte la imagen a continuación:
Incluso si los parámetros anteriores están incluidos en el yaml, se ignorarán al apilar. Por supuesto, también puede mantener estas configuraciones para docker-compose.
Este comando se introdujo en la versión 3.2. Se utiliza principalmente para especificar el método de descubrimiento de servicios para facilitar que los clientes externos se conecten al enjambre.
Incluye principalmente dos:
<. p> La etiqueta p>se utiliza en el servicio, no adjunta al contenedor del servicio.
Si desea adjuntarlo a todos los contenedores, defina etiquetas fuera de la implementación.
Se utiliza para especificar si se inicia en modo réplica (predeterminado) o en modo global, si es modo global. , similar al DaemonSet iniciado en k8s, iniciará solo un servicio en cada nodo.
Este parámetro es particularmente crítico durante la operación y el mantenimiento. Se utiliza principalmente para especificar la tolerancia y la preferencia. Esto también tiene un concepto correspondiente en k8s.
Entre ellos, la tolerancia incluye: <. /p >
En cuanto a preferencia, solo hay un parámetro, spread, cuyo valor de parámetro es el atributo del nodo, es decir, el contenido de la tabla de tolerancia.
Esta es una configuración agregada en 3.8.
Literalmente, significa controlar el número máximo de copias en cada nodo.
Se utiliza para especificar el número de copias. Solo tiene efecto cuando el modo es el modo de copia.
Este parámetro es particularmente crítico durante la operación y el mantenimiento, y se utiliza principalmente para limitar los recursos del servicio.
El límite se utiliza para limitar el número máximo de uso de recursos y la reserva es el uso mínimo de recursos.
Estrategia de reinicio
Añadida en la versión 3.7
Estrategia para especificar la reversión
Estrategia para especificar la actualización
Arriba .