Requisitos previos para implementar OpenShift Container Platform 3.11 en Azure
Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles
En este artículo se describen los requisitos previos comunes para implementar OpenShift Container Platform u OKD en Azure.
La instalación de OpenShift usa cuadernos de estrategias de Ansible. Ansible usa Secure Shell (SSH) para conectarse a todos los hosts del clúster y completar los pasos de instalación.
Cuando Ansible realiza la conexión SSH a los hosts remotos, no puede escribir una contraseña. Por este motivo, la clave privada no puede tener una contraseña (frase de contraseña) asociada o se producirá un error en la implementación.
Dado que todas las máquinas virtuales (VM) se implementan a través de plantillas de Azure Resource Manager, se usa la misma clave pública para acceder a todas ellas. La clave privada correspondiente debe estar en la máquina virtual que ejecuta todos los cuadernos de estrategias. Para llevar a cabo esta acción de forma segura, se usa Azure Key Vault para pasar la clave privada a la máquina virtual.
Si es necesario el almacenamiento persistente de contenedores, también se necesitan volúmenes persistentes. OpenShift es compatible con discos duros virtuales (VHD) de Azure para volúmenes persistentes, pero Azure debe configurarse primero como proveedor de nube.
En este modelo, OpenShift:
- Crea un objeto VHD en una cuenta de Azure Storage o un disco administrado.
- Monta el VHD en una máquina virtual y da formato al volumen.
- Monta el volumen en el pod.
Para que esta configuración funcione, OpenShift necesita permisos para realizar estas tareas en Azure. Para esta finalidad se usa una entidad de servicio. La entidad de servicio es una cuenta de seguridad de Azure Active Directory con permisos para los recursos.
La entidad de servicio debe tener acceso a las cuentas de almacenamiento y a las máquinas virtuales que componen el clúster. Si todos los recursos de clúster de OpenShift se implementan en un único grupo de recursos, pueden concederse permisos a la entidad de servicio para ese grupo de recursos.
En esta guía se describe cómo crear los artefactos asociados con los requisitos previos.
- Crear un almacén de claves para administrar las claves SSH para el clúster de OpenShift.
- Cree una entidad de servicio para que la use el proveedor en la nube de Azure.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Inicio de sesión en Azure
Inicie sesión en la suscripción de Azure con el comando az login y siga las instrucciones de la pantalla, o bien haga clic en Pruébelo para usar Cloud Shell.
az login
Crear un grupo de recursos
Para crear un grupo de recursos, use el comando az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Debe usar un grupo de recursos dedicado para hospedar el almacén de claves. Este grupo es independiente del grupo de recursos en el que se implementan los recursos del clúster de OpenShift.
En el ejemplo siguiente se crea un grupo de recursos denominado keyvaultrg en la ubicación eastus:
az group create --name keyvaultrg --location eastus
Creación de un Almacén de claves
Cree un almacén de claves para almacenar las claves SSH para el clúster con el comando az keyvault create. El nombre del almacén de claves debe ser único globalmente y debe estar habilitado para la implementación de plantillas o se producirá un error de implementación "KeyVaultParameterReferenceSecretRetrieveFailed".
En el ejemplo siguiente se crea un almacén de claves denominado keyvault en el grupo de recursos keyvaultrg:
az keyvault create --resource-group keyvaultrg --name keyvault \
--enabled-for-template-deployment true \
--location eastus
Creación de una clave SSH
Se necesita una clave SSH para proteger el acceso al clúster de OpenShift. Cree un par de claves SSH con el comando ssh-keygen
(en Linux o macOS):
ssh-keygen -f ~/.ssh/openshift_rsa -t rsa -N ''
Nota
El par de claves SSH no puede tener una contraseña ni frase de contraseña.
Para obtener más información sobre las claves SSH en Windows, consulte el artículo sobre la creación de claves SSH en Windows. Asegúrese de exportar la clave privada en formato OpenSSH.
Almacenamiento de la clave privada SSH en Azure Key Vault
La implementación de OpenShift utiliza la clave SSH que creó para proteger el acceso al maestro de OpenShift. Para permitir que la implementación recupere de forma segura la clave SSH, almacénela en Key Vault con el comando siguiente:
az keyvault secret set --vault-name keyvault --name keysecret --file ~/.ssh/openshift_rsa
Creación de una entidad de servicio
OpenShift se comunica con Azure mediante un nombre de usuario y una contraseña, o bien a través de una entidad de servicio. Las entidades de servicio de Azure son identidades de seguridad que pueden usarse con aplicaciones, servicios y herramientas de automatización como OpenShift. El usuario controla los permisos y los define con respecto a cuáles son las operaciones que la entidad de servicio puede realizar en Azure. Lo mejor es definir el ámbito de los permisos de la entidad de servicio a grupos de recursos específicos en lugar de la suscripción completa.
Cree una entidad de servicio con az ad sp create-for-rbac y genere las credenciales necesarias para OpenShift.
En el ejemplo siguiente se crea una entidad de servicio y se le asignan permisos de colaborador para un grupo de recursos llamado openshiftrg.
En primer lugar, cree el grupo de recursos llamado openshiftrg:
az group create -l eastus -n openshiftrg
Cree una entidad de servicio:
az group show --name openshiftrg --query id
Guarde la salida del comando y úsela en lugar de $scope en el siguiente comando
az ad sp create-for-rbac --name openshiftsp \
--role Contributor --scopes $scope \
Tome nota de la propiedad appId y la contraseña que devuelve el comando:
{
"appId": "11111111-abcd-1234-efgh-111111111111",
"displayName": "openshiftsp",
"name": "http://openshiftsp",
"password": {Strong Password},
"tenant": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
Advertencia
Asegúrese de anotar la contraseña segura, ya que no se podrá volver a recuperar.
Para más información sobre las entidades de servicio, consulte Creación de una entidad de servicio de Azure con la CLI de Azure.
Requisitos previos aplicables únicamente a la plantilla de Resource Manager
Los secretos deben crearse para la clave privada SSH (sshPrivateKey), el secreto del cliente de Azure AD (aadClientSecret), la contraseña del administrador de OpenShift (openshiftPassword) y la contraseña o clave de activación de Red Hat Subscription Manager (rhsmPasswordOrActivationKey). Además, si se usan certificados TLS/SSL personalizados, deberán crearse seis secretos adicionales: routingcafile, routingcertfile, routingkeyfile, mastercafile, mastercertfile y masterkeyfile. Estos parámetros se explicarán con más detalle.
La plantilla hace referencia a nombres de secretos específicos por lo que deben usarse los nombres en negrita mencionados anteriormente (con distinción de mayúsculas y minúsculas).
Certificados personalizados
De forma predeterminada, la plantilla implementará un clúster de OpenShift mediante certificados autofirmados para la consola web de OpenShift y el dominio de enrutamiento. Si quiere usar certificados TLS/SSL personalizados, establezca "routingCertType" en "custom" y "masterCertType" en "custom". Necesitará los archivos de CA, certificado y clave en formato .pem para los certificados. Es posible utilizar certificados personalizados para uno de los casos, pero no para los otros.
Deberá almacenar estos archivos en secretos de Key Vault. Use el mismo Key Vault que ha utilizado para la clave privada. En lugar de requerir seis entradas adicionales para los nombres de secreto, la plantilla está codificada de forma rígida para utilizar nombres de secreto específicos para cada uno de los archivos de certificado TLS/SSL. Almacene los datos de certificado con la información de la tabla siguiente.
Nombre del secreto | Archivo de certificado |
---|---|
mastercafile | Archivo de CA maestro |
mastercertfile | Archivo CERT principal |
masterkeyfile | Archivo de clave maestro |
routingcafile | Archivo de CA de enrutamiento |
routingcertfile | Archivo CERT de enrutamiento |
routingkeyfile | Archivo de clave de enrutamiento |
Cree los secretos con la CLI de Azure. A continuación se muestra un ejemplo.
az keyvault secret set --vault-name KeyVaultName -n mastercafile --file ~/certificates/masterca.pem
Pasos siguientes
En este artículo se trataron los temas siguientes:
- Crear un almacén de claves para administrar las claves SSH para el clúster de OpenShift.
- Crear una entidad de servicio para que la use el Proveedor de soluciones en la nube de Azure.
A continuación, implemente un clúster de OpenShift:
- Deploy OpenShift Container Platform (Implementar OpenShift Container Platform)
- Implementación con la oferta de Marketplace de OpenShift Container Platform autoadministrada