Criar na CLI um servidor PostgreSQL habilitado para o Azure Arc
Este documento descreve as etapas para criar um servidor do PostgreSQL no Azure Arc e conectá-lo.
Pré-requisitos
Para prosseguir com as tarefas deste 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 ver uma lista mais abrangente, confira Ferramentas de cliente.
Além das ferramentas necessárias, para concluir as tarefas, você precisará ter um controlador de dados do Azure Arc.
Observação
Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.
As atualizações mais recentes estão disponíveis nas notas sobre a versão.
Introdução
Se você já estiver familiarizado com os tópicos abaixo, pode ignorar 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 o Azure Arc
- Requisitos e modos de conectividade
- Configuração de armazenamento e conceitos de armazenamento do Kubernetes
- Modelo de recurso do Kubernetes
Se você preferir experimentar coisas sem provisionar um ambiente completo por contra própria, comece rapidamente com o Azure Arc JumpStart no AKS (Serviço de Kubernetes do Azure), EKS (Serviço de Kubernetes Elástico do Azure), GKE (Google Cloud kubernetes Engine) ou em uma VM do Azure.
Etapa preliminar e temporária apenas para usuários do OpenShift
Realize esta etapa antes de seguir para a próxima. Para implantar o servidor do PostgreSQL no Red Hat OpenShift em um projeto diferente do padrão, você precisa executar os seguintes comandos em seu cluster para atualizar as restrições de segurança. O comando concede os privilégios necessários para as contas de serviço que executarão o servidor do PostgreSQL. A SCC (restrição de contexto de segurança) arc-data-scc foi adicionada quando você 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 as SCCs no OpenShift, consulte a Documentação do OpenShift. Prossiga para a próxima etapa.
Criar um servidor PostgreSQL habilitado para o Azure Arc
Para criar um servidor do PostgreSQL habilitado para o Azure Arc no controlador de dados do 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 podem ser definidos no momento da criação, examine a saída do comando:
az postgres server-arc create --help
Os principais parâmetros que devem ser considerados são:
o nome do servidor que você deseja implantar. Indique
--name
ou-n
seguido por um nome cujo comprimento não deve exceder 11 caracteres.As classes de armazenamento que você deseja que o servidor use. É importante que você defina a classe de armazenamento no momento em que implanta 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. Excluir esse parâmetro desabilita os 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 Criar, você receberá uma solicitação para inserir o nome de usuário e a senha do usuário administrativo. Você pode ignorar o prompt interativo definindo as variáveis de ambiente AZDATA_USERNAME
e AZDATA_PASSWORD
da sessão antes de executar o comando Criar.
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
Observação
- Se você implantou o controlador de dados usando as variáveis de ambiente
AZDATA_USERNAME
eAZDATA_PASSWORD
da sessão na mesma sessão do terminal, os valores deAZDATA_PASSWORD
também serão usados para implantar o servidor do PostgreSQL também. Se você preferir usar outra senha, (1) atualize o valor deAZDATA_USERNAME
eAZDATA_PASSWORD
ou (2) exclua a variável de ambienteAZDATA_USERNAME
eAZDATA_PASSWORD
ou (3) exclua seu valor para que seja solicitado que você insira um nome de usuário e senha interativamente ao criar um servidor. - A criação de um servidor do PostgreSQL não registrará imediatamente os recursos no Azure. Como parte do processo de carregar um inventário de recursos ou dados de uso para o Azure, os recursos serão criados no Azure e você poderá ver seus recursos no portal do Azure.
Listar os servidores do PostgreSQL implantados no controlador de dados do Arc
Para listar os servidores do PostgreSQL implantados no controlador de dados do Arc, execute o comando a seguir:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
{
"name": "postgres01",
"state": "Ready"
}
Obter os pontos de extremidade para conectar-se aos servidores do PostgreSQL habilitado para Azure Arc
Para exibir os pontos de extremidade de um servidor do PostgreSQL, execute o comando a seguir:
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 do PostgreSQL para se conectar ao servidor do PostgreSQL de sua ferramenta favorita: Azure Data Studio, pgcli psql, pgAdmin, etc.
Neste momento, use o build do Insiders do Azure Data Studio.
Observação especial sobre as implantações de máquinas virtuais do Azure
Ao usar uma máquina virtual do Azure, o endereço IP público não é exibido pelo endereço IP do ponto de extremidade. Para localizar o endereço IP público, use o comando a seguir:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Em seguida, você pode combinar o endereço IP público e a porta para fazer a conexão.
Também pode ser necessário expor a porta do servidor do PostgreSQL por meio do NSG (gateway de segurança de rede). Para permitir o tráfego por meio do (NSG), defina uma regra. Para definir uma regra, você precisará saber o nome do seu NSG. Você determina o NSG usando o comando a seguir:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
Quando tiver o nome do NSG, você poderá adicionar uma regra de firewall com o seguinte comando. Estes valores de exemplo criam uma regra de 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 obter um bloqueio melhor definindo um valor -source-address-prefixes
específico ao endereço IP do cliente ou um intervalo de endereços IP que cubra os endereços IP da equipe ou organização.
Substitua o valor do parâmetro --destination-port-ranges
abaixo pelo número de porta obtido com o comando az postgres server-arc list
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 '*'
Conectar-se com o 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 e a senha que você especificou no momento em que criou a instância. Se o PostgreSQL não estiver disponível no menu suspenso de tipo de conexão, você poderá instalar a extensão do PostgreSQL pesquisando PostgreSQL na guia extensões.
Observação
Você precisará clicar no botão [Advanced] no painel de conexão para inserir o número da porta.
Lembre-se de que, se você estiver usando uma VM do Azure, será necessário o endereço IP público, acessível por meio do seguinte comando:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
Conectar-se com o psql
Para acessar o servidor do PostgreSQL, passe o ponto de extremidade externo do servidor do PostgreSQL que você recuperou acima:
Agora você pode conectar os psql:
psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655
Conteúdo relacionado
Conectar-se ao servidor do 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 e Criar um Banco de Dados do Azure para PostgreSQL. Implemente as etapas restantes na sua implantação do Azure Arc. Essas seções são específicas para o servidor do Banco de Dados do Azure para PostgreSQL oferecido como serviço de PaaS na nuvem do Azure, mas as outras partes dos documentos são diretamente aplicáveis ao seu servidor do PostgreSQL habilitado para Azure Arc.
Configuração de armazenamento e conceitos de armazenamento do Kubernetes