One place for hosting & domains

      administrador

      Cómo instalar software en clústeres de Kubernetes con el administrador de paquetes Helm 3


      Introducción

      Helm es un administrador de paquetes para Kubernetes que permite a los desarrolladores y operadores configurar e implementar de forma más sencilla aplicaciones en los clústeres de Kubernetes.

      A través de este tutorial, configurará Helm 3 y lo utilizará para instalar, volver a configurar, restaurar y eliminar una instancia de la aplicación Kubernetes Dashboard. El panel es una GUI de Kubernetes oficial basado en la web.

      Para obtener una descripción general conceptual de Helm y su ecosistema de paquetes, lea nuestro artículo Introducción a Helm.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      • Un clúster de Kubernetes con control de acceso basado en roles (RBAC) habilitado. Helm 3.1 admite clústeres de las versiones 1.14 a 1.17. Para obtener más información, consulte la página de versiones de Helm.
      • La herramienta de línea de comandos kubectl instalada en su máquina local, configurada para establecer conexión con su clúster. Puede leer más sobre la instalación de kubectl en la documentación oficial.

      Puede probar su conectividad con el siguiente comando:

      Si no ve errores, estará conectado al clúster. Si accede a varios clústeres con kubectl, asegúrese de verificar que haya seleccionado el contexto de clúster correcto:

      • kubectl config get-contexts

      Output

      CURRENT NAME CLUSTER AUTHINFO NAMESPACE * do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin

      En este ejemplo, el asterisco (*) indica que se estableció conexión con el clúster do-fra1-helm3-example. Para cambiar de clústeres ejecute:

      • kubectl config use-context context-name

      Cuando esté conectado al clúster correcto, continúe con el paso 1 para comenzar a instalar Helm.

      Paso 1: Instalar Helm

      Primero, instalará la utilidad de línea de comandos helm en su máquina local. Helm proporciona una secuencia de comandos que gestiona el proceso de instalación en MacOS, Windows o Linux.

      Pase a un directorio editable y descargue la secuencia de comandos del repositorio de GitHub de Helm:

      • cd /tmp
      • curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

      Haga que la secuencia de comandos sea ejecutable con chmod:

      Puede utilizar su editor de texto favorito para abrir la secuencia de comandos e inspeccionarla a fin de asegurarse de que sea segura. Cuando esté satisfecho, ejecútela:

      Es posible que se le solicite la contraseña. Ingrésela y presione INTRO para continuar.

      El resultado tendrá el siguiente aspecto:

      Output

      Downloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz Preparing to install helm into /usr/local/bin helm installed into /usr/local/bin/helm

      Ahora que instaló Helm, está listo para usarlo para instalar su primer chart.

      Paso 3: Instalar un chart de Helm

      Los paquetes de software de Helm se llaman charts. Hay un repositorio administrado de charts llamado stable, el cual consiste principalmente en tablas comunes que puede ver en su repositorio de GitHub. Helm no lo tiene preconfigurado en Helm. Por lo tanto, tendrá que añadirlo manualmente. Luego, a modo de ejemplo, instalará Kubernetes Dashboard.

      Añada el repositorio stable al ejecutar lo siguiente:

      • helm repo add stable https://kubernetes-charts.storage.googleapis.com

      El resultado será lo siguiente:

      Output

      "stable" has been added to your repositories

      Luego, utilice helm para instalar el paquete kubernetes-dashboard desde el repositorio stable:

      • helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true

      El parámetro --set le permite personalizar variables de chart, que el chart expone para permitirle personalizar su configuración. Aquí, establece la variable rbac.clusterAdminRole en true para conceder acceso a Kubernetes Dashboard a todo el clúster.

      El resultado tendrá este aspecto:

      Output

      NAME: dashboard-demo LAST DEPLOYED: Tue Mar 31 15:04:19 2020 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: ...

      Observe la línea de NAME, resaltada en el resultado del ejemplo anterior. En este caso, especificó el nombre dashboard-demo. Este es el nombre de la versión. Una versión de Helm es una única implementación de un chart con una configuración específica. Puede implementar varias versiones del mismo chart, cada una con su propia configuración.

      Puede enumerar todas las versiones del clúster:

      El resultado tendrá un aspecto similar a este:

      Output

      NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1

      Ahora, podemos usar kubectl para verificar que se haya implementado un nuevo servicio en el clúster:

      El resultado tendrá el siguiente aspecto:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m

      Tenga en cuenta que, por defecto, el nombre del servicio correspondiente a la versión es una combinación del nombre de versión de Helm y el nombre del chart.

      Ahora que implementó la aplicación, utilizará Helm para cambiar su configuración y actualizar la implementación.

      Paso 3: Actualizar una versión

      El comando helm upgrade puede utilizarse para actualizar una versión con un chart nuevo o actualizado, o para actualizar sus opciones de configuración (variables).

      Realizará un cambio sencillo en la versión de dashboard-demo para demostrar el proceso de actualización y reversión: actualizará el nombre del servicio de dashboard simplemente a kubernetes-dashboard en lugar de dashboard-demo-kubernetes-dashboard​​​​​​.

      El chart kubernetes-dashboard proporciona una opción de configuración de fullnameOverride para controlar el nombre de servicio. Para cambiar el nombre de la versión, ejecute helm upgrade con esta opción establecida:

      • helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values

      Al pasar el argumento --reuse-values, asegúrese de que el proceso de actualización no restablezca las variables de chart que haya establecido anteriormente.

      Visualizará un resultado similar al del paso inicial de ​​​​​​helm install.

      Verifique si sus servicios de Kubernetes reflejan los valores actualizados:

      El resultado será similar a lo siguiente:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s

      Observe que el nombre del servicio se actualizó con el nuevo valor.

      Nota: En este punto, es posible que desee cargar Kubernetes Dashboard en su navegador y revisarlo. Para hacerlo, primero ejecute el siguiente comando:

      Esto crea un proxy que le permite acceder a recursos de clústeres remotos desde su computadora local. Conforme a las instrucciones anteriores, su servicio de dashboard se llama kubernetes-dashboard y se ejecuta en el espacio de nombres default. Ahora podrá acceder al panel en la siguiente URL:

      http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/
      

      Las instrucciones para el uso del panel quedan fuera del alcance de este tutorial, pero puede leer los documentos oficiales de Kubernetes Dashboard para obtener más información.

      A continuación, verá la capacidad de revertir y eliminar versiones de Helm.

      Paso 4: Revertir y eliminar una versión

      Cuando actualizó la versión de dashboard-demo en el paso anterior, creó una segunda revisión de la versión. Helm conserva todos los detalles de las versiones anteriores en caso de que deba realizar una reversión a una configuración o un chart anterior.

      Utilice helm list para inspeccionar la versión de nuevo:

      Verá el siguiente resultado:

      Output

      NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default

      La columna REVISON le indica que ésta es, ahora, la segunda revisión.

      Utilice helm rollback para revertir la primera revisión:

      • helm rollback dashboard-demo 1

      Debería ver el siguiente resultado, lo cual indica que la reversión se realizó:

      Output

      Rollback was a success! Happy Helming!

      En este punto, si ejecuta kubectl get services de nuevo, observará que el nombre de servicio se cambió de nuevo a su valor anterior. Helm volvió a implementar la aplicación con la configuración de la revisión 1.

      Es posible eliminar versiones de helm con el comando helm delete:

      • helm delete dashboard-demo

      El resultado será lo siguiente:

      Output

      release "dashboard-demo" uninstalled

      Puede intentar enumerar las versiones de Helm:

      Verá que no hay ninguna:

      Output

      NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

      Con esto, la versión se eliminó realmente y podrá reutilizar el nombre de versión.

      Conclusión

      A lo largo de este tutorial, instaló la herramienta de línea de comandos helm y exploró la instalación, la actualización, la reversión y la eliminación de charts y versiones de Helm mediante la administración del chart kubernetes-dashboard.

      Para obtener más información sobre Helm y sus charts, consulte la documentación oficial de Helm.



      Source link

      Cómo instalar Software en los clústeres de Kubernetes con el administrador de paquetes de Helm


      Introducción

      Helm es un administrador de paquetes para Kubernetes que permite a los desarrolladores y operadores configurar e implementar de forma más sencilla aplicaciones en los clústeres de Kubernetes.

      En este tutorial, configuraremos Helm y lo utilizaremos para instalar, volver a configurar, restaurar y luego borrar una instancia de la aplicación Kubernetes Dashboard. El panel es una GUI de Kubernetes oficial basado en la web.

      Para obtener una descripción general conceptual de Helm y su ecosistema de paquetes, lea nuestro artículo Introducción a Helm.

      Requisitos previos

      Para este tutorial, necesitará lo siguiente:

      • Un clúster de Kubernetes 1.8, o versiones posteriores, con control de acceso basado en roles (RBAC) habilitado.
      • La herramienta de línea de comandos kubectl instalada en su equipo local, configurada para conectarse a su clúster. Puede leer más sobre la instalación de kubectl en la documentación oficial.

      Puede probar su conectividad con el siguiente comando:

      Si no ve errores, estará conectado al clúster. Si accede a varios clústeres con kubectl, asegúrese de verificar que haya seleccionado el contexto de clúster correcto:

      • kubectl config get-contexts

      Output

      CURRENT NAME CLUSTER AUTHINFO NAMESPACE * do-nyc1-k8s-example do-nyc1-k8s-example do-nyc1-k8s-example-admin docker-for-desktop docker-for-desktop-cluster docker-for-desktop

      En este ejemplo, el asterisco (<^>*^>) indica que estamos conectados al clúster do-nyc1-k8s-example. Para cambiar de clústeres ejecute:

      • kubectl config use-context context-name

      Cuando esté conectado al clúster correcto, continúe con el paso 1 para comenzar a instalar Helm.

      Paso 1: Instalar Helm

      Primero, instalaremos la utilidad de línea de comandos helm en nuestro equipo local. Helm proporciona una secuencia de comandos que gestiona el proceso de instalación en MacOS, Windows o Linux.

      Pase a un directorio editable y descargue la secuencia de comandos del repositorio de GitHub de Helm:

      • cd /tmp
      • curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > install-helm.sh

      Haga que la secuencia de comandos sea ejecutable con chmod:

      • chmod u+x install-helm.sh

      En este punto, puede utilizar su editor de texto favorito para abrir la secuencia de comandos e inspeccionarla a fin de asegurarse de que sea segura. Cuando esté satisfecho, ejecútela:

      Es posible que se le solicite la contraseña. Ingrésela y presione ENTER.

      Output

      helm installed into /usr/local/bin/helm Run 'helm init' to configure helm.

      A continuación, terminaremos la instalación agregando algunos componentes de Helm a nuestro clúster.

      Paso 2: Instalar Tiller

      Tiller es un complemento del comando helm que se ejecuta en su clúster, recibe comandos de helm y se comunica directamente con la API de Kubernetes para hacer el verdadero trabajo de crear y eliminar recursos. A fin de proporcionar a Tiller los permisos que necesita para ejecutarse en el clúster, crearemos un recurso serviceaccount de Kubernetes.

      Nota: Vincularemos serviceaccount al rol de clúster de cluster-admin. Esto permitirá que el superusuario del servicio de tiller acceda al clúster e instale todos los tipos de recursos en todos los espacios de nombres. Esto es adecuado para explorar Helm, pero es posible que desee una configuración más restringida para un clúster de Kubernetes de producción.

      Consulte la documentación oficial del RBAC de Helm para obtener más información sobre diferentes configuraciones del RBAC para Tiller.

      Cree la serviceaccount de tiller:

      • kubectl -n kube-system create serviceaccount tiller

      A continuación, vincule la serviceaccount de tiller al rol cluster-admin:

      • kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

      Ahora podemos ejecutar helm init, que instala Tiller en nuestro clúster, junto con algunas tareas de mantenimiento locales, como la descarga de información del repositorio stable:

      • helm init --service-account tiller

      Output

      . . . Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster. Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy. For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation Happy Helming!

      Para verificar que Tiller esté en ejecución, enumere los pods en el espacio de nombres de** kube-system**:

      • kubectl get pods --namespace kube-system

      Output

      NAME READY STATUS RESTARTS AGE . . . kube-dns-64f766c69c-rm9tz 3/3 Running 0 22m kube-proxy-worker-5884 1/1 Running 1 21m kube-proxy-worker-5885 1/1 Running 1 21m kubernetes-dashboard-7dd4fc69c8-c4gwk 1/1 Running 0 22m tiller-deploy-5c688d5f9b-lccsk 1/1 Running 0 40s

      El nombre del pod de Tiller comienza con el prefijo tiller-deploy-.

      Ahora que instalamos ambos componentes de Helm, estamos listos para usar helm en la instalación de nuestra primera aplicación.

      Paso 3: Instalar un chart de Helm

      Los paquetes de software de Helm se llaman charts. Helm viene preconfigurado con un repositorio seleccionado de charts llamado stable. Puede explorar los charts disponibles en el repositorio de GitHub asignado a ellos. Instalaremos Kubernetes Dashboard a modo de ejemplo.

      Utilice helm para instalar el paquete kubernetes-dashboard desde el repositorio stable:

      • helm install stable/kubernetes-dashboard --name dashboard-demo

      Output

      NAME: dashboard-demo LAST DEPLOYED: Wed Aug 8 20:11:07 2018 NAMESPACE: default STATUS: DEPLOYED . . .

      Observe la línea de NAME, resaltada en el resultado del ejemplo anterior. En este caso, especificamos el nombre dashboard-demo. Este es el nombre de nuestra versión. Una versión de Helm es una única implementación de un chart con una configuración específica. Puede implementar varias versiones del mismo chart, cada una con su propia configuración.

      Si no especifica su propio nombre de versión usando --name, Helm creará por usted un nombre al azar.

      Podemos solicitar a Helm una lista de versiones en este clúster:

      Output

      NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 1 Wed Aug 8 20:11:11 2018 DEPLOYED kubernetes-dashboard-0.7.1 default

      Ahora podemos usar kubectl para verificar que se haya implementado un nuevo servicio en el clúster:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-demo-kubernetes-dashboard ClusterIP 10.32.104.73 <none> 443/TCP 51s kubernetes ClusterIP 10.32.0.1 <none> 443/TCP 34m

      Tenga en cuenta que por defecto el nombre de servicio correspondiente a nuestra versión es una combinación del nombre de versión de Helm y el nombre del chart.

      Ahora que implementamos la aplicación, utilicemos Helm para cambiar su configuración y actualizar la implementación.

      Paso 4: Actualizar una versión

      El comando helm upgrade puede utilizarse para actualizar una versión con un chart nuevo o actualizado, o para actualizar las opciones de configuración de este mismo.

      Haremos un cambio sencillo en nuestra versión de dashboard-demo para demostrar el proceso de actualización y reversión: actualizaremos el nombre del servicio de panel simplemente a dashboard, en lugar de dashboard-demo-kubernetes-dashboard​​​​​​.

      El chart kubernetes-dashboard proporciona una opción de configuración de fullnameOverride para controlar el nombre de servicio. Ejecutaremos helm upgrade con este conjunto de opciones:

      • helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="dashboard"

      Visualizará un resultado similar al del paso inicial de ​​​​​​helm install.

      Verifique si sus servicios de Kubernetes reflejan los valores actualizados:

      Output

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.32.0.1 <none> 443/TCP 36m dashboard ClusterIP 10.32.198.148 <none> 443/TCP 40s

      Se actualizó nuestro nombre de servicio al nuevo valor.

      Nota: En este punto, es posible que desee cargar Kubernetes Dashboard en su navegador y revisarlo. Para hacerlo, primero ejecute el siguiente comando:

      Esto crea un proxy que le permite acceder a recursos de clústeres remotos desde su computadora local. Conforme a las instrucciones anteriores, su servicio de panel se llama kubernetes-dashboard y se ejecuta en el espacio de nombres default. Ahora podrá acceder al panel en la siguiente URL:

      http://localhost:8001/api/v1/namespaces/default/services/https:dashboard:/proxy/
      

      Si es necesario, sustituya su propio nombre de servicio y espacio de nombres por las partes resaltadas. Las instrucciones para el uso del panel quedan fuera del alcance de este tutorial, pero puede leer los documentos oficiales de Kubernetes Dashboard para obtener más información.

      A continuación, veremos la capacidad de Helm para revertir las versiones.

      Paso 5: Realizar una reversión de una versión

      Cuando actualizamos nuestra versión dashboard-demo en el paso anterior, creamos una segunda revisión de la versión. Helm conserva todos los detalles de las versiones anteriores en caso de que deba realizar una reversión a una configuración o un chart anterior.

      Utilice helm list para inspeccionar la versión de nuevo:

      Output

      NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default

      En la columna REVISON se indica que ésta es ahora la segunda revisión.

      Utilice helm rollback para revertir la primera revisión:

      • helm rollback dashboard-demo 1

      Debería ver el siguiente resultado, lo cual indica que la reversión se realizó:

      Output

      Rollback was a success! Happy Helming!

      En este punto, si ejecuta kubectl get services de nuevo, observará que el nombre de servicio se cambió de nuevo a su valor anterior. Helm volvió a implementar la aplicación con la configuración de la revisión 1.

      A continuación, veremos la eliminación de versiones con Helm.

      Paso 6: Eliminar una versión

      Es posible eliminar versiones de helm con el comando helm delete:

      • helm delete dashboard-demo

      Output

      release "dashboard-demo" deleted

      Aunque la versión se eliminó y la aplicación del panel ya no está en ejecución, Helm guarda toda la información de revisión en caso de que desee volver a implementar la versión. Si intentara instalar una nueva versión de dashboard-demo con helm install en este momento, vería un mensaje de error:

      Error: a release named dashboard-demo already exists.
      

      Si utiliza el indicador --deleted para enumerar sus versiones eliminadas, verá que la versión sigue vigente:

      Output

      NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 3 Wed Aug 8 20:15:21 2018 DELETED kubernetes-dashboard-0.7.1 default

      Para eliminar realmente la versión y purgar todas las revisiones antiguas, utilice el indicador--purgecon el comando helm delete:

      • helm delete dashboard-demo --purge

      Con esto, la versión se eliminó realmente y podrá reutilizar el nombre de versión.

      Conclusión

      A través de este tutorial, instalamos la herramienta de línea de comandos helm y su servicio complementario tiller. También exploramos la instalación, la actualización, reversión y eliminación de charts y versiones de Helm.

      Para obtener más información sobre Helm y sus charts, consulte la documentación oficial de Helm.



      Source link

      Introducción a Helm, el administrador de paquetes de Kubernetes


      Introducción

      Implementar aplicaciones en Kubernetes (el popular y sólido sistema contenedor y organizador) puede ser un proceso complejo. Configurar una sola aplicación puede implicar crear varios recursos de interdependientes de Kubernetes (tales como lugares de descarga, servicios, implementaciones y ReplicaSets), cada uno de los cuales requiere la redacción de un archivo de manifiesto YAML detallado.

      Helm es un administrador de paquetes para Kubernetes que permite a los desarrolladores y operadores configurar e implementar de forma más sencilla aplicaciones y servicios en clústeres de Kubernetes.

      Actualmente, Helm es un proyecto oficial de Kubernetes y forma parte de Cloud Native Computing Foundation, una organización sin fines de lucro que respalda proyectos de código abierto en el ecosistema de Kubernetes y a su alrededor.

      En este artículo, proporcionaremos una descripción general de Helm y las diversas abstracciones que usa para simplificar la implementación de aplicaciones en Kubernetes. Si no conoce Kubernetes, Introducción a Kubernetes puede resultarle útil antes para familiarizarse con los conceptos básicos.

      Descripción general de Helm

      La mayoría de los sistemas operativos y de programación de lenguaje tienen su propio administrador de paquetes para la instalación y el mantenimiento de software. Helm proporciona el mismo conjunto de funciones básicas que muchos de los administradores que seguramente ya conoce, como apt de Debian o pip de Python.

      Helm puede:

      • Instalar software
      • Instalar de manera automática dependencias de software
      • Actualizar software
      • Configurar implementaciones de software
      • Obtener paquetes de software de repositorios

      Helm proporciona esta funcionalidad a través de los siguientes componentes:

      • Una herramienta de línea de comandos, helm, que proporciona la interfaz de usuario para todas las funcionalidades de Helm.
      • Un componente de servidor complementario, tiller, que funciona en su clúster de Kubernetes, escucha los comandos de helm y gestiona la configuración e implementación de versiones de software en el clúster.
      • El formato de empaquetado de Helm, llamado charts.
      • Un repositorio de charts oficiales seleccionados con charts empaquetados previamente para proyectos de software de código abierto populares.

      A continuación, investigaremos el formato de los charts en mayor detalle.

      Charts

      Los paquetes de Helm se llaman charts, y constan de algunos archivos de configuración YAML y algunas plantillas que se convierten en archivos de manifiesto de Kubernetes. Esta es la estructura de directorios básica de un chart:

      Example chart directory

      package-name/
        charts/
        templates/
        Chart.yaml
        LICENSE
        README.md
        requirements.yaml
        values.yaml
      

      Estos directorios y archivos tienen las siguientes funciones:

      • charts/: en este directorio se pueden disponer dependencias de charts administradas manualmente, aunque suele ser mejor usar requirements.yaml para vincular las dependencias de manera dinámica.
      • templates/: este directorio contiene archivos de plantillas que se combinan con valores de configuración (de values.yaml y la línea de comandos) y se representan en manifiestos de Kubernetes. Las plantillas usan el formato Go programming language.
      • Chart.yaml: archivo YAML con metadatos sobre el chart, como el nombre y la versión de este, la información del mantenedor, un sitio web relevante y palabras claves de búsqueda.
      • LICENSE: licencia de texto sin formato para el chart.
      • README.md: archivo readme con información para usuarios del chart.
      • requirements.yaml: archivo YAML que enumera las dependencias del chart.
      • values.yaml: archivo YAML con valores de configuración predeterminados para el chart.

      El comando helm puede instalar un chart de un directorio local o de una versión .tar.gz empaquetada de esta estructura de directorio. Estos charts empaquetados también pueden descargarse e instalarse automáticamente desde los repositorios de charts, o repos.

      A continuación, analizaremos los repositorios de charts.

      Repositorios de charts

      Un repo de charts de Helm es un sitio HTTP simple que proporciona un archivo index.yaml y charts empaquetados .tar.gz. El comando helm tiene subcomandos disponibles para ayudar a empaquetar charts y crear el archivo index.yaml necesario. En cualquier servidor web, servicio de almacenamiento de objetos o sitio estático, como las páginas GitHub, se pueden proporcionar estos archivos.

      Helm viene previamente configurado con un repositorio de charts predeterminado, conocido como stable. Este repo apunta a un depósito de almacenamiento de Google en https://kubernetes-charts.storage.googleapis.com. La fuente del repo *stable *se puede encontrar en el repositorio Git de helm/charts en GitHub.

      Los repos alternativos pueden agregarse con el comando helm repo add. Los siguientes son algunos repositorios alternativos populares:

      Si instala un chart que desarrolló a nivel local o uno de un repo, debe configurarlo para su instalación en particular. A continuación, veremos las configuraciones.

      Configuración de charts

      Un chart suele incorporar valores de configuración predeterminados en su archivo values.yaml. Algunas aplicaciones pueden implementarse completamente con valores predeterminados, pero por lo general deberá sobrescribir alguna de las configuraciones para que el chart cumpla con sus requisitos.

      El autor del chart determina los valores expuestos para la configuración. Algunos se usan para configurar Kubernetes antiguos y algunos pueden pasarse a través del contenedor subyacente para configurar la propia aplicación.

      A continuación, se brinda un fragmento de algunos valores de ejemplo:

      values.yaml

      service:
        type: ClusterIP
        port: 3306
      

      Estas son opciones para configurar un recurso de servicio de Kubernetes. Puede usar helm inspect values chart-name para desechar todos los valores de configuración disponibles para un chart.

      Estos valores pueden sobrescribirse redactando su propio archivo YAML y usándolo al ejecutar helm install, o al establecer opciones de manera individual en la línea de comandos con el indicador --set. Solo necesita especificar esos valores predeterminados que desee cambiar.

      Un chart de Helm implementado con una configuración particular se conoce como release. Hablaremos sobre los releases a continuación.

      Releases

      Durante la instalación de un chart, Helm combina las plantillas del chart con la configuración especificada por el usuario y los valores predeterminados de value.yaml. Estos se convierten en manifiestos de Kubernetes que se implementan a través de la API de Kubernetes. Con esto se crea un release, una configuración e implementación específica de un chart en particular.

      El concepto de los lanzamientos es importante, ya que posiblemente desee implementar la misma aplicación más de una vez en un clúster. Por ejemplo, es posible que necesite varios servidores de MySQL con distintas configuraciones.

      También es posible que quiera mejorar distintas instancias de un chart de manera individual. Es posible que una aplicación esté lista para un servidor MySQL actualizado, y que otra no lo esté. Con Helm, puede mejorar cada release de forma individual.

      Es posible que mejore un release porque se actualizó el chart de este o porque quiere actualizar la configuración del propio release. De cualquier manera, con cada mejora se creará una nueva revisión de un release y Helm le permitirá restablecer fácilmente revisiones anteriores en caso de que se produzca un problema.

      Creación de charts

      Si no puede encontrar un chart existente para el software que implementará, es posible que prefiera crear uno propio. Helm puede generar la estructura del directorio de un chart con helm create chart-name. Con esto, se creará una carpeta con los archivos y directorios que analizamos en la sección Charts anterior.

      A partir de este punto, debe completar los metadatos de su chart en Chart.yaml y disponer sus archivos de manifiesto de Kubernetes en el directorio templates. Luego, debe quitar las variables de configuración pertinentes de sus manifiestos y disponerlas en values.yaml,y luego incluirlas de nuevo en sus plantillas de manifiestos mediante el sistema de creación de plantillas.

      El comando helm tiene muchos subcomandos disponibles para ayudarlo a probar, empaquetar y administrar sus charts. Para obtener más información, consulte la documentación oficial de Helm vinculada al desarrollo de charts.

      Conclusión

      A lo largo de este artículo, hicimos una revisión de Helm, el administrador de paquetes de Kubernetes. Observamos la arquitectura de Helm y los componentes individuales helm y tiller, vimos en detalle el formato de charts de Helm y analizamos los repositorios de charts. También investigamos la forma de configurar un chart de Helm y de combinar e implementar las configuraciones y los charts como releases en clústeres de Kubernetes. Por último, vimos brevemente los conceptos básicos con los que se puede crear un chart cuando no hay uno adecuado disponible.

      Para obtener más información sobre Helm, consulte la documentación oficial de Helm. Para encontrar charts oficiales para Helm, consulte el repositorio oficial de Git helm/charts en GitHub.



      Source link