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 Azure

  • kubectl

    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:

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.

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 e AZDATA_PASSWORD da sessão na mesma sessão do terminal, os valores de AZDATA_PASSWORD também serão usados para implantar o servidor do PostgreSQL também. Se você preferir usar outra senha, (1) atualize o valor de AZDATA_USERNAME e AZDATA_PASSWORD ou (2) exclua a variável de ambiente AZDATA_USERNAME e AZDATA_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