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 0

Habilitar el module br_netfilter

modprobe br_netfilter 
vi /etc/sysctl.conf

Añadimos al final

net.bridge.bridge-nf-call-iptables = 1

Guardamos y ejecutamos.

sysctl -p

Deshabilitar el firewall

systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld

 

Install Docker-ce

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce-18.03.1.ce-1.el7.centos

habilitar el servicio docker

systemctl start docker
systemctl enable docker

configurar el servicio de docker

vi /etc/docker/daemon.json
{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] } 

Install Kubernetes

Añadir el repo de kubernetes

vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-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

Instalar kubernetes

yum install -y kubelet-1.14.7-0  kubeadm-1.14.7-0  kubectl-1.14.7-0 

Habilitar el servicio kubelet

systemctl enable kubelet
systemctl start kubelet
reboot

Starting Cluster

Iniciar kubeadm init en el master

En caso de usar flannel

kubeadm init --apiserver-advertise-address=192.168.1.88 --pod-network-cidr=10.244.0.0/16

Exponer el archivo de configuracion a usuario regular

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

Desplegar el pod network

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

flannel.yaml

Copiar el token y el hash generado sera necesario para unir nodos al cluster, tenemos que usar este comando en los nodos

kubeadm join 192.168.1.88:6443 --token exw87m.nipez9fst1keqehh --discovery-token-ca-cert-hash sha256:381735aa25e490539d420da8319b8a3dc73ef9caa1ce66405519999bcc3fc6cd

Verificar

kubectl get pods --all-namespaces
kubectl get nodes

Para ver el log en detalle de un pod

kubectl --namespace=kube-system describe pod pod-name

Para ver de nuevo el kubeadm join

kubeadm token create --print-join-command 

Videos
Configurando cada nodo

Creando el cluster


2 comentarios

joseph · 28 de enero de 2020 a las 15:05

Hola muy buen tutorial. Mi consulta es saber, si puedo implementar k8s, en servidores virtuales de mi lan, sin conectar a servicios de cloud. En modo sencillo, quiero instalar un cluster k8s en mi red interna de mi empresa. Se puede?

    AdriAk · 3 de febrero de 2020 a las 21:34

    Buenas.

    Se puede sin ningun problema.

    Solo especial atencion a la parte de las ips, el despliegue de flannel y el metallb si sigues los pasos no del tutorial es perfectamente posible solo que con maquinas de tu empresa.

    Despues llega la parte de la persistencia, el cluster storage es lo mas recomendado pero si quieres al sencillo y rapido la opcion nfs es muy rapida.

    Si el volumen de maquinas virtuales que vas a manejar es menos de 100 proxmox-ve es una opcion muy ligera que te deja adminsitrar los recursos del hierro de forma muy eficiente.

    Si hablamos de grandes volumnes instala openstack y encima openshift para el kubernetes muchas menos versatilidad,pero te dan el trabajo hecho si vas trabajar con enormes volumnes de maquinas virtuales.

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 *