Tutoriales

Habilite la implementación automática y la configuración declarativa

Aplicador de Kube es un servicio que permite la implementación continua de objetos de Kubernetes mediante la aplicación de archivos de configuración declarativos desde un repositorio de Git a un clúster de Kubernetes.

kube-applier se ejecuta como un pod en el clúster y monitorea Git repositorio para garantizar que los objetos del clúster estén actualizados con los archivos de especificación relevantes (JSON o YAML) en el repositorio.

En el intervalo especificado, kube-applier realiza una «ejecución completa», emitiendo el comando kubectl apply para todos los archivos JSON y YAML en el repositorio.

Cuando se realiza una nueva confirmación en el repositorio, kube-applier realiza una «ejecución rápida» que solo emite el comando de aplicación para los archivos que han cambiado desde la última ejecución.

La ejecución rápida y la ejecución completa se procesan por separado y simultáneamente.

kube-applier proporciona una página de estado y proporciona métricas de seguimiento.

Exigir

configurar

Descargue el código fuente y cree la imagen del contenedor.

$ ve a github.com/box/kube-applier
$ cd $GOPATH/src/github.com/box/kube-applier
$ hacer contenedor

Debe insertar la imagen en el registro para hacer referencia a ella en la especificación del contenedor de Kubernetes.

uso

Especificaciones del contenedor

Recomendamos ejecutar kube-applier como una implementación (ver demostración/ por ejemplo, archivo YAML). Solo admitimos la ejecución de una réplica a la vez en este momento, por lo que si el nodo que sirve la réplica falla antes de reprogramar a otro nodo, la aplicación puede experimentar brechas.

importante: Los pods que contienen contenedores kube-applier deben generarse en un espacio de nombres que tenga acceso de escritura a todos los espacios de nombres en el servidor API (por ejemplo, kube-system).

Variable ambiental

requerido

Electivo


notas Los archivos de lista negra y lista blanca admiten comentarios de línea. Si el primer carácter que no es un espacio en blanco en la línea es #, la línea se ignorará.


Montar el repositorio de Git

Hay dos formas de montar un repositorio Git en el contenedor kube-applier.

Git-sync mantiene actualizados los directorios locales con los repositorios remotos. El directorio local reside en el volumen vacíoDir compartido, que está montado en los contenedores git-sync y kube-applier.

Consulte el repositorio de git-sync para la configuración y el uso.

Monte el repositorio de Git desde el directorio del host. Esto puede ser útil cuando desea que kube-applier aplique cambios a los objetos sin verificar el archivo de especificaciones modificado en el repositorio remoto.

«rollo»: [
{
“hostPath”: {
“path”:
},
“name”: “repo-volume”
}

]

¿Qué sucede si el contenido del repositorio local de Git cambia mientras se ejecuta kube-applier?

Si hay cambios en el archivo $REPO_PATH Durante una ejecución de kube-applier, estos cambios pueden reflejarse o no en esa ejecución, dependiendo de cuándo se realizaron los cambios.

en vista de $REPO_PATH Un directorio es o reside en un repositorio de Git, y lo más probable es que la mayoría de los cambios estén asociados con confirmaciones de Git. Por lo tanto, los cambios en medio de una ejecución pueden actualizar el hash de confirmación HEAD, lo que desencadenará otra ejecución tan pronto como finalice la ejecución actual (independientemente de si los cambios son válidos en la ejecución actual). Sin embargo, los cambios no relacionados con la nueva confirmación de Git no activarán la ejecución.

Si elimino un archivo de configuración, ¿kube-applier eliminará el objeto de Kubernetes asociado?

No.Si el archivo es de $REPO_PATH directorio, kube-applier ya no aplicará archivos, pero kube-applier no Elimina el objeto de clúster descrito por el archivo.Estos objetos deben limpiarse manualmente usando kubectl delete.

Función «Ejecución forzada»

En casos excepcionales, es posible que desee activar una ejecución de kube-applier sin verificar una confirmación o esperar la próxima ejecución programada (por ejemplo, algunos de sus archivos no se pueden aplicar debido a algunas condiciones de fondo en el clúster y ha corregido la última vez que se ejecutó). Esto se puede hacer a través del botón «Forzar ejecución» en la página de estado, que inicia la ejecución inmediatamente si no hay ninguna ejecución actualmente en curso, o pone en cola la ejecución para que comience después de que se complete la ejecución actual. Solo uno puede estar ejecutándose en la cola en un momento dado.

monitor

Interfaz de estado

kube-applier aloja una página de estado en un servidor web, que se sirve en la URL del punto final del servicio. La página de estado muestra información sobre ejecuciones recientes de aplicaciones, que incluyen:

La plantilla HTML para la página de estado se encuentra en templates/status.html, y static/ mantener activos adicionales.

índice

kube-applier usa Prometheus para las métricas. Las métricas se alojan en el servidor web en /metrics (la interfaz de usuario de estado es la página de índice). Además de las métricas predeterminadas de Prometheus, se incluyen las siguientes métricas personalizadas:

La API HTTP de Prometheus (consulte también la biblioteca Go) se puede utilizar para consultar el servidor de métricas.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba