sábado, 28 de abril de 2018

HELM en GKE cluster



Hoy en google cloud español, en esta guía rápida ayuda con algunos aspectos prácticos sobre cómo ejecutar el HELM en el clúster Google Kubernetes Engine (GKE).

Para poder entender y aprovechar esta entrada tienes que tener conocimientos previos sobre:

Las herramientas HELM , Kubernetes y GKE.
Tener  una instalación local de kubectl y HELM también un clúster GKE con al menos 3 nodos.
Y ademas esto esta probad en estas versiones:  cliente kubectl 1.9.3, cliente helm 2.8.2 GKE v1.9.6-gke.1

Crear cuenta de servicio para HELM

Primero crea una cuenta de servicio para HELM y adjunta una función de administrador de clúster. Hay razones por las que deberías hacer esto. Esto se puede hacer con kubectl apply -f <file>

# This is an extract from here: http://jayunit100.blogspot.fi/2017/07/helm-on.htmlapiVersion: v1kind: ServiceAccountmetadata: name: helm namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata: name: helmroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects: - kind: ServiceAccount name: helm namespace: kube-system


Crea estes fichero con nombre crear-account-helm.yaml y crear cuenta de servicio para HELM y clusterrolebinding.

$ kubectl apply -f crear-account-helm.yaml


Elevar privilegios para crear ClusterRoleBindings

Omita esta sección si el comando anterior no prensento errores. A veces, terminará con errores prohibidos en GKE. Una forma más simple de resolver esto es ejecutando ClusterRoleBinding como usuario privilegiado esto se hace: Obtenga su contraseña de administrador con gcloud describe

$ gcloud container clusters describe my_k8s --zone europe-west2-a --proyect kubernetes-helm | grep -i password
Use esas credenciales y cree la cuenta de servicio y el enlace de rol de clúster de la sección anterior. Una forma sería modificar su $HOME/ .kube/config para agregar una nueva entrada de usuario y proporcionarla a su contexto y luego volver atrás después de inicializar HELM.

- context:      cluster: gke_kubernetes-helm_europe-west2-a_my_k82      namespace: jx      user: cluster-admin   name: gke_kubernetes-helm_europe-west2-a_my_k82users:- name: cluster-admin  user:     password: <la password que hemos localizado>     username: admin

Inicializamos HELM

Ahora ejecute $ helm init  pasando la cuenta de servicio.

$ helm init --service-account helm
-----<Salida de comando>
$helm version
-----<Tienes que ver la vesiones del Cliente y del Server de helm>

Verificar HELM

Para empezar, debe haber al menos una implementación y un servicio con el nombre:
 tiller-deploy in kube-system namespace.

$ kubectl get deploy,svc tiller-deploy -n kube-system

Crea un samplechart e instálalo con el nombre helm-test. Esto va a instalar un simple pod nginx. Establezca el tipo de servicio como LoadBalancer.

$ helm create samplechart
Puedes ver la ip externa asignada después de no menos de 5 minutos con:
 $ helm get svc
Y podrás aceder a esa web pero lo mas rapido es un: curl <ip.ip.ip.ip>

Con todo esto obtendrás en marcha y funcionado  HELM, el error mas común es  encontrarse con un "Authorization error" un Error sobre clusterrrolebindings.rback.authorization.k8s.io donde el usuario  no pude crear el clusterrolebindngs, el problema es que el usuario carece de permisos pero para eso tienes en este blog la sección "Elevar privilegios para ClusterRoleBindings", no copies y peges lee las instrucciones. ;-)