Comenzando con los gráficos de timón de Kubernetes

Comenzando con los gráficos de timón de Kubernetes

Comenzando con gráficos de timón

Helm hace que Kubernetes sea más fácil de usar. Es un administrador de paquetes. Los gráficos de timón hacen que sea más fácil diseñar, instalar y actualizar una aplicación Kubernetes. Administran la complejidad para hacer que el proceso de instalación sea repetible. Los usuarios pueden actualizar y compartir sus diseños fácilmente. Además, Helm tiene una función de reversión para volver a ordenar fácilmente las versiones.

Estructura del gráfico de timón

Con el comando Crear, Helm proporciona una estructura predeterminada para garantizar un estándar.

Hola Mundo
├─apt.yaml
├├ cuadros
"Plantillas
│ ├ ├─uto notas.TXT
│ ├── _Helpers.TPL
│ ├── despliegue.yaml
│ ├── Ingress.yaml
│ └── Servicio.yaml
Valores.yaml

Los archivos de arriba se generarán automáticamente. Helm usa formato YAML para archivos de configuración.

Invocando timón

Para usar el timón, necesitará las siguientes cosas:

  • Un clúster de Kubernetes (Minikube proporciona una forma simple de ejecutar Kubernetes)
  • Instale el timón y el timón, el componente del lado del servidor.

(Asegúrese de que las versiones de Minikube y Tiller sean compatibles con el clúster Kubernetes)

Una vez que tenga todos los componentes instalados, inicie su minikube:

$ minikube comienzo

También deberá usar el siguiente comando para inicializar el timón y el timón:

$ timón init

A continuación, use el siguiente comando Helm para crear la estructura descrita anteriormente:

$ Helm Crea Hello-World

Escribiendo tu primer cuadro de timón

Verifiquemos el estado de las cápsulas:

$ kubectl get pod-todos los namespaces
Nombre del espacio de nombres Estado listo para reiniciar la edad
Kube-System Kube-Addon-Manager-Minikube 1/1 Running 2 1H
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Running 6 1H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 1H
Kube-System Storage-Provisioner 1/1 Running 2 1H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Running 2 1H

La cápsula de timón y las vainas de minikube están funcionando. Hagamos algunos cambios en los gráficos de timón. Vamos a abrir el valor.YML. Se parece a esto:

# Valores predeterminados para Hello-World.
# Este es un archivo con formato Yaml.
# Declarar variables que se transmitirán a sus plantillas.
Replicacount: 1
imagen:
Repositorio: Heroku/NodeJS-Hello-World
Etiqueta: establo
PullPolicy: IfnotPresent
servicio:
Tipo: clúster
Puerto: 80
ingreso:
habilitado: falso
Anotaciones:
# Kubernetes.io/ingreso.Clase: Nginx
# Kubernetes.io/tls-acme: "verdadero"
camino: /
Hospedadores:
- examen de la tabla.local
TLS: []
#-SecretName: Chart-Ejemplo-TLS
# Hospedadores:
# - Exemplo de gráfico.local
recursos:
# Por lo general, recomendamos no especificar los recursos predeterminados y dejar esto como un consciente
# Elección para el usuario. Esto también aumenta las tablas de posibilidades que se ejecutan en entornos con poco
# Recursos, como Minikube. Si desea especificar recursos, desenchufe lo siguiente
# líneas, ajustarlas según sea necesario y retire los aparatos ortopédicos de rizado después de 'recursos:'.
# Límites:
# CPU: 100m
# Memoria: 128mi
# peticiones:
# CPU: 100m
# Memoria: 128mi
nodeselector:
Toleraciones: []
Affinity:

La línea resaltada ha cambiado. En lugar de Nginx, vamos a descargar Heroku/NodeJs-Hello-World. Puede establecer los valores predeterminados en este valor.archivo YML. Se compartirán con otros archivos.

Si revisamos el timón, no vemos nada:

$ Helm LS

Comencemos la tabla de timón:

$ Helm Install Hello-World
Nombre: besing-markhor
Último despliegue: viernes 9 de marzo 09:13:04 2018
Espacio de nombres: predeterminado
Estado: implementado
RECURSOS:
==> v1/servicio
Nombre Tipo de clúster-IP External-IP Port (s) Edad
besing-markhor-hello-world clusterip 10.110.109.73 80/tcp 1s
==> v1beta2/implementación
Nombre deseado actualización actualizada actualizada
besing-markhor-hello-world 1 1 1 0 1S
==> v1/pod (relacionado)
Nombre Ready Status Reinicia la edad
Kissing-Markhor-Hello-World-6BBB947B9C-RTTNZ 0/1 ContainerCreating 0 1S
Notas:
Notas:
1. Obtenga la URL de la aplicación ejecutando estos comandos:
Exportar pod_name = $ (kubectl get pods -namespace default -l "app = hello -world, versión = besos
-Markhor "-o jsonpath =" .elementos [0].metadatos.nombre")
echo "Visite http: // 127.0.0.1: 8080 para usar su aplicación "
Kubectl Port-Forward $ POD_NAME 8080: 80

La parte notable es el "nombre". Este nombre fue generado por timón.

Vamos a ver el timón:

$ Helm LS
REVISIÓN DEL Nombre RABLICACIÓN DE NAPATION DE NAPATIS
Kissing-Markhor 1 viernes 9 de marzo 09:13:04 2018 desplegó Hello-World-0.1.0 predeterminado

También Kubernetes:

$ kubectl get pod-todos los namespaces
Nombre del espacio de nombres Estado listo para reiniciar la edad
besado predeterminado-markhor-hello-world-6bbb947b9c-rttnz 1/1 en ejecución 0 5m
Kube-System Kube-Addon-Manager-Minikube 1/1 Running 2 2h
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Running 6 2H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 2h
Kube-System Storage-Provisioner 1/1 Running 2 2h
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Running 2 2h

Entonces, la cápsula se ha implementado en Kubernetes. Podemos usar el reenvío de puertos:

$ Kubectl Port-Forward Kissing-Markhor-Hello-World-6BBB947B9C-RTTNZ 8080: 80

Ahora debería poder verificar su aplicación implementada.

$ curl http: // 127.0.0.1: 8080



Bienvenido a nginx!



Bienvenido a nginx!


Si ve esta página, el servidor web nginx se instala correctamente y
laboral. Se requiere una configuración adicional.


Para la documentación y el soporte en línea, consulte
nginx.organizar.

El soporte comercial está disponible en
nginx.comunicarse.


Gracias por usar Nginx.



Alternativamente, puede verificar http: // 127.0.0.1: 8080 para ver la aplicación recién creada. Ordenemos. Encuentra el nombre del servidor:

$ Helm LS
REVISIÓN DEL Nombre RABLICACIÓN DE NAPATION DE NAPATIS
Kissing-Markhor 1 viernes 9 de marzo 09:13:04 2018 desplegó Hello-World-0.1.0 predeterminado

Use el siguiente comando para eliminar:

$ Helm Eliminar besos-markhor
Lanzar "Kissing-Markhor" eliminado

Vamos a ver el clúster:

$ kubectget pod-todos los namespaces
Nombre del espacio de nombres Estado listo para reiniciar la edad
Kube-System Kube-Addon-Manager-Minikube 1/1 Running 2 2h
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Running 6 2H
Kube-System Kubernetes-Dashboard-77D8B98585-SJ9LM 1/1 Running 2 2h
Kube-System Storage-Provisioner 1/1 Running 2 2h
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Running 2 2h

Podemos ver que la vaina del marcador de besos se ha ido.

Conclusión

Lo anterior debería darle la inspiración para comenzar a usar gráficos de timón. Debería hacer que sus implementaciones de Kubernetes sean más fáciles de manejar.

Referencias:

  • timón.sh/
  • documento.bitnami.com/kubernetes/how-to/create-your-First-Helm-Chart/
  • https: // documentos.timón.sh/usando_helm/
  • Construyendo gráficos de timón desde cero: una introducción a Kubernetes [i] - Amy Chen, Heptio
  • Implementación de la aplicación NodeJS a Kubernetes usando Helm | Episodio 3