Creación de un servidor PostgreSQL habilitado para Azure Arc desde la CLI
En este documento se describen los pasos necesarios para crear un servidor de PostgreSQL en Azure Arc y para conectarse a él.
Requisitos previos
Para poder continuar con las tareas de este artículo, debe tener las herramientas necesarias. Todas las implementaciones necesitan las siguientes herramientas:
Azure Data Studio
Extensión de Azure Arc para Azure Data Studio
CLI de Azure (
az
)Extensión (
arcdata
) para la CLI de Azurekubectl
Herramientas de cliente adicionales en función del entorno. Para obtener una lista más completa, consulte Herramientas de cliente.
Además de las herramientas necesarias, para completar las tareas, necesita un controlador de datos de Azure Arc.
Nota:
Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Las actualizaciones más recientes están disponibles en las notas de la versión.
Introducción
Si ya está familiarizado con los temas siguientes, puede omitir este párrafo. Hay temas importantes que puede que le interese leer antes de continuar con la creación:
- Información general sobre los servicios de datos habilitados para Azure Arc
- Modos de conectividad y requisitos
- Conceptos de almacenamiento de Kubernetes y configuración de almacenamiento
- Modelo de recursos de Kubernetes
Si prefiere probar las cosas sin aprovisionar un entorno completo por su cuenta, empiece a trabajar rápidamente con Azure Arc JumpStart en Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) o en una máquina virtual de Azure.
Paso preliminar y temporal solo para usuarios de OpenShift
Implemente este paso antes de pasar al siguiente. Para implementar el servidor PostgreSQL en Red Hat OpenShift en un proyecto distinto del predeterminado, debe ejecutar los comandos siguientes en el clúster para actualizar las restricciones de seguridad. Este comando concede los privilegios necesarios a las cuentas de servicio que ejecutarán el servidor PostgreSQL. La restricción de contexto de seguridad (SCC) arc-data-scc es la que ha agregado al implementar el controlador de datos de Azure Arc.
oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>
Server-name es el nombre del servidor que se va a crear en el siguiente paso.
Para obtener más detalles sobre las SCC en OpenShift, consulte la documentación de OpenShift. Vaya al paso siguiente.
Creación de un servidor PostgreSQL habilitado para Azure Arc
Para crear un servidor de PostgreSQL habilitado para Azure Arc en el controlador de datos de Arc, usará el comando az postgres server-arc create
al que pasará varios parámetros.
Para más información sobre todos los parámetros que se pueden establecer en el momento de la creación, revise la salida del comando:
az postgres server-arc create --help
Los parámetros principales que debe tener en cuenta son:
el nombre del servidor que quiere implementar. Indique
--name
o-n
seguido de un nombre cuya longitud no debe superar los 11 caracteres.Las clases de almacenamiento que quiere que use el grupo de servidores. Es importante establecer la clase de almacenamiento justo en el momento de implementar un servidor, ya que no se puede cambiar después. Puede especificar las clases de almacenamiento que se usarán para los datos, los registros y las copias de seguridad. De forma predeterminada, si no indica las clases de almacenamiento, se usarán las clases de almacenamiento del controlador de datos.
- Para establecer la clase de almacenamiento para las copias de seguridad, indique el parámetro
--storage-class-backups
seguido del nombre de la clase de almacenamiento. Si se excluye este parámetro, se deshabilitan las copias de seguridad automatizadas. - Para establecer la clase de almacenamiento para los datos, indique el parámetro
--storage-class-data
seguido del nombre de la clase de almacenamiento. - Para establecer la clase de almacenamiento para los registros, indique el parámetro
--storage-class-logs
seguido del nombre de la clase de almacenamiento.
Importante
Si necesita cambiar la clase de almacenamiento después de la implementación, extraiga los datos, elimine el servidor, cree otro servidor e importe los datos.
- Para establecer la clase de almacenamiento para las copias de seguridad, indique el parámetro
Al ejecutar el comando de creación se le va a pedir que escriba el nombre de usuario y la contraseña del usuario administrativo. Para omitir el aviso interactivo, establezca la variable de entorno de sesión AZDATA_USERNAME
y AZDATA_PASSWORD
antes de ejecutar el comando create.
Ejemplos
Para implementar un servidor de PostgreSQL denominado postgres01 que emplea las mismas clases de almacenamiento que el controlador de datos, ejecute el siguiente comando:
az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s
Nota:
- Si ha implementado el controlador de datos con las variables de entorno de sesión
AZDATA_USERNAME
yAZDATA_PASSWORD
en la misma sesión de terminal, los valores deAZDATA_PASSWORD
también se usarán para implementar el servidor de PostgreSQL. Si prefiere usar otra contraseña, (1) actualice el valor deAZDATA_USERNAME
yAZDATA_PASSWORD
, (2) elimine la variable de entornoAZDATA_USERNAME
yAZDATA_PASSWORD
o (3) elimine los valores; se le pedirá que escriba un nombre de usuario y contraseña de forma interactiva al crear un servidor. - La creación de una instancia de PostgreSQL no registrará los recursos en Azure de forma inmediata. Como parte del proceso de carga de inventario de recursos o datos de uso a Azure, los recursos se crearán en Azure y podrá verlos en Azure Portal.
Enumeración de los servidores de PostgreSQL implementados en el controlador de datos de Arc
Para enumerar los servidores de PostgreSQL implementados en el controlador de datos de Arc, ejecute el siguiente comando:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
{
"name": "postgres01",
"state": "Ready"
}
Obtención de los puntos de conexión para conectarse a los servidores de PostgreSQL habilitados para Azure Arc
Para ver los puntos de conexión de servidor de PostgreSQL, ejecute el comando siguiente:
az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s
Por ejemplo:
{
"instances": [
{
"endpoints": [
{
"description": "PostgreSQL Instance",
"endpoint": "postgresql://postgres:<replace with password>@123.456.78.912:5432"
},
{
"description": "Log Search Dashboard",
},
{
"description": "Metrics Dashboard",
"endpoint": "https://98.765.432.11:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01"
}
],
"engine": "PostgreSql",
"name": "postgres01"
}
],
"namespace": "arc"
}
Puede usar el punto de conexión de la instancia de PostgreSQL para conectarse a la instancia de PostgreSQL desde la herramienta que prefiera: Azure Data Studio, pgcli psql, pgAdmin, etc.
En este momento, use la compilación para los participantes del programa Insider de Azure Data Studio.
Nota especial sobre las implementaciones de máquinas virtuales de Azure
Cuando se usa una máquina virtual de Azure, la dirección IP del punto de conexión no mostrará la IP pública. Para localizar la IP pública, use el comando siguiente:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Después, puede combinar la dirección IP pública con el puerto para establecer la conexión.
Es posible que también tenga que exponer el puerto del servidor de PostgreSQL a través de la puerta de enlace de seguridad de red (NSG). Para permitir el tráfico a través del grupo de seguridad de red (NSG), establezca una regla. Para establecer una regla, tiene que conocer el nombre del NSG. Puede determinar el NSG con el comando siguiente:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
Una vez que tenga el nombre del NSG, puede agregar una regla de firewall mediante el comando siguiente. En estos valores de ejemplo se crea una regla de NSG para el puerto 30655 y se permite la conexión desde cualquier dirección IP de origen.
Advertencia
No se recomienda establecer una regla para permitir la conexión desde una dirección IP de origen. Puede bloquear mejor si especifica un valor -source-address-prefixes
específico de la dirección IP del cliente, o bien un intervalo de direcciones IP que abarque las direcciones IP del equipo o la organización.
Reemplace el valor del parámetro --destination-port-ranges
siguiente por el número de puerto que ha obtenido del comando az postgres server-arc list
anterior.
az network nsg rule create -n db_port --destination-port-ranges 30655 --source-address-prefixes '*' --nsg-name azurearcvmNSG --priority 500 -g azurearcvm-rg --access Allow --description 'Allow port through for db access' --destination-address-prefixes '*' --direction Inbound --protocol Tcp --source-port-ranges '*'
Conexión con Azure Data Studio
Abra Azure Data Studio y conéctese a la instancia con la dirección IP y el número de puerto del punto de conexión externo anterior, y la contraseña que haya especificado al crear la instancia. Si PostgreSQL no está disponible en la lista desplegable Tipo de conexión, puede instalar la extensión PostgreSQL si busca PostgreSQL en la pestaña Extensiones.
Nota:
Tendrá que hacer clic en el botón [Avanzado] del panel de conexión para escribir el número de puerto.
Recuerde que si usa una máquina virtual de Azure necesita la dirección IP pública, a la que se puede acceder mediante el comando siguiente:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Conexión con psql
Para acceder al servidor de PostgreSQL, pase el punto de conexión externo del servidor de PostgreSQL que ha recuperado antes:
Ahora puede conectarse a psql:
psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655
Contenido relacionado
Conéctese al servidor de PostgreSQL habilitado para Azure Arc: lea Obtención de puntos de conexión y cadenas de conexión
* En los documentos anteriores, omita las secciones Inicio de sesión en Azure Portal y Creación de una instancia de Azure Database for PostgreSQL. Aplique los pasos restantes en la implementación de Azure Arc. Esas secciones son específicas del servidor de Azure Database for PostgreSQL que se ofrece como un servicio PaaS en la nube de Azure, pero las demás partes de los documentos se aplican directamente a servidor PostgreSQL habilitado para Azure Arc.
Conceptos de almacenamiento de Kubernetes y configuración de almacenamiento