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 Azure

  • kubectl

    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:

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.

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