Aprovechando la prueba gratuita de Goole vamos a desplegar un cluster configurar el dashboard y desplegar un helm.

https://cloud.google.com/free/?hl=es-419

Instalar y configurar SDK

Partimos de que ya hemos instalado kubernetes en centos como se describe en post anteriores. Para instalar el SDK hay que añadir el repo.

sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM

sudo yum install google-cloud-sdk

Autentication Google Cloud

gcloud auth login

Configuramos en que proyecto vamos a trabajar.

gcloud config set project kubeg-260919

Creación del cluster de kubernetes

gcloud container clusters create kluster --machine-type n2-standard-4 --region europe-west2-c --cluster-version 1.14.8-gke.17

Configuramos el kubectl

gcloud container clusters get-credentials kluster --region europe-west2-c

Desplegando Dashboard

En este punto es lo mismo que en el post anterior desplegar dashboard on premise solo que hay que saltarse la parte de metallb porque las ips las va a gestionar google.
https://piensoluegoinstalo.com/kubernetes-cluster-dashboard-on-premise/

Los certificados se pueden crear autofirmados pero si contais con un dns publico podeis crearlos firmados con lets encrypt y el lets enctryp-omatik
https://piensoluegoinstalo.com/letsencrypt-o-matik-certificados-firmados-al-instante/

Con certificados ya creados sean autofirmados no

kubectl create namespace kubernetes-dashboard
kubectl -n kubernetes-dashboard create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs

Deployment del dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml

Ahora editamos el servicio y cambiamos a LoadBalancer, esto provocara que google nos asigne una ip externa, si el dns no es publicado editamos el hosts para que resuelva la ip que nos ha dado google al cn de nuestro certificado antes desplegado. En caso de ser und dns publico recongurirarlo para que apunte que google nos asigne.

kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

Crear el service account y otorgarle privlegios.

nano admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
kubectl apply -f admin.yaml

Para entrar es necesario el token

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

Para ver que ip nos han asignado.

kubectl -n kubernetes-dashboard get service kubernetes-dashboard
En este caso hago que el dominio kluster.cf resuelva la ip que me ha dado asi mi dashboard estare en https://kluster.cf y entro con el token

Helm

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

tar -xzvf helm-v3.0.1-linux-amd64.tar.gz

cp ./linux-amd64/helm /usr/bin/

Iniciamos helm y añadimos el repo stable

helm init

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

helm repo update

Ya podmeos desplegar charts desde la consola.

helm install jenkins stable/jenkins

Aqui os dejo un video con musiquita 😉

https://www.youtube.com/watch?v=thm-pWe8l78&feature=youtu.be
PD: Google ah reducido la cuota de numeros de cpus por region de 12 a 8. Por lo que para crear el cluster usamos esta comando:
gcloud container clusters create kluster --machine-type n1-highmem-2 --region europe-west2-c  --num-nodes 4 --cluster-version 1.14.8-gke.17

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *