‫Algunos de los comandos que ha estado utilizando hasta ahora tienen un poco de automatización detrás de ellos, conocidos como generadores
‫y generadores que puede imaginar como plantillas.
‫Básicamente, crean la especificación o la especificación para aplicar al clúster de remolinos cubanos en función de las opciones de
‫la línea de comandos.
‫Entonces piensas en comandos como ejecutar, exponer y crear.
‫A menudo tendrán generadores detrás de ellos que brindan la plantilla necesaria con todos los campos y los valores predeterminados
‫que no necesariamente está especificando en la línea de comando.
‫Esencialmente, el objetivo de estos generadores es facilitarle el uso de comandos de una línea como solía
‫hacerlo con una composición y un enjambre cada vez más oscuros para usar esos comandos de una línea en
‫remolinos cubanos mientras deja algunas de las configuraciones más avanzadas los valores predeterminados y realmente enjambre hace esto enjambre
‫tiene muchos valores predeterminados cuando crea servicios y pilas que están sucediendo en segundo plano, no
‫lo sabe.
‫Entonces estos generadores son así.
‫Aquí hay un ejemplo en el que estamos creando una implementación con el comando create y
‫le estamos dando un par de opciones para cumplir con los requisitos mínimos y completará el resto de la especificación con
‫un generador.
‫Ahora estos generadores son diferentes para cada tipo de cosa que está creando, ya sea un servicio o
‫una implementación, un trabajo o un trabajo cron.
‫Otros temas de los que hablaremos más adelante y esos generadores pueden cambiar con el tiempo, ya que cada
‫versión de las comunidades sale y podrían cambiar una o dos propiedades de esa especificación.
‫Y, por lo tanto, estas tienen versiones a veces, si han visto en la documentación, pueden ver algo de Yama
‫para entidades cubanas y dice algo sobre BDA.
‫Bueno, eso es a menudo cuando se crea un generador por primera vez, podría tener una versión beta y luego, a medida que
‫se gradúe a un generador maduro, tendrá un v1.
‫Ahora realmente no podemos obtener una lista de generadores en la línea de comando porque abarca diferentes
‫comandos y diferentes opciones de los generadores que podrían usarse.
‫Entonces, la manera más fácil aquí a través de todos estos comandos diferentes para ver qué se
‫generaría si escribiera ese comando en un clúster es usar dos opciones.
‫La ejecución en seco, que es una forma realmente ordenada de mostrar la salida de lo que escribió, lo
‫veremos en un segundo y luego el guión 0, que significa salida y estamos diciendo que queremos una salida en
‫Yemen, así que estamos esencialmente diciendo ejecutar este comando pero técnicamente no lo haga en el clúster, simplemente
‫pruébelo para ver qué sucedería si lo hiciera y, al mismo tiempo, muéstreme la salida de Yamato de lo que
‫se generaría si termino este comando y usted Obtendrá pequeñas plantillas bonitas esencialmente e incluso
‫puede usarlas para comenzar a crear su propia demostración que usaremos en conferencias posteriores y finalmente en generadores aquí.
‫También podría considerarlos valores predeterminados obstinados.
‫Realmente no son obstinados, son súper pequeños.
‫Por lo general, son de 10 a 15 líneas de UML, el mínimo para comenzar.
‫Sin embargo, tienen opiniones, por eso tienen versiones y es posible que veas una versión beta graduada
‫y otras cosas.
‫Así que los considero obstinados, pero están bien, van a funcionar para la mayoría de los casos de uso cuando solo
‫estás probando cosas para la prueba de Devin.
‫Veamos un par de ejemplos para ver estos generadores en la línea de comando.
‫El primero aquí es un despliegue como el que usamos antes del despliegue de
‫creación y notarás que pongo la ejecución en seco del tablero de instrumentos al final y si solo haces una ejecución en seco, solo escupirá el
‫tipo de recurso crearía.
‫Entonces, esto es similar al nombre del recurso que vemos cuando lo enumeramos con un comando get de control de cubo.
‫Pero si presiono la flecha hacia arriba y escribo dash o yam todo al final, me mostrará la salida de Yemen
‫que generó con ese comando y revisaremos todas las especificaciones de Yemen más tarde, pero por ahora puede ver
‫el partes principales de lo que se hizo en segundo plano cuando creamos ese comando
‫de implementación.
‫Primero, muestra la versión API de la versión de este tipo de recurso, por lo que estamos usando una versión de barra diagonal de
‫aplicaciones 1 aquí.
‫El tipo es la implementación y es porque estamos creando una implementación.
‫Si se tratara de un trabajo, lo sería si se tratara de un servicio que diga servicio ese tipo de cosas.
‫Los metadatos siempre estarán ahí para cualquier recurso que crees.
‫Tendrá la marca de tiempo que es opcional porque generará eso automáticamente cuando realmente cree esta
‫cosa y luego tendrá etiquetas y luego un atributo de nombre aquí que puede especificar en este caso,
‫verá que está lleno un Mucho de esto con lo que le di la línea de comando,
‫le dije que quiero llamarlo prueba.
‫Por lo tanto, le está dando un nombre de prueba, le está asignando una aplicación, ya que estamos usando una implementación aquí, la
‫considera una aplicación, no un servicio o algo más, y llama a esa prueba de etiqueta.
‫Estos son solo valores predeterminados listos para usar y luego la especificación para la implementación son réplicas de una en la que el selector
‫entrará más tarde, pero así es esencialmente cómo esto determina seleccionar las unidades dentro de esta
‫implementación.
‫Básicamente, es lo que hace coincidir ese despliegue con sus pods, luego la estrategia que dejamos
‫en blanco es la plantilla aquí para el conjunto y luego verá debajo de esa especificación los contenedores que creará.
‫Entonces, hay un poco de una capa anidada de especificaciones aquí y eso se debe a la complejidad de
‫estas capas.
‫Tenemos pods, luego réplicas de conjuntos y luego implementaciones además de eso.
‫Entonces puede ver que está creando todo eso sobre la marcha y lo aplicaremos a la API cuando toquemos este
‫comando.
‫Creemos algunos más aquí.
‫El segundo es usar trabajos en lugar de implementaciones.
‫Por lo tanto, generalmente está diseñado cuando desea crear un conjunto de rutas que se ejecutarán una vez.
‫Por lo tanto, tiende a establecerlos con un valor predeterminado para no reiniciar.
‫Y en este caso usaremos la misma imagen con el mismo nombre.
‫Vamos a ejecutarlo en seco con la salida del guión Jamil y verás lo diferente que es.
‫En este caso, dado que no tenemos los múltiples niveles de una implementación con un conjunto de réplicas anidado en
‫su interior, no necesitamos los múltiples niveles de especificaciones y verá.
‫En primer lugar, este es mucho más corto y eso se debe en gran parte al hecho de
‫que con las implementaciones crea un conjunto de réplicas anidadas que luego crea el pod para que haya múltiples niveles allí.
‫Estaban aquí.
‫Realmente solo tenemos este trabajo por lotes creando pods directamente para nosotros para que pueda ver la parte superior de la versión
‫API y el tipo que ha cambiado los metadatos es muy similar, aunque en este caso no
‫creó una etiqueta de aplicación y la especificación es solo para los trabajos y luego debajo de ella la especificación dentro de él.
‫Dentro de esa plantilla está la especificación para cada contenedor de contenedores correcto.
‫Entonces, esta especificación se crearía para la cantidad de personas que pedí crear.
‫Solo creamos uno de manera predeterminada, por lo que tendrá un contenedor que ejecute el motor X con la prueba
‫de nombre y notará que la política de reinicio nunca es y ese es el cambio realmente con la mayoría de
‫estas otras formas de crear contenedores en ciudades cubanas.
‫Intentarán recrear o reiniciar automáticamente y, con un trabajo o más tarde con un trabajo cron, verá que la política
‫de reinicio está configurada en nunca.
‫Porque, por lo general, una vez que finaliza un trabajo, se acaba de hacer y no desea ese contenedor o volverlo a crear.
‫Y, por último, hagamos un comando de exposición.
‫Ahora, aunque hay una ejecución en seco aquí cuando ejecuta una implementación expuesta, va a verificar esa implementación y se dará cuenta de
‫que no existe, por lo que no puede darle el resultado de la muestra porque realmente no
‫tiene la entrada válida.
‫Entonces, en este caso, técnicamente necesitamos crear una
‫implementación y en este caso no necesitamos que se ejecute en seco y que solo deseamos crearla.
‫Así que hagamos eso y luego volvamos a ese comando expuesto e intentemos de nuevo y luego esa ejecución
‫en seco funcionará esta vez.
‫Entonces tendremos una versión API de V1.
‫Notarás que el servicio es del tipo ahora en lugar de implementación o trabajo.
‫Y luego tenemos otras etiquetas similares.
‫Verá que la especificación se trata de puertos y protocolos porque eso es realmente lo que es un servicio.
‫Es la combinación de rutas de red y subredes IP y los puertos CCP o UDP y cosas así.
‫Por lo tanto, los generadores no son necesariamente un gran problema.
‫No necesita memorizarlos o aprender las diferencias entre todos ellos, ya que encontrará que muchos de
‫ellos con el comando de ejecución de control de cubo desaparecerán como lo descubrirá en un minuto.
‫Y luego, en una conferencia posterior, hablaremos más sobre los tipos de formas en que crea contenedores y tal vez
‫por qué no utilizará una gran cantidad de ejecuciones y creaciones en sus cargas de trabajo de producción.
‫Y recuerde eliminar la implementación de prueba si la creó para nuestro último comando donde probamos
‫la exposición.