Jack Wallen le guía a través del proceso de instalación de un clúster de Kubernetes en la plataforma de servidores CentOS 7.

    Video: Una rápida explicación sobre Docker y lo que puede hacer por el negocioSi trabaja en TI, probablemente haya oído hablar de Docker. Pero en caso de que no esté completamente seguro de lo que es, he aquí una explicación rápida de la tecnología y sus capacidades.

    Kubernetes es un sistema de código abierto utilizado para automatizar el despliegue, escalado y gestión de aplicaciones contenedorizadas. Kubernetes está preparado para la empresa y puede instalarse en varias plataformas. Ya he comentado cómo poner en marcha Kubernetes en el servidor Ubuntu (ver «Cómo instalar rápidamente Kubernetes en Ubuntu». Esta vez, voy a guiarte a través del proceso de creación de un clúster de Kubernetes en CentOS 7. Esto lo convierte en un excelente punzón de uno a dos para sus aplicaciones en contenedores.

    VER: Glosario rápido: Almacenamiento (Tech Pro Research)

    Lo que necesitarás

    Voy a hacer una demostración con tres servidores CentOS 7 (en las siguientes direcciones IP):

    • kubemaster: 192.168.1.99
    • kube2: 192.168.1.109
    • kube3: 192.168.1.167

    Asegúrese de cambiar las direcciones IP para que se ajusten a sus necesidades. También necesitará acceso de root en los tres servidores. Sugiero que primero pruebe esto en máquinas virtuales, antes de intentar la instalación en servidores de producción.

    Dicho esto, vamos a instalar.

    Configuración previa a la instalación

    Lo primero que quiere hacer es configurar su archivo /etc/hosts, para que cada máquina pueda hacer ping entre sí a través del nombre de host. Así que en cada máquina, emita el comando su (para cambiar al usuario root) y luego edite el archivo con el comando nano /etc/hosts. Al final del archivo, agregue lo siguiente (de nuevo, ajuste las direcciones IP para que se ajusten a sus necesidades):

    192.168.1.99 kubemaster192.168.1.109 kube2192.168.1.167 kube3

    Guarde y cierre ese archivo.

    Desactivar SELinux e intercambiar

    Ahora tenemos que deshabilitar tanto SELinux como swap. En las tres máquinas, emita los siguientes comandos:

    setenforce 0sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

    A continuación, desactive el intercambio (en las tres máquinas) con el siguiente comando:

    swapoff -a

    También debemos asegurarnos de que el intercambio no se vuelva a habilitar durante un reinicio en cada servidor. Abra el /etc/fstab y comente la entrada swap de esta manera:

    # /dev/mapper/centos-swap swap swap default 0 0

    Habilitar br_netfilter

    Para nuestro próximo truco, habilitaremos el módulo del kernel br_netfilter en los tres servidores. Esto se hace con los siguientes comandos:

    modprobe br_netfilterecho '1' > /proc/sys/net/bridge/bridge-nf-call-iptables

    Instalar Docker-ce

    Es hora de instalar la herramienta Docker necesaria. En las tres máquinas, instale las dependencias Docker-ce con el siguiente comando:

    yum install - yum-utils device-mapper-persistent-data lvm2

    A continuación, añada el repositorio Docker-ce con el comando:

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    Instale Docker-ce con el comando:

    yum install - docker-ce

    Instalar Kubernetes

    Esto también se hace en los tres servidores. Primero tenemos que crear una entrada en el repositorio para yum. Para ello, ejecute el comando nano /etc/yum.repos.d/kubernetes.repo y añada el siguiente contenido:

    [kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpggkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

    Guarde y cierre ese archivo. Instale Kubernetes con el comando:

    yum install - kubelet kubeadm kubectl

    Una vez finalizada la instalación, reinicie los tres equipos. Tan pronto como cada máquina se haya reiniciado, vuelva a iniciar sesión y haga clic en el usuario root.

    Cambios en el grupo

    Ahora tenemos que asegurarnos de que tanto Docker-ce como Kubernetes pertenecen al mismo grupo de control (cgroup. Por defecto, el Docker ya debería pertenecer a cgroupfs (puede comprobarlo con el comando docker info | grep -i cgroup. Para agregar Kubernetes a esto, ejecute el comando:

    sed -i 's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

    Reinicie el daemon systemd y el servicio kubelet con los comandos:

    systemctl daemon-reloadsystemctl reiniciar kubelet

    Inicializar el clúster de Kubernetes

    Ahora estamos listos para inicializar el grupo de Kubernetes. Esto se hace en kubemaster (y sólo en esa máquina. En kubemaster, ejecute el comando (de nuevo, ajuste las direcciones IP para que se ajusten a sus necesidades):

    kubeadm init --apiserver-advertise-address=192.168.1.99 --pod-network-cidr=192.168.1.0/16

    Cuando esto se complete (tomará entre 30 segundos y 5 minutos), la salida debe incluir el comando de unión para sus nodos (.

    Una vez que esto se complete, diríjase a kube2 y emita el comando (ajustando la dirección IP para que se ajuste a sus necesidades):

    kubeadm join 192.168.1.99:6443 --token TOKEN --discovery-token-ca-cert-hash DISCOVERY_TOKEN

    Donde TOKEN y DISCOVERY_TOKEN son los tokens que se muestran después de que se completa el comando de inicialización.

    Configurando Kubernetes

    Antes de poder usar Kubernetes, debemos ocuparnos de un poco de configuración. Emita los tres comandos siguientes (para crear un nuevo directorio de configuración de .kube, copie el archivo de configuración necesario y dé al archivo la propiedad adecuada):

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

    Desplegar la red de franela

    Ahora debemos desplegar la red de franela en el clúster con el comando:

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

    Comprobación de los nodos

    Una vez que el comando de despliegue se completa, debería ser capaz de ver ambos nodos en el maestro, emitiendo el comando kubectl get nodes .

    Todo listo

    Felicidades, ahora tienes un grupo de Kubernetes listo para las vainas. Estaré demostrando cómo desplegar tu primera cápsula cuando la próxima vez que visitemos el tema de los Kubernetes. Hasta entonces, ¡feliz agrupamiento!

    Véase también