Skip to content

Proceso de Instalación de Rancher Kubernetes Engine (RKE)

RKE es un instalador de Kubernetes rápido y versátil que puede usar para instalar Kubernetes en sus hosts Linux. Puede comenzar con un par de pasos rápidos y sencillos. RKE se ejecuta en casi cualquier sistema operativo Linux con Docker instalado. Para obtener detalles sobre qué versiones de SO y Docker se probaron con cada versión, consulte los términos de mantenimiento de soporte.

  1. Descargar el binario RKE

  2. Preparar los nodos para el clúster de Kubernetes

  3. Creación del archivo de configuración del clúster

  4. Implementación de Kubernetes con RKE

  5. Guardar los archivos generados

  6. Interactuar con su clúster de Kubernetes

Diagrama

Laboratorio: Requerimientos de instalación Rancher Kubernetes Engine (RKE)

Descripción

RKE se ejecuta en casi cualquier sistema operativo Linux con Docker instalado, la siguiente guía incluye los pasos a realizar para llevar a cabo la preparación de un servidor para la instalación de Rancher Kubernetes Engine (RKE)

Objetivos

  • Configurar/Instalar los requerimientos para una instalación de Rancher Kubernetes Engine (RKE)

Antes de comenzar

  • Contar con el acceso al ambiente de laboratorio

Inicio del Laboratorio

  1. Ingresar al servidor student-#-aio con las credenciales o llave proporcionados
    ssh student@student-#-aio -i student-#-private_key.pem
    
  2. Agregar al sistema operativo el repositorio de Docker CE
    sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    
  3. Remover el software que no es necesario para este laboratorio (Es posible que el software no se encuentre instalado)
    sudo dnf remove podman buildah -y
    
  4. Listar las versiones de Docker CE disponibles para realizar la instalación
    sudo yum list docker-ce --showduplicates
    
  5. Llevar a cabo la instalación de Docker CE y herramientas necesarias
    sudo yum install wget docker-ce -y
    
  6. Habilitar el servicio de Docker CE
    sudo systemctl enable --now docker
    
  7. Verficar que el servicio de Docker CE se encuentre iniciado correctamente
    sudo docker info
    
  8. Crear un usuario de sistema operativo para llevar a cabo la instalación de RKE
    sudo useradd rke
    
  9. Agregar al usuario RKE de instalación al grupo de Docker CE

    sudo usermod -aG docker rke
    

    Realizar todos los pasos anteriores también para los servidores student-#-master y student-#-worker

    Para acceder a los servidores student-#-master y student-#-worker por medio de SSH, se debe copiar la llave privada asignada (student-#-private_key.pem) hacia el servidor student-#-aio, asegurandose que cuente con los permisos (0600), y utilizarla de la siguiente manera (dentro del servidor student-#-aio):

    ssh student@student-#-master -i student-#-private_key.pem
    ssh student@student-#-worker -i student-#private_key.pem
    

  10. Ingresar al servidor student-#-aio con las credenciales o llave proporcionados

  11. Crear el directorio donde se almacena la llave SSH para el usuario rke

    sudo -u rke mkdir --mode=0700 ~rke/.ssh/
    

  12. Generar una llave SSH para poder realizar la conexión con el usuario de instalación de RKE, por defecto se genera el el directorio ~/.ssh/
    ssh-keygen -N "" -f ~/.ssh/id_rsa
    
  13. Copiar la llave generada anteriormente al archivo ~/.ssh/authorized_keys del usuario de instalación de RKE
    cat .ssh/id_rsa.pub |sudo -u rke tee -a ~rke/.ssh/authorized_keys 
    
  14. Validar el acceso por medio de SSH utilizando el usuario de instalación de RKE a cada uno de los servidores de conforman el laboratorio
    ssh rke@student-#-aio uptime
    
    Nota: Si aparece el mensaje:
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    
    Esbriba la palabra yes y presione Enter
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    

Realizar los siguientes pasos para el servidor student-#-master

  1. Ingresar al servidor student-#-master con las credenciales o llave proporcionados
  2. Crear el directorio donde se almacena la llave SSH para el usuario rke
    sudo -u rke mkdir --mode=0700 ~rke/.ssh/
    
  3. Copiar el contenido del archivo ~/.ssh/id_rsa.pub del servidor student-#-aio hacia el archivo ~rke/.ssh/authorized_keys del servidor student-#-master
    echo "CONTENIDO_PUB_KEY" |sudo -u rke tee -a ~rke/.ssh/authorized_keys
    

Realizar los siguientes pasos para el servidor student-#-worker

  1. Ingresar al servidor student-#-worker con las credenciales o llave proporcionados
  2. Crear el directorio donde se almacena la llave SSH para el usuario rke
    sudo -u rke mkdir --mode=0700 ~rke/.ssh/
    
  3. Copiar el contenido del archivo ~/.ssh/id_rsa.pub del servidor student-#-aio hacia el archivo ~rke/.ssh/authorized_keys del servidor student-#-worker
    echo "CONTENIDO_PUB_KEY" |sudo -u rke tee -a ~rke/.ssh/authorized_keys
    

Revisar los accesos sin credenciales desde el servidor student-#-aio

  1. Ingresar al servidor student-#-aio con las credenciales o llave proporcionados
  2. Validar el acceso por medio de SSH utilizando el usuario de instalación de RKE a cada uno de los servidores de conforman el laboratorio
    ssh rke@student-#-aio hostname
    ssh rke@student-#-master hostname
    ssh rke@student-#-worker hostname
    
    Nota: Si aparece el mensaje:
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    
    Esbriba la palabra yes y presione Enter
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    

Laboratorio: Instalación Rancher Kubernetes Engine (RKE)

Descripción

RKE se ejecuta en casi cualquier sistema operativo Linux con Docker instalado, el siguiente laboratorio aborda la instalación de Rancher Kubernetes Engine en modo All In One para efectos del laboratorio.

Objetivos

  • Realizar la instalación Rancher Kubernetes Engine (RKE) en modo Single Server

Antes de comenzar

  • Contar con el acceso al ambiente de laboratorio

Inicio del Laboratorio

  1. Ingresar al servidor student-#-aio con las credenciales o llave proporcionados
  2. LLevar a cabo la instalación del CLI de Kubernetes (kubectl)
    mkdir -p ~/bin/
    cd ~/bin/
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x ~/bin/kubectl
    
  3. Verificar la version del CLI de Kubernetes (kubectl)
    kubectl version
    
  4. Configuración de bash auto-completion
    sudo yum install bash-completion -y
    echo "source <(kubectl completion bash)" >> ~/.bashrc
    source ~/.bashrc
    
  5. Realizar las pruebas de autocompletado, si no funciona en la misma terminal, puede abrir una nueva terminal para que los cambios se apliquen.
    kubectl c[TAB]
    
  6. Realizar la instalación del binario RKE
    cd ~
    wget https://github.com/rancher/rke/releases/download/v1.4.10/rke_linux-amd64
    mv rke_linux-amd64 ~/bin/rke
    chmod +x  ~/bin/rke
    
  7. Verificar la versión de RKE
    rke --version
    
  8. Revisar las versiones de Kubernetes soportadas para la instalación actual de Rancher Kubernetes Engine (RKE)
    rke config --list-version --all
    
  9. Generar el archivo de instalación y configuración del cluster de Rancher Kubernetes Engine (RKE) All In One donde estará instalado Rancher Server Antes de comenzar verifique la siguiente información:
  10. Dirección IP de su servidor student-#-aio
  11. Usuario de Instalación, para este laboratorio se esta utilizando el usuario llamado rke

mkdir -p ~/rke-cluster-aio
cd ~/rke-cluster-aio/
rke config --name cluster.yml
Responda todas las preguntas que se le presentan a continuación, puede guiarse en el siguiente ejemplo:
rke config --name cluster.yml
[+] Cluster Level SSH Private Key Path [~/.ssh/id_rsa]:
[+] Number of Hosts [1]:
[+] SSH Address of host (1) [none]: student-#-aio
[+] SSH Port of host (1) [22]:
[+] SSH Private Key Path of host (10.128.0.39) [none]:
[-] You have entered empty SSH key path, trying fetch from SSH key parameter
[+] SSH Private Key of host (10.128.0.39) [none]:
[-] You have entered empty SSH key, defaulting to cluster level SSH key: ~/.ssh/id_rsa
[+] SSH User of host (10.128.0.39) [ubuntu]: rke
[+] Is host (10.128.0.39) a Control Plane host (y/n)? [y]: y
[+] Is host (10.128.0.39) a Worker host (y/n)? [n]: y
[+] Is host (10.128.0.39) an etcd host (y/n)? [n]: y
[+] Override Hostname of host (10.128.0.39) [none]:
[+] Internal IP of host (10.128.0.39) [none]: xx.xx.xx.xx
[+] Docker socket path on host (10.128.0.39) [/var/run/docker.sock]:
[+] Network Plugin Type (flannel, calico, weave, canal, aci) [canal]:
[+] Authentication Strategy [x509]:
[+] Authorization Mode (rbac, none) [rbac]:
[+] Kubernetes Docker image [rancher/hyperkube:v1.21.5-rancher1]:
[+] Cluster domain [cluster.local]:
[+] Service Cluster IP Range [10.43.0.0/16]:
[+] Enable PodSecurityPolicy [n]:
[+] Cluster Network CIDR [10.42.0.0/16]:
[+] Cluster DNS Service IP [10.43.0.10]:
[+] Add addon manifest URLs or YAML files [no]:
10. Explorar el archivo de instalación y configuración del cluster de Rancher Kubernetes Engine (RKE) creado anteriormente para la instalación All In One donde estará instalado Rancher Server
cat ~/rke-cluster-aio/cluster.yml
11. Llevar a cabo la Instalación del cluster Rancher Kubernetes Engine (RKE) All In One donde estará instalado Rancher Server
rke up
12. Verificar que la instalación finalice satisfactoriamente INFO[0000] Building Kubernetes cluster

INFO[0000] [dialer] Setup tunnel for host [10.0.0.1]

INFO[0000] [network] Deploying port listener containers

INFO[0000] [network] Pulling image [alpine:latest] on host [10.0.0.1]

INFO[0101] Finished building Kubernetes cluster successfully

  1. Revisar los archivos generados posterior a una instalación satisfactoria
    ls -ltr ~/rke-cluster-aio/
    cat ~/rke-cluster-aio/cluster.yml
    cat ~/rke-cluster-aio/kube_config_cluster.yml
    cat ~/rke-cluster-aio/cluster.rkestate
    
  2. Ingresar y revisar el cluster de Kubernetes ALL IN One utilizando el archivo kubeconfig
    export KUBECONFIG=~/rke-cluster-aio/kube_config_cluster.yml
    
  3. Verifique que todos los servidores estan ejecutándose correctamente
    kubectl get nodes
    
  4. Verifique que todos los pods estan ejecutándose correctamente
    kubectl get pods -A