Ambiente de Laboratorio Kubernetes y Rancher Manager
Revisión de Ambiente Actual
Ubique el URL de su instalación de Rancher Server:
https://rancher.A-B-C-D.nip.io <== Consulte el FQDN correcto de su archivo de inventario.
Este ambiente ha sido instalado recientemente para ustéd, por lo que deberá seleccionar una contraseña para el usuario admin.

La contraseña de bootstrap (una contraseña temporal es = admin).
Nota
No utilice contraseñas débiles, ya que esto es fuertemente explotado. Este ambiente está expuesto a internet y usted es el resposable de resguardar este acceso.
Utilice el comando sugerido para generar su contraseña o utilice la constraseña generada por Rancher Server.
- Desde una terminal de Linux, ejecute:
PASSWORD=$(openssl rand -base64 20) echo "Su contraseña es: ${PASSWORD}" - Utilice esta contraseña para el usuario admin de Rancher Server
- Guarde esta contraseña en un lugar seguro, se recomienda utilizar algun gestor de contraseñas.
Ya esta listo para utilizar su nuevo ambiente de Rancher Server

Inventario de Componentes
Deberá obtener la siguiente información y documentarla adecuadamente:
| Componente | Versión |
|---|---|
| Kubernetes Server | |
| Kubernetes Client | |
| RKE Version | |
| Cert Manager Helm Chart | |
| Cert Manager App | |
| Rancher Server | |
| Docker Version | |
| OS Version | |
| Kernel Version |
Para poder realizar esta tares, debe ubicar su la llave privada entregada en el inicio del curso ubicada en el arcchivo student-#-private_key.pem, en dónde # es su ambiente asignado.
-
Esta llave debe de ser resguardada adecuadamente, asegurese que cuenta con los permisos adecuados:
Desde una terminal de Linux, ejecute:
Si utiliza otro sistema operativo, consulte en la documentación del mismo el procedimiento adecuado.chmod 0400 student-#-private_key.pem -
Establesca una conexión via SSH, utilizando la llave privada y el usuario
student, el procedimiento puede varias dependiendo del sistema operativo o cliente de SSH utilizado.Obtenga la información de la dirección ip del inventariossh -i Ubicación_de_llave_student-#-private_key.pem student@IPADDRESS -
En el ambiente del curso, puede ubicar el directorio utilizado para instalar el cluster en
/home/student/devcluster, este cluster ha sido deplegado utilizando el método de RKE. Como el usuario student, ejecute:find $HOME/devcluster - Defina la variable de entorno
KUBECONFIG, para utilizar las credenciales de instalación del cluster.export KUBECONFIG=$HOME/devcluster/kube_config_cluster.yml
Nota
Estas credenciales son de administrador del cluster, por lo que debe resguardar este archivo adecuadamente y utilizarzo para realizar tareas administrativas en caso que algún otro método de autenticación no esté disponible.
- Identique la versión de Kubernetes Server / Client
kubectl version - Identifique la versión de RKE
cd $HOME/devcluster rke version cd $HOME - Identifique la versión de Cert Manager deplegado
helm list -A helm list -A |grep cert-manager helm status -n cert-manager cert-manager - Identifique la versión de Rancher Server deplegado
helm list -A helm list -A |grep rancher helm status -n cattle-system rancher - Identifique la versión de componentes del Nodo (Kernel, OS, Docker)
kubectl get nodes -o wide
Aplicar parches de seguridad a Nodos y Proteger versión de Docker-CE
- Listar las actualizaciones referentes a Seguridad de su sistema operativo, esto puede varias dependiendo de la distribución que utilice.
sudo dnf list updates --security - Si existen actualizaciones de Seguridad, apliquelas.
Nota
Toda actualización debe ser previamente validada en un ambiente de DEV/QA, para posteriormente ser promovido a PROD.
- Debido a la compatibilidad de la versión de RKE y Docker-CE, es necesario proteger la versión de este paquete, para no interrupmir su funcionamiento en una actualización del sistema operativo. Verifique si existen actualizaciones al paquete de docker-ce. No necesariamente la última versión será compatiable con su ambiente. Consulte la Matriz de Compatibilidad. Y trate de actualizarlo.
sudo dnf list updates docker-ce sudo dnf install docker-ce
Nota
No permite instalar debido a que el paquete esta protegido utilizando versionlock.
-
Liste todas las versiones disponibles del paquete docker-ce, únicamente de la versión compatible con esta versión de RKE, debe mantenerse en la versión
24.0.x.sudo dnf list docker-ce --showduplicates|grep 24.0 -
Identifique la versión mayor de ese listado. Ejemplo:
docker-ce.x86_64 3:24.0.9-1.el9 docker-ce-stable - Actualice de ser necesario, tome en cuenta que en el ambiente actual no existe una actualiación por seguridad. Por lo que se realizará con fines educativos. Defina la variable con el contenido anterior en el formato adecuado. NOMBRE_PAQUETE+VERSION_PAQUETE = docker-ce-3:24.0.9-1.el9, del ejemplo anterior.
DOCKER_VERSION=docker-ce-3:24.0.9-1.el9 sudo dnf versionlock clear docker-ce sudo dnf install ${DOCKER_VERSION} -y sudo dnf versionlock add docker-ce - Opcionalmente puede actualizar los paquetes el sistema operativo, que no son relacionados a seguridad para mejorar la estabilidad del sistema. De ser necesario.
sudo dnf update -y
Nota
Al estar protegido el paquete docker-ce, se puede proceder. Verificar en la documentación del producto los paquetes que son necesarios para proteger, esto puede cambiar entre versiones.
Actualización de Versión de Kubernetes
Se ha identificado, que la versión de su cluster desplegado utilizando RKE, no cumple con las políticas de la organización y deberá actualizar la versión de Kubernetes a la última versión soportada por el binario de rke.
- Asegurese de esta conectado como el usuario student
whoami - Defina la variable de entorno
KUBECONFIG, para utilizar las credenciales de instalación del cluster.export KUBECONFIG=$HOME/devcluster/kube_config_cluster.yml - Ingrese al directorio que contiene el archivo de configuración del cluster
cd $HOME/devcluster/ - Liste las versiones soportadas de Kubernetes por RKE
rke config --list-version -a - Identifique la última versión soportada
KUBERNETES_VERSION=$(rke config --list-version -a|sort -rn | head -n1) echo ${KUBERNETES_VERSION} # <= Asegurese qué esta versión es la más reciente, para nuestro lab debe ser > v1.28.x - Realice una copia de seguridad del archivo de configuración actual
cp cluster.yml cluster.yml-$(date +%F) - Obtenga la versión definida del archivo de configuración del cluster
cluster.yml.grep ^kubernetes_version cluster.yml - Modifique la versión en el archivo de configuraión
cluster.ymly valide el cambio.sed -i "s/^kubernetes_version.*/kubernetes_version: ${KUBERNETES_VERSION}/g" cluster.yml grep ^kubernetes_version cluster.yml - Aplique el cambio en el cluster
rke up
!!! Nota:
Esta tarea en un cluster de producción, puede tomar mucho timepo. Por lo que es recomendado ejecutarlo desde la linea de comando en una herramienta como ```tmux``` o ```screen```. O realizarlo por medio de algun procedimiento de gitops.
- Realice nuevamente la validación del componente de Kubernetes Server y confirme que tenga la versión deseada.
kubectl version kubectl get nodes -o wide - La versión de Kubernetes puede mostrarse en la versión deseada, pero algunos componentes podrán estar iniciando debido al cambio de versión. Pueden consultar el estado de todos los pods en un estado diferente a
Running.kubectl get pods -A |grep -E -v "(Running|Completed)" - Espere hasta que terminen de habilitarse todos los componentes y que no aparezca ninguna en la lista del siguiente comando.
watch 'kubectl get pods -A |grep -E -v "(Running|Completed)" '
Nota
En este ambiente solo se cuenta con un nodos el cual tiene el rol de worker y controlplan, por lo que este procedo puede tardar unos minutos. Y durante este tiempo, no podrá acceder a la consola de Rancher Server.
-
Presione
Ctr+C, para detener la ejecución del comandowatch. -
Ingrese a la consola web de Rancher Server y valide que este funcionando de forma correcta.
- Regrese a su directorio personal de trabajo
cd
Refencias
| Documento | URL |
|---|---|
| RKE Release | https://github.com/rancher/rke/releases |