Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Instalar/Actualizar versión SUSE Rancher Prime en un clúster de Kubernetes

En esta sección, aprenderás a desplegar Rancher en un clúster de Kubernetes utilizando la CLI de Helm.

Requisitos previos

Clúster de Kubernetes

Configura el clúster local de Kubernetes del servidor Rancher.

Rancher se puede instalar en cualquier clúster de Kubernetes. Este clúster puede utilizar Kubernetes upstream, o puede utilizar una de las distribuciones de Kubernetes de Rancher, o puede ser un clúster de Kubernetes gestionado por un proveedor como Amazon EKS.

Para obtener ayuda configurando un clúster de Kubernetes, proporcionamos estos tutoriales:

  • K3s: Para el tutorial de instalación de un clúster de Kubernetes K3s, consulta esta página. Para obtener ayuda configurando la infraestructura para un clúster K3s de alta disponibilidad, consulta esta página.

  • RKE2: Para el tutorial de instalación de un clúster de Kubernetes RKE2, consulta esta página. Para obtener ayuda configurando la infraestructura para un clúster RKE2 de alta disponibilidad, consulta esta página.

  • Amazon EKS: Para obtener detalles sobre cómo instalar Rancher en Amazon EKS, incluyendo cómo instalar un controlador de Ingress para que se pueda acceder al servidor de Rancher, consulta esta página.

  • AKS: Para obtener detalles sobre cómo instalar Rancher con Azure Kubernetes Service, incluyendo cómo instalar un controlador de Ingress para que se pueda acceder al servidor de Rancher, consulta esta página.

  • GKE: Para obtener detalles sobre cómo instalar Rancher con Google Kubernetes Engine, incluyendo cómo instalar un controlador de Ingress para que se pueda acceder al servidor de Rancher, consulta esta página. GKE tiene dos modos de operación al crear un clúster de Kubernetes, modo Autopilot y modo Estándar. La configuración del clúster para el modo Autopilot tiene restricciones sobre la edición del espacio de nombres kube-system. Sin embargo, Rancher necesita crear recursos en el espacio de nombres kube-system durante la instalación. Como resultado, no podrás instalar Rancher en un clúster de GKE creado en modo Autopilot.

Controlador de Ingress

La interfaz de usuario y la API de Rancher están expuestas a través de un Ingress. Esto significa que el clúster de Kubernetes en el que instales Rancher debe contener un controlador de Ingress.

Para instalaciones de RKE2 y K3s, no es necesario instalar el controlador de Ingress manualmente porque uno se instala por defecto.

Para distribuciones que no incluyen un controlador de Ingress por defecto, como un clúster de Kubernetes alojado como EKS, GKE o AKS, primero debes desplegar un controlador de Ingress. Ten en cuenta que el gráfico de Helm de Rancher no establece un ingressClassName en el ingress por defecto. Debido a esto, debes configurar el controlador de Ingress para que también supervise los ingresses sin un ingressClassName.

Se incluyen ejemplos en los tutoriales de Amazon EKS, AKS y GKE anteriores.

Herramientas CLI

Las siguientes herramientas de línea de comandos son necesarias para configurar el clúster de Kubernetes. Por favor, asegúrate de que estas herramientas estén instaladas y disponibles en tu $PATH.

Instala el Chart de Helm de Rancher

Rancher se instala utilizando el gestor de paquetes Helm para Kubernetes. Los Charts de Helm proporcionan una sintaxis de plantillas para los documentos de manifiesto YAML de Kubernetes. Con Helm, podemos crear despliegues configurables en lugar de utilizar solo archivos estáticos.

Para sistemas sin acceso directo a Internet, consulta Entorno aislado: Kubernetes install.

Para elegir una versión de Rancher para instalar, consulta xref:[Elegir una versión de Rancher.]

Para elegir una versión de Helm para instalar Rancher, consulta requisitos de versión de Helm

Las instrucciones de instalación asumen que estás utilizando Helm 3.

Para configurar Rancher,

1. Añadir el repositorio del Chart de Helm

Usa el helm repo add comando para añadir el repositorio del Chart de Helm que contiene charts para instalar Rancher Prime.

helm repo add rancher-prime <helm-chart-repo-url>

To learn more about the Rancher Prime Helm chart repository URL, see our Prime-only documentation. Authentication is required. Use your SUSE Customer Center (SCC) credentials to log in.

2. Crea un espacio de nombres para Rancher

Necesitaremos definir un espacio de nombres de Kubernetes donde se deben instalar los recursos creados por el Chart. Esto debe ser siempre cattle-system:

kubectl create namespace cattle-system

3. Elige tu configuración SSL

El servidor de gestión de Rancher está diseñado para ser seguro por defecto y requiere configuración SSL/TLS.

Si deseas terminar SSL/TLS externamente, consulta Terminación TLS en un balanceador de carga externo. Como se detalla en esa página, esta opción tiene requisitos adicionales para la verificación TLS.

Hay tres opciones recomendadas para la fuente del certificado utilizado para la terminación TLS en el servidor Rancher:

  • Certificado TLS generado por Rancher: En este caso, necesitarás instalar cert-manager en el clúster. Rancher utiliza cert-manager para emitir y mantener sus certificados. Rancher generará un certificado CA propio y firmará un certificado utilizando esa CA. cert-manager es entonces responsable de gestionar ese certificado. No se necesita ninguna acción adicional cuando agent-tls-mode está configurado en estricto. Más información sobre esta configuración se puede encontrar en Aplicación de TLS en el agente.

  • Let’s Encrypt: La opción Let’s Encrypt también utiliza cert-manager. Sin embargo, en este caso, cert-manager se combina con un emisor especial para Let’s Encrypt que realiza todas las acciones (incluyendo solicitud y validación) necesarias para obtener un certificado emitido por Let’s Encrypt. Esta configuración utiliza la validación HTTP (HTTP-01), por lo que el balanceador de carga debe tener un registro DNS público y ser accesible desde Internet. Al establecer agent-tls-mode en strict, también debes especificar --privateCA=true y subir el CA de Let’s Encrypt como se describe en Añadiendo secretos TLS. Más información sobre esta configuración se puede encontrar en Aplicación de TLS en el agente.

  • Traiga su propio certificado: Esta opción te permite traer tu propio certificado firmado por una CA pública o privada. Rancher utilizará ese certificado para asegurar el tráfico de websocket y HTTPS. En este caso, debes subir este certificado (y la clave asociada) como archivos codificados en PEM con el nombre tls.crt y tls.key. Si estás utilizando una CA privada, también debes subir ese certificado. Esto se debe a que esta CA privada puede no ser confiable para tus nodos. Rancher tomará ese certificado CA y generará una suma de comprobación a partir de él, que los diversos componentes de Rancher utilizarán para validar su conexión con Rancher. Si agent-tls-mode está configurado en strict, la CA debe ser subida, para que los clústeres en sentido descendente puedan conectarse con éxito. Más información sobre esta configuración se puede encontrar en Aplicación de TLS en el agente.

Configuración Opción de Helm Chart Requiere cert-manager

Certificados generados por Rancher (por defecto)

ingress.tls.source=rancher

Let’s Encrypt

ingress.tls.source=letsEncrypt

Certificados de archivos

ingress.tls.source=secret

no

4. Instala cert-manager

Debes omitir este paso si traes tus propios archivos de certificado (opción ingress.tls.source=secret), o si utilizas Terminación TLS en un balanceador de carga externo.

Este paso solo es necesario para utilizar certificados emitidos por la CA generada por Rancher (ingress.tls.source=rancher) o para solicitar certificados emitidos por Let’s Encrypt (ingress.tls.source=letsEncrypt).

Haga clic para expandir
Importante:

Los cambios recientes en cert-manager requieren actualizar la versión. Si estás actualizando Rancher y utilizando una versión de cert-manager anterior a v0.11.0, consulta nuestra documentación de actualización.

Estas instrucciones están adaptadas de la documentación oficial de cert-manager.

Para ver opciones sobre cómo personalizar la instalación de cert-manager (incluyendo casos donde tu clúster utiliza PodSecurityPolicies), consulta la documentación de cert-manager.

# If you have installed the CRDs manually, instead of setting `installCRDs` or `crds.enabled` to `true` in your Helm install command, you should upgrade your CRD resources before upgrading the Helm chart:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io

# Update your local Helm chart repository cache
helm repo update

# Install the cert-manager Helm chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --set crds.enabled=true

Una vez que hayas instalado cert-manager, puedes verificar que está desplegado correctamente comprobando el espacio de nombres de cert-manager en busca de pods en ejecución:

kubectl get pods --namespace cert-manager

NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5c6866597-zw7kh               1/1     Running   0          2m
cert-manager-cainjector-577f6d9fd7-tr77l   1/1     Running   0          2m
cert-manager-webhook-787858fcdb-nlzsq      1/1     Running   0          2m

5. Instala Rancher con Helm y la opción de certificado que elijas

El comando exacto para instalar Rancher varía según la configuración del certificado.

Sin embargo, independientemente de la configuración del certificado, el nombre de la instalación de Rancher en el espacio de nombres cattle-system siempre debería ser rancher.

Pruebas y Desarrollo:

Este comando final para instalar Rancher requiere un nombre de dominio que redirija el tráfico a Rancher. Si estás utilizando la CLI de Helm para configurar una prueba de concepto, puedes usar un nombre de dominio falso al pasar la opción hostname. Un ejemplo de un nombre de dominio falso sería <IP_OF_LINUX_NODE>.sslip.io, que expondría Rancher en una IP donde se está ejecutando. Las instalaciones en producción requerirían un nombre de dominio real.

  • Certificados generados por Rancher

  • Let’s Encrypt

  • Certificados de archivos

El valor predeterminado es que Rancher genere una CA y utiliza cert-manager para emitir el certificado para acceder a la interfaz del servidor Rancher.

Dado que rancher es la opción predeterminada para ingress.tls.source, no estamos especificando ingress.tls.source al ejecutar el comando helm install.

  • Establece el hostname en el nombre DNS que apuntaste a tu equilibrador de carga.

  • Establece el bootstrapPassword en algo único para el usuario admin.

  • Para instalar una versión específica de Rancher, utiliza la bandera --version, ejemplo: --version 2.7.0

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin

Espera a que Rancher se despliegue:

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

Esta opción utiliza cert-manager para solicitar y renovar automáticamente certificados Let’s Encrypt. Este es un servicio gratuito que te proporciona un certificado válido ya que Let’s Encrypt es una CA de confianza.

Necesitas tener el puerto 80 abierto ya que el desafío HTTP-01 solo se puede realizar en el puerto 80.

En el siguiente comando,

  • hostname está configurado en el registro DNS público,

  • Establece el bootstrapPassword en algo único para el usuario admin.

  • ingress.tls.source está configurado en letsEncrypt

  • letsEncrypt.email está configurado en la dirección de correo electrónico utilizada para la comunicación sobre tu certificado (por ejemplo, avisos de caducidad)

  • Establece letsEncrypt.ingress.class en lo que sea tu controlador de ingreso, por ejemplo, traefik, nginx, haproxy, etc.

Cuando agent-tls-mode está configurado en strict (el valor predeterminado para nuevas instalaciones de Rancher a partir de v2.9.0), debes proporcionar el valor del gráfico privateCA=true (por ejemplo, a través de --set privateCA=true) y subir la Autoridad de Certificación Let’s Encrypt como se detalla en Añadiendo secretos TLS. La información sobre cómo identificar la CA raíz de Let’s Encrypt se puede encontrar en la documentación de Let’s Encrypt. Si no subes la CA, entonces Rancher puede no conseguir conectarse a clústeres en sentido descendente nuevos o existentes.

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=me@example.org \
  --set letsEncrypt.ingress.class=nginx

Espera a que Rancher se despliegue:

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

En esta opción, se crean secretos de Kubernetes a partir de tus propios certificados para que los use Rancher.

Cuando ejecutes este comando, la opción hostname debe coincidir con el Common Name o una entrada Subject Alternative Names en el certificado del servidor o el controlador de Ingress no se configurará correctamente.

Aunque una entrada en el Subject Alternative Names es técnicamente requerida, tener un Common Name coincidente maximiza la compatibilidad con navegadores y aplicaciones más antiguos.

  • Establece el hostname.

  • Establece el bootstrapPassword en algo único para el usuario admin.

  • Establece ingress.tls.source en secret.

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret

Si estás utilizando un certificado firmado por una CA privada, añade --set privateCA=true al comando:

helm install rancher rancher-prime/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret \
  --set privateCA=true

Ahora que Rancher está desplegado, consulta Añadiendo secretos TLS para publicar los archivos de certificado para que Rancher y el controlador de Ingress puedan usarlos.

La configuración del gráfico de Rancher tiene muchas opciones para personalizar la instalación según tu entorno específico. Aquí hay algunos escenarios avanzados comunes.

Consulta las Opciones del Gráfico para la lista completa de opciones.

6. Verifica que el Servidor Rancher se haya Desplegado Correctamente

Después de añadir los secretos, comprueba si Rancher se ha desplegado correctamente:

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

Si ves el siguiente error: error: deployment "rancher" exceeded its progress deadline, puedes comprobar el estado del despliegue ejecutando el siguiente comando:

kubectl -n cattle-system get deploy rancher
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
rancher   3         3         3            3           3m

Debería mostrar el mismo conteo para DESIRED y AVAILABLE.

7. Guarda tus opciones

Asegúrate de guardar las opciones de --set que utilizaste. Necesitarás usar las mismas opciones cuando actualices Rancher a nuevas versiones con Helm.

Finalizando

Es así de sencillo. Deberías tener un servidor Rancher funcional.

En un navegador web, ve al nombre DNS que redirige el tráfico a tu equilibrador de carga. Entonces deberías ser recibido por la colorida página de inicio de sesión.

¿No funciona? Echa un vistazo a la página de Solución de Problemas