Rancher: El cluster definitivo de Kubernetes EP2 – Instalar cluster de kubernetes

0
5083
Rancher logo
Logo de rancher

Seguimos desplegando el cluster definitivo de kubernetes, ahora ya pasamos a interactuar directamente con los nodos.

Os dejo la anterior entrada por si os la perdisteis. Siguiendo donde lo dejamos en el anterior capítulo, pasamos a instalar docker en los 3 nodos, y seguimos con el fin de instalar el cluster de kubernetes.

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum -y install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && systemctl enable docker

El siguiente paso debido al uso de nuestra distribución que es centos 7. Tendremos que crear un usuario específico para centos y asignarle una password con el comando passwd. También deberemos añadirle el grupo docker.

adduser kubeadmin
usermod -aG docker kubeadmin

Ahora pasaremos a instalar kubectl, para ello nos descargaremos el binario con el siguiente comando.

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

Le damos permisos de ejecución y lo movemos al PATH

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
cat < /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
EOF
yum install -y kubectl

Hacemos lo mismo para instalar RKE. Descargamos el binario, le cambiamos el nombre, permisos de ejecución y lo movemos al PATH.

wget https://github.com/rancher/rke/releases/download/v1.0.10/rke_linux-amd64
mv rke_linux-amd64 rke
chmod +x ./rke
sudo mv ./rke /usr/local/bin/rke

Ahora creamos el fichero del cluster, lo dejaremos en /srv/rancher/rancher-cluster.yml, lo rellenaremos con los siguientes datos. Marco en bold el texto a sustituir por nuestras IP’s o DNS. Este paso solo lo debemos ejecutar en el primer nodo.

nodes:
  - address: rancher01.sysadm.local
    internal_address: rancher01.sysadm.local
    user: kubeadmin
    role: [controlplane, worker, etcd]
  - address: rancher02.sysadm.local
    internal_address: rancher02.sysadm.local
    user: kubeadmin
    role: [controlplane, worker, etcd]
  - address: rancher03.sysadm.local
    internal_address: rancher03.sysadm.local
    user: kubeadmin
    role: [controlplane, worker, etcd]

services:
  etcd:
    snapshot: true
    creation: 6h
    retention: 24h

# Required for external TLS termination with
# ingress-nginx v0.22+
ingress:
  provider: nginx
  options:
    use-forwarded-headers: "true"

Generamos una clave con nuestro usuario kubeadmin y la copiamos al resto de servidores, para ellos hacemos.

su kubeadmin
ssh-keygen
ssh-copy-id kubeadmin@rancher01
ssh-copy-id kubeadmin@rancher02
ssh-copy-id kubeadmin@rancher03

Aplicamos las siguientes configuraciones en los 3 servidores

sed -i '/swap/s/^/#/' /etc/fstab
swapoff -a

cat <<EOF > /etc/modules-load.d/k8s.conf
br_netfilter
EOF
modprobe br_netfilter

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

Asignamos permiso a nuestro usuario kubeadmin a /srv/rancher

chown -R kubeadmin /srv/rancher

Con nuestro usuario kubeadmin ejecutamos la creación del cluster con rke:

su kubeadmin
rke up --config /srv/rancher/rancher-cluster.yml

Empezará el proceso de creación del cluster de kubernetes, si hemos seguido los pasos anteriores, no deberíamos recibir ningún error, veremos el siguiente mensaje una vez finalizada la creación del cluster

INFO[0263] [ingress] ingress controller nginx deployed successfully
INFO[0263] [addons] Setting up user addons
INFO[0263] [addons] no user addons defined
INFO[0263] Finished building Kubernetes cluster successfully

Ahora moveremos el fichero de configuración a nuestro directorio, lo podemos hacer ya con nuestro usuario root o kubeadmin, el que vayamos a utilizar.

touch -p ~/.kube/config
cp /srv/rancher/kube_config_rancher-cluster.yml $HOME/.kube/config
[root@rancher01 rancher]# kubectl get nodes
NAME                     STATUS   ROLES                      AGE     VERSION
rancher01.sysadm.local   Ready    controlplane,etcd,worker   7m44s   v1.17.6
rancher02.sysadm.local   Ready    controlplane,etcd,worker   7m44s   v1.17.6
rancher03.sysadm.local   Ready    controlplane,etcd,worker   7m44s   v1.17.6
[root@rancher01 rancher]#

Ya veremos los tres nodos ready. Y con los respectivos roles necesarios, el siguiente paso es instalar rancher, aunque para ello deberemos cumplir unos requisitos. Para el próximo capítulo, finalizaremos la configuración.

También os dejo más información de la página oficial de rancher.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí