Criar um servidor PostgreSQL habilitado para Azure Arc a partir da CLI
Este documento descreve as etapas para criar um servidor PostgreSQL no Azure Arc e se conectar a ele.
Pré-requisitos
Antes de prosseguir com as tarefas neste artigo, você precisa ter as ferramentas necessárias. Todas as implantações exigem as seguintes ferramentas:
Azure Data Studio
Extensão do Azure Arc para o Azure Data Studio
CLI do Azure (
az
)arcdata
extensão para a CLI do Azurekubectl
Ferramentas de cliente adicionais, dependendo do seu ambiente. Para obter uma lista mais abrangente, consulte Ferramentas de cliente.
Além das ferramentas necessárias, para concluir as tarefas, você precisa de um controlador de dados do Azure Arc.
Nota
Como funcionalidade de pré-visualização, a tecnologia apresentada neste artigo está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.
As atualizações mais recentes estão disponíveis nas notas de versão.
Introdução
Se você já está familiarizado com os tópicos abaixo, você pode pular este parágrafo. Há tópicos importantes que você pode querer ler antes de prosseguir com a criação:
- Visão geral dos serviços de dados habilitados para Azure Arc
- Modos e requisitos de conectividade
- Configuração de armazenamento e conceitos de armazenamento do Kubernetes
- Modelo de recursos do Kubernetes
Se você preferir experimentar coisas sem provisionar um ambiente completo, comece rapidamente com o Azure Arc Jumpstart no Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) ou em uma VM do Azure.
Etapa preliminar e temporária apenas para usuários do OpenShift
Implemente esta etapa antes de passar para a próxima etapa. Para implantar o servidor PostgreSQL no Red Hat OpenShift em um projeto diferente do padrão, você precisa executar os seguintes comandos no cluster para atualizar as restrições de segurança. Este comando concede os privilégios necessários às contas de serviço que executarão seu servidor PostgreSQL. A restrição de contexto de segurança (SCC) arc-data-scc é aquela que você adicionou quando implantou o controlador de dados do Azure Arc.
oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>
Server-name é o nome do servidor que você criará durante a próxima etapa.
Para obter mais detalhes sobre SCCs no OpenShift, consulte a documentação do OpenShift. Avance para o passo seguinte.
Criar um servidor PostgreSQL habilitado para Azure Arc
Para criar um servidor PostgreSQL habilitado para Azure Arc em seu controlador de dados Arc, você usará o comando az postgres server-arc create
para o qual passará vários parâmetros.
Para obter detalhes sobre todos os parâmetros que você pode definir no momento da criação, revise a saída do comando:
az postgres server-arc create --help
Os principais parâmetros devem ser considerados:
O nome do servidor que você deseja implantar. Indicar um nome
--name
cujo-n
comprimento não deve exceder 11 caracteres.As classes de armazenamento que você deseja que o servidor use. É importante definir a classe de armazenamento no momento da implantação de um servidor, pois essa configuração não pode ser alterada após a implantação. Você pode especificar as classes de armazenamento a serem usadas para os dados, logs e backups. Por padrão, se você não indicar classes de armazenamento, as classes de armazenamento do controlador de dados serão usadas.
- Para definir a classe de armazenamento para os backups, indique o parâmetro
--storage-class-backups
seguido pelo nome da classe de armazenamento. A exclusão desse parâmetro desabilita backups automatizados - Para definir a classe de armazenamento para os dados, indique o parâmetro
--storage-class-data
seguido pelo nome da classe de armazenamento. - Para definir a classe de armazenamento para os logs, indique o parâmetro
--storage-class-logs
seguido pelo nome da classe de armazenamento.
Importante
Se você precisar alterar a classe de armazenamento após a implantação, extraia os dados, exclua o servidor, crie um novo servidor e importe os dados.
- Para definir a classe de armazenamento para os backups, indique o parâmetro
Ao executar o comando create, você será solicitado a inserir o nome de usuário e a senha do usuário administrativo. Você pode ignorar o prompt interativo definindo as AZDATA_USERNAME
variáveis de ambiente de sessão e AZDATA_PASSWORD
antes de executar o comando create.
Exemplos
Para implantar um servidor PostgreSQL chamado postgres01 que usa as mesmas classes de armazenamento que o controlador de dados, execute o seguinte comando:
az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s
Nota
- Se você implantou o controlador de dados usando
AZDATA_USERNAME
variáveis de ambiente de sessão eAZDATA_PASSWORD
na mesma sessão de terminal, os valores paraAZDATA_PASSWORD
serão usados para implantar o servidor PostgreSQL também. Se você preferir usar outra senha, (1) atualize os valores paraAZDATA_USERNAME
eAZDATA_PASSWORD
ou (2) exclua asAZDATA_USERNAME
variáveis eAZDATA_PASSWORD
de ambiente ou (3) exclua seus valores para ser solicitado a inserir um nome de usuário e senha interativamente quando você cria um servidor. - Criar um servidor PostgreSQL não registrará recursos imediatamente no Azure. Como parte do processo de carregamento de inventário de recursos ou dados de uso no Azure, os recursos serão criados no Azure e você poderá ver seus recursos no portal do Azure.
Listar os servidores PostgreSQL implantados em seu controlador de dados Arc
Para listar os servidores PostgreSQL implantados em seu controlador de dados Arc, execute o seguinte comando:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
{
"name": "postgres01",
"state": "Ready"
}
Obtenha os pontos de extremidade para se conectar aos seus servidores PostgreSQL habilitados para Azure Arc
Para exibir os pontos de extremidade de um servidor PostgreSQL, execute o seguinte comando:
az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s
Por exemplo:
{
"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"
}
Você pode usar o ponto de extremidade da Instância PostgreSQL para se conectar ao servidor PostgreSQL a partir de sua ferramenta favorita: Azure Data Studio, pgcli psql, pgAdmin, etc.
Neste momento, use a compilação de insiders do Azure Data Studio.
Observação especial sobre implantações de máquina virtual do Azure
Quando você estiver usando uma máquina virtual do Azure, o endereço IP do ponto de extremidade não mostrará o endereço IP público . Para localizar o endereço IP público, use o seguinte comando:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Em seguida, você pode combinar o endereço IP público com a porta para fazer sua conexão.
Também pode ser necessário expor a porta do servidor PostgreSQL por meio do gateway de segurança de rede (NSG). Para permitir o tráfego através do (NSG), defina uma regra. Para definir uma regra, você precisará saber o nome do seu NSG. Você determina o NSG usando o comando abaixo:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
Depois de ter o nome do NSG, você pode adicionar uma regra de firewall usando o seguinte comando. Os valores de exemplo aqui criam uma regra NSG para a porta 30655 e permitem a conexão de qualquer endereço IP de origem.
Aviso
Não recomendamos definir uma regra para permitir a conexão de qualquer endereço IP de origem. Você pode bloquear melhor as coisas especificando um -source-address-prefixes
valor específico para o endereço IP do cliente ou um intervalo de endereços IP que cubra os endereços IP da sua equipe ou organização.
Substitua o --destination-port-ranges
valor do parâmetro abaixo pelo número da porta obtido do az postgres server-arc list
comando acima.
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 '*'
Ligação ao Azure Data Studio
Abra o Azure Data Studio e conecte-se à sua instância com o endereço IP do ponto de extremidade externo e o número da porta acima, além da senha especificada no momento em que criou a instância. Se o PostgreSQL não estiver disponível na lista suspensa Tipo de conexão , você poderá instalar a extensão PostgreSQL procurando por PostgreSQL na guia Extensões.
Nota
Você precisará clicar no botão [Avançado] no painel de conexão para inserir o número da porta.
Lembre-se, se você estiver usando uma VM do Azure, precisará do endereço IP público , que pode ser acessado por meio do seguinte comando:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Conecte-se com psql
Para acessar seu servidor PostgreSQL, passe o ponto de extremidade externo do servidor PostgreSQL que você recuperou acima:
Agora você pode conectar qualquer psql:
psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655
Conteúdos relacionados
Conectar-se ao seu servidor PostgreSQL habilitado para Azure Arc: leia Obter pontos de extremidade de conexão e cadeias de conexão
* Nos documentos acima, ignore as seções Entrar no portal do Azure, & Criar um Banco de Dados do Azure para PostgreSQL. Implemente as etapas restantes em sua implantação do Azure Arc. Essas seções são específicas do Banco de Dados do Azure para servidor PostgreSQL oferecido como um serviço PaaS na nuvem do Azure, mas as outras partes dos documentos são diretamente aplicáveis ao seu servidor PostgreSQL habilitado para Azure Arc.
Configuração de armazenamento e conceitos de armazenamento do Kubernetes