|
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.
-
kubectl - Herramienta de línea de comandos de Kubernetes.
-
helm - Gestión de paquetes para Kubernetes. Consulta los requisitos de versión de Helm para elegir una versión de Helm para instalar Rancher. Consulta las instrucciones proporcionadas por el proyecto Helm para tu plataforma específica.
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,
-
Instalar cert-manager (a menos que traigas tus propios certificados, o que TLS se termine en un balanceador de carga)
-
Instalar Rancher con Helm y tu opción de certificado elegida
-
Verificar que el servidor de Rancher se haya desplegado correctamente
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-manageren el clúster. Rancher utilizacert-managerpara emitir y mantener sus certificados. Rancher generará un certificado CA propio y firmará un certificado utilizando esa CA.cert-manageres entonces responsable de gestionar ese certificado. No se necesita ninguna acción adicional cuandoagent-tls-modeestá 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 estableceragent-tls-modeenstrict, también debes especificar--privateCA=truey 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.crtytls.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. Siagent-tls-modeestá configurado enstrict, 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) |
|
|
Let’s Encrypt |
|
|
Certificados de archivos |
|
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 |
-
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
hostnameen el nombre DNS que apuntaste a tu equilibrador de carga. -
Establece el
bootstrapPassworden algo único para el usuarioadmin. -
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,
-
hostnameestá configurado en el registro DNS público, -
Establece el
bootstrapPassworden algo único para el usuarioadmin. -
ingress.tls.sourceestá configurado enletsEncrypt -
letsEncrypt.emailestá 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.classen lo que sea tu controlador de ingreso, por ejemplo,traefik,nginx,haproxy, etc.
|
Cuando |
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.
|
Si quieres comprobar si tus certificados son correctos, consulta ¿Cómo compruebo el Nombre Común y los Nombres Alternativos del Sujeto en mi certificado de servidor? |
-
Establece el
hostname. -
Establece el
bootstrapPassworden algo único para el usuarioadmin. -
Establece
ingress.tls.sourceensecret.
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