Creación de un clúster privado de la versión 4 de Red Hat OpenShift en Azure

En este artículo, preparará su entorno para crear clústeres privados de Red Hat OpenShift en Azure que ejecutan OpenShift 4. Aprenderá a:

  • Configurar los requisitos previos y crear la red virtual y las subredes necesarias.
  • Implementar un clúster con un punto de conexión de servidor de API privado y un controlador de entrada privado.

Si decide instalar y usar la CLI localmente, en este tutorial es preciso que ejecute la versión 2.30.0 u otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Antes de empezar

Registro de los proveedores de recursos

  1. Si tiene varias suscripciones de Azure, especifique el identificador de la relevante:

    az account set --subscription <SUBSCRIPTION ID>
    
  2. Registre el proveedor de recursos Microsoft.RedHatOpenShift:

    az provider register -n Microsoft.RedHatOpenShift --wait
    
  3. Registre el proveedor de recursos de Microsoft.Compute (si aún no lo ha hecho):

    az provider register -n Microsoft.Compute --wait
    
  4. Registre el proveedor de recursos de Microsoft.Network (si aún no lo ha hecho):

    az provider register -n Microsoft.Network --wait
    
  5. Registre el proveedor de recursos de Microsoft.Storage (si aún no lo ha hecho):

    az provider register -n Microsoft.Storage --wait
    

Obtención de un secreto de extracción de Red Hat (opcional)

Los secretos de extracción de Red Hat permiten al clúster acceder a los registros de contenedor de Red Hat junto con contenido adicional. Este paso es opcional pero recomendable.

  1. Vaya al portal del administrador de clústeres de Red Hat OpenShift e inicie sesión.

    Tendrá que iniciar sesión en su cuenta de Red Hat, o bien crear una cuenta de Red Hat con su correo electrónico empresarial y aceptar los términos y condiciones.

  2. Haga clic en Download pull secret (Descargar secreto de incorporación de cambios).

Mantenga el archivo pull-secret.txt guardado en un lugar seguro, ya que se usará cada vez que se cree un clúster.

Al ejecutar el comando az aro create, puede hacer referencia al secreto de incorporación de cambios mediante el parámetro --pull-secret @pull-secret.txt. Ejecute az aro create desde el directorio donde haya almacenado el archivo pull-secret.txt. De lo contrario, reemplace @pull-secret.txt por @<path-to-my-pull-secret-file.

Si va a copiar el secreto de incorporación de cambios o hacer referencia a él en otros scripts, debe tener el formato de una cadena JSON válida.

Creación de una red virtual que contenga dos subredes vacías

A continuación, creará una red virtual que contenga dos subredes vacías.

  1. Establezca las siguientes variables.

    LOCATION=eastus                 # the location of your cluster
    RESOURCEGROUP="v4-$LOCATION"    # the name of the resource group where you want to create your cluster
    CLUSTER=aro-cluster             # the name of your cluster
    
  2. Creación de un grupo de recursos

    Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure. Cuando se crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es donde se almacenan los metadatos del grupo de recursos, también es donde se ejecutan los recursos en Azure si no especifica otra región durante la creación de recursos. Cree un grupo de recursos mediante el comando [az group create][az-group-create].

    az group create --name $RESOURCEGROUP --location $LOCATION
    

    En la siguiente salida de ejemplo se muestra que los recursos se crearon correctamente:

    {
    "id": "/subscriptions/<guid>/resourceGroups/aro-rg",
    "location": "eastus",
    "managedBy": null,
    "name": "aro-rg",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null
    }
    
  3. Cree una red virtual.

    Los clústeres de Red Hat OpenShift en Azure que ejecutan OpenShift 4 requieren una red virtual con dos subredes vacías, una para los nodos maestros y otra para los nodos de trabajo.

    Cree una red virtual en el mismo grupo de recursos que creó anteriormente.

    az network vnet create \
    --resource-group $RESOURCEGROUP \
    --name aro-vnet \
    --address-prefixes 10.0.0.0/22
    

    En la siguiente salida de ejemplo se muestra la red virtual creada correctamente:

    {
    "newVNet": {
        "addressSpace": {
        "addressPrefixes": [
            "10.0.0.0/22"
        ]
        },
        "id": "/subscriptions/<guid>/resourceGroups/aro-rg/providers/Microsoft.Network/virtualNetworks/aro-vnet",
        "location": "eastus",
        "name": "aro-vnet",
        "provisioningState": "Succeeded",
        "resourceGroup": "aro-rg",
        "type": "Microsoft.Network/virtualNetworks"
    }
    }
    
  4. Agregue una subred vacía para los nodos maestros.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name master-subnet \
    --address-prefixes 10.0.0.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  5. Agregue una subred vacía para los nodos de trabajo.

    az network vnet subnet create \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --name worker-subnet \
    --address-prefixes 10.0.2.0/23 \
    --service-endpoints Microsoft.ContainerRegistry
    
  6. Deshabilite las directivas de punto de conexión privado de subred en la subred maestra. Esto es necesario para poder conectarse al clúster y administrarlo.

    az network vnet subnet update \
    --name master-subnet \
    --resource-group $RESOURCEGROUP \
    --vnet-name aro-vnet \
    --disable-private-link-service-network-policies true
    

Creación del clúster

Ejecute el siguiente comando para crear un clúster. También puede pasar el secreto de incorporación de cambios de Red Hat, que permite al clúster acceder a los registros de contenedor de Red Hat junto con contenido adicional.

Nota:

Si va a copiar o pegar comandos y usa uno de los parámetros opcionales, asegúrese de eliminar los hashtags iniciales y el texto del comentario final. Además, cierre el argumento de la línea anterior del comando con una barra diagonal inversa al final.

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private
  # --domain foo.example.com # [OPTIONAL] custom domain
  # --pull-secret @pull-secret.txt # [OPTIONAL]

Después de ejecutar el comando az aro create, se tarda aproximadamente 35 minutos en crear un clúster.

Nota:

Al intentar crear un clúster, si recibe un mensaje de error que indica que se ha superado la cuota de recursos, consulte Agregar cuota a la cuenta de ARO para obtener información sobre cómo continuar.

Importante

Si elige especificar un dominio personalizado, por ejemplo foo.example.com, la consola de OpenShift estará disponible en una dirección URL como https://console-openshift-console.apps.foo.example.com, en lugar del dominio integrado https://console-openshift-console.apps.<random>.<location>.aroapp.io.

De forma predeterminada, OpenShift usa certificados autofirmados para todas las rutas creadas en *.apps.<random>.<location>.aroapp.io. Si elige DNS personalizado, después de conectarse al clúster, deberá seguir la documentación de OpenShift para configurar un certificado personalizado para el controlador de entrada y el certificado personalizado para el servidor de API.

Creación de un clúster privado sin una dirección IP pública

Normalmente, los clústeres privados se crean con una dirección IP pública y un equilibrador de carga, lo que proporciona un medio para la conectividad saliente a otros servicios. Sin embargo, puede crear un clúster privado sin una dirección IP pública. Esto puede ser necesario en situaciones en las que los requisitos de seguridad o directiva prohíben el uso de direcciones IP públicas.

Para crear un clúster privado sin una dirección IP pública, siga el procedimiento anterior, agregando el parámetro --outbound-type UserDefinedRouting al aro create comando, como en el ejemplo siguiente:

az aro create \
  --resource-group $RESOURCEGROUP \
  --name $CLUSTER \
  --vnet aro-vnet \
  --master-subnet master-subnet \
  --worker-subnet worker-subnet \
  --apiserver-visibility Private \
  --ingress-visibility Private \
  --outbound-type UserDefinedRouting

Nota:

La marca UserDefinedRouting solo se puede usar al crear clústeres con --apiserver-visibility Private parámetros y --ingress-visibility Private . Asegúrese de que usa la CLI de Azure más reciente. Los clústeres implementados con la CLI de Azure 2.52.0 y versiones anteriores se implementarán con direcciones IP públicas.

Esta opción Enrutamiento definido por el usuario impide que se aprovisione una dirección IP pública. El enrutamiento definido por el usuario (UDR) permite crear rutas personalizadas en Azure para invalidar las rutas del sistema predeterminadas o para agregar más rutas a la tabla de rutas de una subred. Consulte Enrutamiento de tráfico de red virtual para obtener más información.

Importante

Asegúrese de especificar la subred correcta con la tabla de enrutamiento configurada correctamente al crear el clúster privado.

Para la salida, la opción Enrutamiento definido por el usuario garantiza que el clúster recién creado tenga habilitada la característica de bloqueo de salida para permitirle proteger el tráfico saliente desde el nuevo clúster privado. Consulte Control del tráfico de salida del clúster de Red Hat OpenShift (ARO) de Azure para más información.

Nota:

Si elige el tipo de red enrutamiento definido por el usuario, es completamente responsable de administrar la salida del enrutamiento del clúster fuera de la red virtual (por ejemplo, obtener acceso a la red pública de Internet). Red Hat OpenShift en Azure no puede administrar esto por usted.

Puede configurar una o varias direcciones IP de salida en un espacio de nombres o en pods específicos de un espacio de nombres de un clúster privado sin ninguna dirección IP pública. Para ello, siga el procedimiento anterior para crear un clúster privado sin una dirección IP pública y, a continuación, configure la dirección IP de salida según este documento de Red Hat OpenShift. Estas direcciones IP de salida deberán ser de las subredes asociadas al clúster de ARO.

La configuración de una dirección IP de salida para un clúster privado de ARO solo se admite para los clústeres con el --outbound-type UserDefinedRouting parámetro . No se admite para los clústeres de ARO públicos que tienen el --outbound-type LoadBalancer parámetro .

Conexión al clúster privado

Puede iniciar sesión en el clúster con el usuario kubeadmin. Ejecute el siguiente comando para buscar la contraseña del usuario kubeadmin.

az aro list-credentials \
  --name $CLUSTER \
  --resource-group $RESOURCEGROUP

En la siguiente salida de ejemplo se muestra que la contraseña estará en kubeadminPassword.

{
  "kubeadminPassword": "<generated password>",
  "kubeadminUsername": "kubeadmin"
}

Para encontrar la dirección URL de la consola del clúster, ejecute el siguiente comando, que será similar a https://console-openshift-console.apps.<random>.<region>.aroapp.io/.

 az aro show \
    --name $CLUSTER \
    --resource-group $RESOURCEGROUP \
    --query "consoleProfile.url" -o tsv

Importante

Para conectarse a un clúster privado de Red Hat OpenShift de Azure, deberá realizar el siguiente paso desde un host que se encuentra en la red virtual que creó o en una red virtual emparejada con la red virtual en la que se implementó el clúster.

Inicie la dirección URL de la consola en un explorador e inicie sesión con las credenciales de kubeadmin.

Screenshot that shows the Azure Red Hat OpenShift login screen.

Instalación de la CLI de OpenShift

Una vez que haya iniciado sesión en la consola web de OpenShift, haga clic en ? en la parte superior derecha y, a continuación, en Herramientas de línea de comandos. Descargue la versión adecuada para su máquina.

Image shows Azure Red Hat OpenShift login screen

También puede descargar la última versión de la CLI adecuada para su máquina.

Conexión mediante la CLI de OpenShift

Recupere la dirección del servidor de la API.

apiServer=$(az aro show -g $RESOURCEGROUP -n $CLUSTER --query apiserverProfile.url -o tsv)

Importante

Para conectarse a un clúster privado de Red Hat OpenShift de Azure, deberá realizar el siguiente paso desde un host que se encuentra en la red virtual que creó o en una red virtual emparejada con la red virtual en la que se implementó el clúster.

Inicie sesión en el servidor de API del clúster de OpenShift mediante el siguiente comando. Reemplace <contraseña de kubeadmin> por la contraseña que acaba de recuperar.

oc login $apiServer -u kubeadmin -p <kubeadmin password>

Pasos siguientes

En este artículo, se ha implementado un clúster de Red Hat OpenShift en Azure que ejecuta OpenShift 4. Ha aprendido a:

  • Configurar los requisitos previos y crear la red virtual y las subredes necesarias.
  • Implementación de un clúster
  • Conectarse al clúster mediante el usuario kubeadmin.

Pase al siguiente artículo, donde aprenderá a configurar el clúster para la autenticación mediante Microsoft Entra ID.