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.
- 1- Rancher: El cluster definitivo de Kubernetes EP1
- 2- Rancher: El cluster definitivo de Kubernetes EP2 – Instalando el cluster
- 3- Rancher: El cluster definitivo de Kubernetes EP3 – Instalar rancher
También os dejo más información de la página oficial de rancher.