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
Si tiene varias suscripciones de Azure, especifique el identificador de la relevante:
az account set --subscription <SUBSCRIPTION ID>
Registre el proveedor de recursos
Microsoft.RedHatOpenShift
:az provider register -n Microsoft.RedHatOpenShift --wait
Registre el proveedor de recursos de
Microsoft.Compute
(si aún no lo ha hecho):az provider register -n Microsoft.Compute --wait
Registre el proveedor de recursos de
Microsoft.Network
(si aún no lo ha hecho):az provider register -n Microsoft.Network --wait
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 otro contenido. Este paso es opcional pero recomendable.
Vaya al portal del administrador de clústeres de Red Hat OpenShift e inicie sesión.
Inicie 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.
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, cree una red virtual que contenga dos subredes vacías.
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
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. Al crear un grupo de recursos, especifique una ubicación. Dicha ubicación es donde se almacenan los metadatos del grupo de recursos, así como el lugar en el que los recursos se ejecutan en Azure si no se especifica otra región al crear los 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 }
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 de control 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" } }
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
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
Deshabilite las directivas de punto de conexión privado 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. Opcionalmente, 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 otro contenido.
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 de 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]
El comando az aro create
normalmente tarda unos 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, tendrá que seguir la documentación de OpenShift para configurar un certificado personalizado para el controlador de entrada y un 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 comando aro create
, 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 parámetros --apiserver-visibility Private
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 de 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 de 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 deben proceder 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 parámetro --outbound-type UserDefinedRouting
. No se admite para los clústeres de ARO públicos que tienen el parámetro --outbound-type LoadBalancer
.
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 la contraseña en kubeadminPassword
.
{
"kubeadminPassword": "<generated password>",
"kubeadminUsername": "kubeadmin"
}
Para encontrar la dirección URL de la consola del clúster, ejecute el siguiente comando, que tendrá este aspecto 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 en Azure, tendrá que realizar el siguiente paso desde un host que se encuentre en la red virtual que ha creado o en una red virtual que esté 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
.
Instalación de la CLI de OpenShift
Una vez que haya iniciado sesión en la consola web de OpenShift, seleccione la ? en la parte superior derecha y, a continuación, Herramientas de línea de comandos. Descargue la versión adecuada para su máquina.
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 en Azure, tendrá que realizar el siguiente paso desde un host que se encuentre en la red virtual que ha creado o en una red virtual que esté 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 recuperada.
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.