para mejorar la manera de desplegar OKD/OpenShift Carlos Camacho Red Hatter Ph.D. en Ingeniería Informática Ingeniero de Software Contribuidor OpenStack Investigando el ecosistema de k8s --- blog: www.anstack.com IRC (freenode): ccamacho slack (k8s): ccamacho GitHub: ccamacho Yo?
desplegar y configurar múltiples distribuciones de Kubernetes. La meta principal de KubeInit es tener una manera completamente automatizada de desplegar en una único comando una serie de arquitecturas preestablecidas. Sobre KubeInit KubeInit usa algunas de las mejores prácticas del ecosistema de OpenStack (TripleO) 4 OpenStack es un software de código abierto para la gestión de recursos en la nube, como cómputo, almacenamiento, y redes utilizando APIs. KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
investigación tuve la necesidad de definir un mecanismo para repetir de manera reproducible ciertos experimentos basados en OpenShift. Ciencia? Para demostrar su validez, un artículo científico debe proveer la suficiente evidencia de la reproducibilidad de sus resultados. - FIRE AND FORGET - Esta evidencia debe venir de poder replicar el experimento un número determinado de veces tal que el intervalo de confianza sea el esperado. KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
de investigación llamado Pystol. Submitted to: IEEE Transactions on Cloud Computing Status: Under review Title: Chaos as a Software Product Line - A platform for improving open hybrid-cloud systems resiliency KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
El logo se asemeja a un comic llamado Dragon Ball Z, donde acumulamos cierta cantidad de energía para liberarla en forma de nuestro comando de despliegue... La demo comienza ahora! KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
git clone https://github.com/Kubeinit/kubeinit.git cd kubeinit Ejecutar el playbook: time ansible-playbook \ --user root \ -v -i ./hosts/okd/inventory \ --become \ --become-user root \ ./playbooks/okd.yml KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
su distribución tripleo-upgrade tests de molecule os-migrate linters, tests unitarios, CI tripleo-validations validaciones basadas en componentes Reducir, Reusar, y Refactorizar del ecosistema de OpenStack. KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
FreeIPA NFS HAProxy Bind9 ... Validations KubeVirt Servicios soportados: • Host OS: CentOS/Fedora, Debian/Ubuntu • Drivers de infraestructura: Libvirt • Distribuciones de Kubernetes: OKD y K8s • Servicios externos: Bind9, HAProxy, Apache WS, Validations KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
• Basada en el Read the Docs Sphinx Theme. • Se renderiza automáticamente a partir de los roles y módulos del proyecto. • Se genera en cada merge. • Integrada en GitHub actions. KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
\ -e ansible_connection=local \ -e role_name=kubeinit-example Defaults Vars _skeleton_role_ Tasks Meta Molecule Docs KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
tests Linters • Basada en GitHub actions. • Se ejecutan en cada [push|pull_request]. • Resultados en 2 - 4 minutes. • Todo el código está cubierto: ◦ Ansible automation (funcional): Molecule ◦ Módulos de Python: Unit test ◦ Estilos: Linters ◦ Documentación: Build test KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
en una instancia de GitLab (runner). • Bajo demanda. 1. Dos scripts: ci/launch_e2e.py & ci/run.sh 2. Un check verifica los tags al ejecutar launch_e2e.py cada ~15 minutes. 3. Si hay un PR que haga match con el tag, entonces: a. Se configura el job. b. Se ejecuta el job. c. Se escriben de vuelta los resultados. Cómo funciona? KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
verificaciones pre despliegue. ◦ Ejecutar verificaciones post despliegue. • Examples: ◦ Disponibilidad de RAM. ◦ Disponibilidad de disco. ◦ Verificación de nodos. ◦ Probar despliegue de aplicaciones. KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
IN A 10.0.0.100 *.apps.watata.kubeinit.local. IN A 10.0.0.100 console-openshift-console.apps.watata.kubeinit.local. IN A 10.0.0.100 oauth-openshift.apps.watata.kubeinit.local. IN A 10.0.0.100 KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
enruta de manera directa • openshift-api-server (port 6443) • machine-config-server (port 22623) • ingress-http (port 80) • ingress-https (port 443) KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
en el cluster debe ser mediante el API nativo de K8s. Actualmente: KubeVirt KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
y contribuir creando issues o probar la herramienta. • Agregar otras distribuciones como K8s. • Despliegues desconectados (WIP). • Mejorar la cobertura de los tests. • Refactor de los roles. • Ejecutar los playbooks desde contenedores. • Modo push -> modo PR. Siguientes pasos? Integración con otros servicios como, FreeIPA KubeInit: Buenas prácticas del ecosistema de OpenStack para mejorar la manera de desplegar OKD/OpenShift
necesiten manténganse en contacto! :) Preguntas? Donde mirar: www.kubeinit.com docs.kubeinit.com https://github.com/kubeinit IRC (freenode): #kubeinit 28 Si les ha gustado la presentación, pueden ayudar siguiendo el proyecto con una estrella en GitHub! https://github.com/kubeinit/kubeinit blog: www.anstack.com IRC (freenode): ccamacho slack (k8s): ccamacho GitHub: ccamacho