Fuente de inventario de Kubernetes ansible

Fuente de inventario de Kubernetes ansible

En esta publicación, aprendemos cómo usar el complemento Kubernetes en la herramienta Ansible. En Ansible, es difícil administrar grandes cantidades de contenedores. Pero utilizar Kubernetes en Ansible es útil al administrar los contenedores. En esta guía, aprenderemos cuál es la fuente de inventario de Kubernetes y cómo funciona en Ansible.

Google lanzó el software de administración de fácil acceso llamado Kubernetes, que también se conoce como K8s, que se utiliza para administrar las configuraciones virtualizadas en un conjunto remoto de máquinas con características de instalación de tiempo cero hacia abajo, reversión automatizada y escalabilidad que proporciona el complemento Kubernetes con un extremadamente adaptable Arquitectura en Ansible. A través de la disponibilidad de API REST para la funcionalidad necesaria, el objetivo principal de Kubernetes es ocultar las complejidades asociadas con el control de varios contenedores.

La configuración de Kubernetes se basa en cliente-servidor. Sin embargo, de manera predeterminada, solo hay un servidor principal que sirve como un host de control. En Kubernetes, también podemos usar controladores de múltiples principios para la configuración de Kubernetes. La fuente de inventario de K8S es ocasionalmente necesaria para los sistemas de control y configurar los servicios en el host remoto para controles de control. Pero hay dificultades para obtener instrucciones específicas sobre cómo hacerlo. Como resultado, implementamos este tutorial sobre cómo hacer un libro de jugadas Ansible que extrae las vainas en un dominio y produce una fuente de inventario de Kubernetes.

Prerrequisitos del uso de la fuente de inventario de Kubernetes en Ansible

Para usar la fuente de inventario de Kubernetes en Ansible, hay instrucciones o comandos de proceso de etapa en toda esta guía. Asegúrese de tener la preparación necesaria si desea avanzar en ella:

  • Para trabajar en un escenario ansible, primero configuramos la herramienta Ansible en el servidor y nos aseguramos de tener la versión 2 Ansible.11.7 para que podamos usar fácilmente el complemento Kubernetes.
  • Para evaluar el complemento Kubernetes, necesitamos un dispositivo de servidor remoto con un clúster Kubernetes integrado.
  • El host remoto está actualmente configurado para ejecutar las instrucciones y los libros de jugadas de Ansible, así como un archivo de inventario construido. El nombre del dispositivo remoto de destino es el nodo maestro K8S.
  • La versión de Python es 3.6 o más que se debe instalar en el dispositivo del controlador Ansible. También puede estar en el dispositivo host remoto de destino.
  • La versión del módulo OpenShift de Python es 0.6 o más. También necesitamos un módulo pyyaml ​​de la versión 3.11 o más. Ambos módulos deben configurarse en el dispositivo del servidor remoto, así como en el dispositivo del controlador.

Ejemplo:

Aquí está el primer ejemplo en el que implementamos los Kubernetes en Ansible. Para hacerlo, utilizamos cualquier entorno ansible para implementar la fuente de inventario de Kubernetes. Los siguientes procesos enumerados se llevan a cabo en el siguiente escenario utilizando el complemento de inventario de Kubernetes:

  • Implementación del nuevo espacio de nombres en el clúster K8S en Ansible.
  • Creación de Nginx Pod usando el libro de jugadas Ansible.
  • Creación de implementación de Nginx en Ansible.

Para que los conceptos y la ejecución sean fáciles de entender, implementamos el ejemplo en varios pasos.

Paso 1: Implemente el nuevo espacio de nombres en el clúster K8s en Ansible

En el primer paso, creamos el libro de jugadas para que podamos escribir el contenido en el ".Formato de YML "en Ansible. Para crear el libro de jugadas, el siguiente es el comando que usamos:

[root@master ansible]# nano nginx_pod.YML

Ahora, la "vaina.El libro de jugadas de YML "se crea y se lanza a la nueva terminal de Ansible. Empezamos a escribir el guión. En el libro de jugadas, primero definimos la versión API que usamos en el Pod Ansible, que es "V1". El espacio de nombres que definimos es "Ansible-Namespace". Luego, enumeramos los metadatos del espacio de Names-Names. En los metadatos, utilizamos el software NGINX y la etiqueta que contiene un nivel de valor frontend en él. En la especificación del libro de jugadas, enumeramos el nombre y la imagen que se almacena en el contenedor; ambos contienen el nginx en él.

Paso 2: cree el documento de manifiesto en Ansible

Ahora, creamos otro documento en el mismo directorio de Ansible, que es el documento de implementación en el ".formato YML ". Para crear el documento manifiesto, use el siguiente comando en el terminal Ansible:

[root@maestro ansible]# nano nginx_deployment.YML

En el documento manifiesto, primero definimos nuevamente la versión de la aplicación que es "APP/V1". Luego, le contamos qué tipo de archivo es, si se trata de un archivo de implementación. Entonces, definimos el espacio de nombres que es el espacio de nombres. Para construir la implementación, dos réplicas dentro del espacio de nombres ansible muestran el número de POD. Las imágenes nginx son 1.14.2 que se lanzan en la cápsula. El parámetro MatchLabels proporciona las etiquetas para las cápsulas y sus especificaciones bajo el parámetro de especificación. Si de alguna manera las etiquetas en las cápsulas coinciden con las especificadas en la información de configuración, la implementación ocurre en el documento manifiesto en Ansible.

Paso 3: cree el libro de jugadas para la implementación de Kubernetes en Ansible

Ahora, queremos crear otro libro de jugadas en Ansible. En este libro de jugadas, implementamos la funcionalidad de Kubernetes en él. Use el siguiente comando para crear el libro de jugadas:

[root@master ansible]# nano kubernetes_main.YML

El libro de jugadas se crea en el mismo directorio donde el libro de jugadas y el documento manifiesto anterior se almacenan en Ansible. En el libro de jugadas, primero definimos la funcionalidad del libro de jugadas que queremos implementar. Para construir la conexión, proporcionamos los hosts remotos a los que queremos apuntar. Aquí, apuntamos a "todos" anfitriones. A continuación, definimos la variable para verificar el intérprete de Python en Ansible usando la ruta donde se almacena. Ahora, definimos las tareas en el libro de jugadas. Primero, verificamos el estado del dispositivo Minikube. A continuación, creamos un nuevo espacio de nombres de Kubernetes en el libro de jugadas. Luego, duplique el nginx_pod.yml y nginx_deployment .YML al dispositivo remoto.

A través de estos documentos YML, creamos la implementación de POD en el dispositivo remoto. Luego, verificamos si la cápsula de Kubernetes está presente o no en la ubicación especificada en el dispositivo remoto.

Después de la terminación del libro de jugadas, ahora construimos el archivo de inventario para hacer la conexión entre el controlador Ansible y el host remoto de destino.

Todo:
Hospedadores:
k8s_master_node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22
[root@master ansible]# ansible-playbook kubernates_main.YML

Aquí está la salida deseada donde vemos que las tareas se colocan con éxito en la máquina de destino:

Una vez que se coloca la tarea en la máquina de destino, verificamos si el "espacio de nombres ansible" está en el clúster de Kubernetes o no. Usamos el siguiente comando "GREP":

[root@master ansible]# kubectl get nameSpace | Grep Ansible-Namespace

Si desea verificar el POD creado en el espacio de nombres del clúster Kubernetes, escriba el siguiente comando para verificar:

[root@master ansible]# kubectl obtenga vainas-namespace ansible namespace

Como verá en la salida anterior, obtenemos las vainas que se ejecutan en el dispositivo. Ahora, verificamos la implementación que hicimos en el clúster de Kubernetes. Utilice la siguiente declaración para verificar las implementaciones ya hechas:

[root@master ansible]# kubectl obtiene implementaciones-namespace ansible namespace

Conclusión

Aprendimos cuál es la fuente de inventario de Kubernetes en Ansible. También aprendimos a utilizar el inventario de Kubernetes en Ansible. Luego, implementamos un ejemplo para que aprendamos más claramente sobre el funcionamiento de la fuente de inventario de Kubernetes en Ansible.