No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

3D
3H
24M
57S
Curso de Kubernetes

Curso de Kubernetes

Marcos Lilljedahl

Marcos Lilljedahl

Gestionar stacks con Helm

24/33
Recursos

Comandos utilizados en la clase:

// Instalar helm
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash

// Verificar si tenemos helm instalado
helm

// Configurar helm
helm init

// Verificar si Tiller est谩 instalado
kubectl get pods -n kube-system

// Dar permisos a helm
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

// Buscar paquetes
helm search

// Ejemplo de c贸mo instalar un paquete
helm search prometheus
helm inspect stable/prometheus | less
helm install stable/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false

// Obtener servicios
kubectl get svc

// Crear helm chart
helm create dockercoins
cd dockercoins
mv templates/ templates-old
mkdir templates
cd ..
kubectl get -o yaml --export deployment worker

Aportes 29

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Se requiere la actualizaci贸n del curso, helm va en la Version:鈥渧3.5.2鈥 a la fecha 鈥
Upgrading to Helm 3 will remove the server side component of Helm, Tiller and is a very straight forward and safe process.
Para Instalar los pasos que ocupe son los siguientes:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
El comando para buscar prometheus:
helm search repo prometheus
La version 13.4.0 todavia es BETA a la fecha de este aporte por lo que use la stable/prometheus aunque esta DEPRECATED, si quieren instalar la community de cualquier forma agreguen el repositorio
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

La instalacion se realiza de la siguiente forma
helm install --generate-name stable/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false

Al script le quitas --export debido a que ya no se usa y te va a dar el error

while read kind name; do kubectl get -o yaml $kind $name > dockercoins/templates/$name-$kind.yaml
done <<EOF
deployment worker
deployment hasher
daemonset rng
deployment webui
deployment redis
service hasher
service rng
service webui
service redis
EOF

helm install --generate-name dockercoins/
Espero les sirva.

A la fecha los comandos estan un poco desactualizados, en mi caso utilice los siguientes:

Agregue el repo de prometheus-community que es el repositorio oficial de prometheus:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

Como ya tenemos el repositorio agregado, vamos hacer un search para ubicar los diferentes charts de prometheus:

helm search repo prometheus

Le hacemos un inspect a prometheus-community/prometheus:

helm inspect all prometheus-community/prometheus | less

Instalamos prometheus:

helm install my-prometheus prometheus-community/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false --version 15.0.1

y si estas utilizando minikube puedes exponer tu servicio de prometheus server de la siguiente forma:

minikube service my-prometheus-server -p platzi 

Recuerda que el -p <cluster_name> es para especificar el nombre del cluster en minikube, si no especificaste un nombre de cluster puedes quitar este flag.
.
.
.
Para la creaci贸n de los templates y poder crear tu chart dejo el script bash actualizado a la fecha:

while read kind name; do
kubectl get -o yaml $kind $name > templates/$name-$kind.yaml
done <<EOF
deployment worker
deployment hasher
daemonset rng
deployment webui
deployment redis
service hasher
service rng
service webui
service redis
EOF

Y recuerda que para instalar un chart con helm debes indicarle el siguiente comando (recuerda ubicarte por fuera de la carpeta de tu chart, si no intentara buscar el chart en el hub o en un custom repo):

helm install <target_name> <chart_name> 
<h1>驴Qu茅 es Helm?</h1>

Es una herramienta que nos sirve como gestor de paquetes de Kubernetes.

Conceptos:

  • helm: es el cliente de Helm.
  • tiller: es el componente del servidor. Nos sirve para recibir los comandos que le enviamos desde helm. Ya que tiller se comunica directamente con el API de Kubernetes.
  • chart: son los paquetes manejados por helm.

A partir de helm v3. helm init ha sido deprecado y no es necesario utilizar Tiller. reference

La forma de instalar y usar Helm ha cambiado:

https://helm.sh/docs/intro/quickstart/

Hola, parece que Helm en su nueva versi贸n 3 ya no contiene el argumento 鈥榠nit鈥 ni es necesario 鈥楾iller鈥

Yo estoy siguiente el curso con mi cl煤ster creado en Digital Ocean.
Y dado que ellos son los que gestionan el master, los pasos para poder manejar e instalar helm en nuestro cl煤ster son distintos.
馃槃 Pero siempre la comunidad ayuda y encontr茅 este tutotial en espa帽ol que ense帽a paso a paso como hacerlo:
Link
Espero les sirva!

while read kind name; do
kubectl get -o yaml $kind $name > dockercoins/templates/$name-$kind.yaml
done <<EOF
deployment worker
deployment hasher
daemonset rng
deployment webui
deployment redis
service hasher
service rng
service webui
service redis
EOF

Helm 2 fue descontinuado.
Helm 3 no requiere tiller en el cluster de k8s.

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash

por qu茅 en el script de export utiliza el recurso daemonset para rng? si al ejecutar kubectl get all no aparece ning煤n recurso del tipo daemonset creado? En mi caso cambie esa l铆nea por deployment rng y me funcion贸 correctamente, tanto la exportaci贸n de los templates, como la creaci贸n de la aplicaci贸n con helm

Comando para hacer la instalaci贸n del helm chart:
Obtenido de la v3 de Helm. =>
helm install [release-name] [chart] [flags]

$ helm install dockercoins dockercoins

A mi me funcion贸 con el siguiente comando:

helm install v1 prometheus-community/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false

me sale el sigueinte error:
Error: error installing: the server could not find the requested resource
Alguein podria ayudarme con este problema?

helm search hub prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm search repo prometheus-community
helm install my-prometheus prometheus-community
helm status my-prometheus

Para la instalacion de helm en linux pueden hacer lo siguiente
descargan el binario desde la pagina de realeses del projecto en github
en mi caso es 3.9.3 y copiamos el link de descarga y luego usamos wget para descargar el archivo

wget https://get.helm.sh/helm-v3.9.3-linux-amd64.tar.gz

luego descomprimimos el archivo usando el siguiente comando

tar xf helm-v3.9.3-linux-amd64.tar.gz

esto nos dejara una carpeta si ingresamos a ella veremos el siguiente contenido:

-rw-r--r-- 1 user user 12K Aug 10 14:02 LICENSE
-rw-r--r-- 1 user user 3.3K Aug 10 14:02 README.md
-rwxr-xr-x 1 user user 45M Aug 10 13:58 helm*

luego usaremos el siguiente comando para moverlo a la carpeta donde linux almacena este tipo de binarios

sudo mv helm /usr/local/bin/

para confirmar que la instalacion se hizo de manera correcta usamos el siguiente comando y deberiamos ver lo siguiente:

helm version
version.BuildInfo{Version:"v3.9.3", GitCommit:"414ff28d4029ae8c8b05d62aa06c7fe3dee2bc58", GitTreeState:"clean", GoVersion:"go1.17.13"}

Para quienes est谩n utilizando kubectl (en pleno 2022), deben tener instalada la 煤ltima versi贸n de helm.

$ curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

No olviden que pueden instalarlo con brew (para el caso de MacOs)

$ brew install helm

Despu茅s, siguen los siguientes comandos para instalar Prometheus (link)

$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update
$ helm install prometheus-community/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false --generate-name

Instalar helm url updated:
https://helm.sh/docs/intro/install/

si les aparece el siguiente error los pueden solucionar de la sigueinte manera:
error:

Error: failed to start container "node-exporter": Error response from daemon: path / is mounted on / but it is not a shared or slave mount

crean un archivo values.yaml y colocan el siguiente texto:

nodeExporter:
  hostRootfs: false
prometheus-node-exporter:
  hostRootFsMount: false

finalmente realizar un upgrade de la instalacion de prometheus que tengan:

helm upgrade --install my-prometheus prometheus-community/prometheus --set server.service.type=NodePort --set server.persistentVolume.enabled=false --version 15.0.1 -f values.yaml

Instalacion de helm en Fedora:

sudo yum install openssl
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm version

en las versiones m谩s recientes de helm, el 煤ltimo comando se debe cambiar por
helm install --generate-name dockercoins

Falta el script de bash para exportar los services.

Falta los apuntes

buena ayuda a la hora de hacer deploy masivo 馃槂 gracias

Excelente, es muy importante que se renueve el contenido, porque no funciona porque las nuevas versiones se implementan diferente

Abril 2021:
la bandera --export est谩 obsoleta desde la version 1.14 en su lugar se utiliza algo como esto:

kubectl get [objeto] [nombre-objeto] -n [namespace] -o [yaml | json] > nombre_archivo.[yaml | json]

a continuaci贸n dejo mi script para descargar los archivos yaml

while read kind name; do
if [! -f ~/templates/$name-$kind.yaml]
then
touch ~/templates/$name-$kind.yaml
else
kubectl get $kind $name -n dockercoins -o yaml > ~/templates/$name-$kind.yaml
fi
done <<EOF
deployment worker
deployment hasher
daemonset rng
deployment webui
deployment redis
service hasher
service rng
service webui
service redis
EOF

Importante!!: Si usas CentOS o play with kubernetes debes instalar OpenSSL con el siguiente comando: yum install openssl y luego curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash

SONARQUBE_JDBC_URL: jdbc:postgresql://db.example.com:5432/sonar?ssl=true&sslmode=verify-ca&sslrootcert=/secrts/server-ca.pem&sslkey=/secrts/client-key.pem&sslcert=/path/to/client-cert.pem

quiero conectar el configmap con esos certificados en el chjart como puedo hacer agradezco si me pueden ayudar

Por qu茅 aparece que el servicio hasher ya existe? es decir, el ejercicio no se estaba realizando era con el worker? Quien podria explicarme esto ultimo por favor.

Y con el comando helm install dockercoins, se crean todos los servicios que copiamos en la carpeta templates?