Instalar Helm + Prometheus + Ingress Nginx Controller

Helm ya es un standart, nos viene bien tener a mano como desplegarlo en nuestro cluster. Descargmos e instalamos helm en master wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz tar -xzvf helm-v2.14.3-linux-amd64.tar.gz mv linux-amd64/helm /usr/local/bin/helm mv linux-amd64/tiller /usr/local/bin/tiller Una vez instalado los deplegamos en el cluster kubectl -n kube-system create serviceaccount tiller kubectl create clusterrolebinding tiller \ –clusterrole=cluster-admin \ –serviceaccount=kube-system:tiller helm init –service-account tiller Una vez activado helm en el cluster ya podemos desplegar charts pero para sacarle el maximos Leer más…

Backup Kuberentes Cluster

Creamos una carpeta backup en el master y copiarmos la configuracion de kubernetes mkdir /backup cp -r /etc/kubernetes/pki /backup/pki cp -r /etc/kubernetes/manifests /backup Para crear el snapshot tenemos que montar la misma imagen que tengamos en el etcd.yaml image_version=$(cat /backup/manifests/etcd.yaml | grep image: | awk ‘{print $2}’) && echo $image_version Creamos el snapshot sudo docker run –rm -v /backup:/backup –network host -v /etc/kubernetes/pki/etcd:/etc/kubernetes/pki/etcd –env ETCDCTL_API=3 $image_version etcdctl –endpoints=https://127.0.0.1:2379 –cacert=/etc/kubernetes/pki/etcd/ca.crt –cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt –key=/etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save /backup/etcd-snapshot-latest.db Con Leer más…

StorageOS aprovisionamiento dinamico en Kubernetes

StorageOS es una solucion de persistencia de datos sobre volumnes docker, esto nos da la posibilidad de poder hacer un backup full-data, es decir, un backup tanto del etcd como de los datos persistentes de las aplicaciones, tambien cuenta con aprovisionamiento dinamico y replicacion. La unica pega es que es de pago pero hay una capa grautita de 100Gb Añadir el helm repo storageos helm repo add storageos https://charts.storageos.com Instalar el chart en el namespace Leer más…

LetsEncrypt-o-matik certificados firmados al instante

Los certificados https son requeridos cada dia mas por mas servicios. Aqui os dejo un par de imagenes docker que con una simple pipeline y un dns publico podemos crear certificados por los dominios que usemos. Lo bueno que tiene el poder crear certificados standalone es que una vez exportados ya podemos integrados en una red interna donde controlemos tambien el dns o en servicios publicos pero que no usen el puertos 80, como por Leer más…

NFS Dinamic Provisioner Kubernetes

Aqui dejo los comandos para crear el aprovisionamientos dinamico para nuestros helm/install, nfs no es lo recomendado pero la instalacion es rapida y sencilla y muy compatoble con varios sistemas Crear un servidor NFS yum install -y nfs-utils systemctl enable rpcbind systemctl enable nfs-server systemctl start rpcbind systemctl start nfs-server mkdir /var/nfsshare chmod -R 755 /var/nfsshare firewall-cmd –permanent –zone=public –add-service=nfs firewall-cmd –permanent –zone=public –add-service=rpcbind firewall-cmd –reload # vi /etc/exports /var/nfsshare *(rw,sync,no_root_squash) helm install stable/nfs-client-provisioner –set Leer más…

Docker Private Registry en Centos7

Vamos a crear un servidor que nos haga el servicio de Docker Registry donde depositaremos nuestras imagenes compiladas. Partimos de que tenemos un servidor 192.168.1.50 y le damos el nombre dns myhub.com Los siguientes pasos se haran en el servidor: Crear certificado tls: mkdir -p /opt/docker-registry/certs/ openssl req -newkey rsa:2048 -nodes -sha256 -x509 -days 365 -keyout /opt/docker-registry/certs/docker_registry.key -out /opt/docker-registry/certs/docker_registry.crt Para poder loguearnos en el docker registry necesitamos copiar el .crt en /etc/docker/certs.d desde el docker Leer más…

Despliegue de Aplicaciones con Helm + Heketi-cli/Glusterfs

Tenemos un master y 4 nodos esclavos ya instalador y configurados en un cluster de kubernetes 192.168.1.88 k8s-master 192.168.1.41 node01 192.168.1.42 node02 192.168.1.43 node03 192.168.1.44 node04 A cada nodo le hemos dado un disco duro sin formato: /dev/sdb Instalar Ansible yum install epel-release yum install ansible Una vez instalado vamos a designar los nodos al final del archivo /etc/ansible/hosts [nodes] 192.168.1.41 ansible_hostname=node01 192.168.1.42 ansible_hostname=node02 192.168.1.43 ansible_hostname=node03 192.168.1.44 ansible_hostname=node04 Creamos una clave ssh ssh-keygen -t rsa Leer más…

Kubernetes Cluster Dashboard on premise

Preaparando el Acceso Una vez hemos desplegado un cluster con flannel… Veremos que aunque pongamos los servicios en type LoadBalancer no se asigna ninguna ip externa y aunque se la pongamos manualmente no podemos llegar a ella. La documentación que hay sobre Ingress controller sirve para configurara en los proveedores aws google azure… que expongamos el servicio y asignemos una ip no es suficiente dado que ni flannel ni kubernetes se encargan de la configuración Leer más…

Install cluster Kubernetes on Centos 7.5

Nuestro cluster se va a compener de 4 ordenadors/maquinas virtuales fisicos: Preaparando el entorno para configurar la ip manualmente usarmeos el comando: nmtui Luego configurar el archivo /etc/hosts con la ip de los demas nodos vi /etc/hosts 192.168.1.88 k8s-master 192.168.1.41 node01 192.168.1.42 node02 192.168.1.43 node03 La siguiente instalacion se efetuara en las 4 maquinas. Deshabilitar SELinux and Swap setenforce 0 sed -i –follow-symlinks ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/sysconfig/selinux swapoff -a vi /etc/fstab # /dev/mapper/centos-swap swap swap defaults 0 Leer más…

Iniciar KODI como servicio en raspberry Pi 3

  Crear un icono.(opcional) [Desktop Entry] Name=KODI Comment=KODI MEDIA CENTER Exec=/usr/local/bin/startkodi Icon=/usr/share/kodi/media/icon256x256.png Terminal=false Type=Application Categories=Sound;Video; StartupNotify=true   nano /usr/local/bin/startkodi #!/bin/bash fbset_bin=`which fbset` xset_bin=`which xset` xrefresh_bin=`which xrefresh` if [ ! -z $fbset_bin ]; then DEPTH2=`$fbset_bin | head -3 | tail -1 | cut -d » » -f 10` fi kodi «$@» if [ ! -z $fbset_bin ]; then if [ «$DEPTH2» == «8» ]; then DEPTH1=16 else DEPTH1=8 fi $fbset_bin -depth $DEPTH1 > /dev/null 2>&1 $fbset_bin -depth Leer más…