Tworzenie serwera PostgreSQL z obsługą usługi Azure Arc z poziomu interfejsu wiersza polecenia

W tym dokumencie opisano kroki tworzenia serwera PostgreSQL w usłudze Azure Arc i nawiązywania z nim połączenia.

Wymagania wstępne

Zanim będzie można kontynuować wykonywanie zadań w tym artykule, musisz mieć niezbędne narzędzia. Wszystkie wdrożenia wymagają następujących narzędzi:

  • Azure Data Studio

  • Rozszerzenie usługi Azure Arc dla narzędzia Azure Data Studio

  • Interfejs wiersza polecenia platformy Azure (az)

  • arcdata rozszerzenie interfejsu wiersza polecenia platformy Azure

  • kubectl

    Dodatkowe narzędzia klienckie w zależności od środowiska. Aby uzyskać bardziej kompleksową listę, zobacz Narzędzia klienckie.

Oprócz wymaganych narzędzi do wykonywania zadań potrzebny jest kontroler danych usługi Azure Arc.

Uwaga

Jako funkcja w wersji zapoznawczej technologia przedstawiona w tym artykule podlega dodatkowym warunkom użytkowania dla wersji zapoznawczych platformy Microsoft Azure.

Najnowsze aktualizacje są dostępne w informacjach o wersji.

Wprowadzenie

Jeśli znasz już poniższe tematy, możesz pominąć ten akapit. Przed kontynuowaniem tworzenia warto przeczytać ważne tematy:

Jeśli wolisz wypróbować elementy bez samodzielnego aprowizowania pełnego środowiska, szybko rozpocznij pracę z usługą Azure Arc Jumpstart w usłudze Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) lub na maszynie wirtualnej platformy Azure.

Wstępny i tymczasowy krok tylko dla użytkowników openShift

Zaimplementuj ten krok przed przejściem do następnego kroku. Aby wdrożyć serwer PostgreSQL na platformie Red Hat OpenShift w projekcie innym niż domyślny, należy wykonać następujące polecenia względem klastra w celu zaktualizowania ograniczeń zabezpieczeń. To polecenie udziela niezbędnych uprawnień do kont usług, które będą uruchamiać serwer PostgreSQL. Ograniczenie kontekstu zabezpieczeń (SCC) arc-data-scc jest tym, który został dodany podczas wdrażania kontrolera danych usługi Azure Arc.

oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>

Nazwa serwera to nazwa serwera, który zostanie utworzony podczas następnego kroku.

Aby uzyskać więcej informacji na temat scCs w usłudze OpenShift, zapoznaj się z dokumentacją platformy OpenShift. Przejdź do następnego kroku.

Tworzenie serwera PostgreSQL z obsługą usługi Azure Arc

Aby utworzyć serwer PostgreSQL z obsługą usługi Azure Arc na kontrolerze danych usługi Arc, użyj polecenia az postgres server-arc create , do którego przekażesz kilka parametrów.

Aby uzyskać szczegółowe informacje o wszystkich parametrach, które można ustawić w czasie tworzenia, zapoznaj się z danymi wyjściowymi polecenia:

az postgres server-arc create --help

Główne parametry należy wziąć pod uwagę:

  • nazwa serwera , który chcesz wdrożyć. Wskaż nazwę --name lub -n po której długość nie może przekraczać 11 znaków.

  • Klasy magazynu, które mają być używane przez serwer. Należy ustawić klasę magazynu bezpośrednio podczas wdrażania serwera, ponieważ nie można zmienić tego ustawienia po wdrożeniu. Można określić klasy magazynu do użycia dla danych, dzienników i kopii zapasowych. Domyślnie, jeśli nie wskazujesz klas magazynu, będą używane klasy magazynu kontrolera danych.

    • Aby ustawić klasę magazynu dla kopii zapasowych, wskaż parametr --storage-class-backups , po którym następuje nazwa klasy magazynu. Wyłączenie tego parametru powoduje wyłączenie automatycznych kopii zapasowych
    • Aby ustawić klasę magazynu dla danych, wskaż parametr --storage-class-data , po którym następuje nazwa klasy magazynu.
    • Aby ustawić klasę magazynu dla dzienników, wskaż parametr --storage-class-logs , po którym następuje nazwa klasy magazynu.

    Ważne

    Jeśli chcesz zmienić klasę magazynu po wdrożeniu, wyodrębnij dane, usuń serwer, utwórz nowy serwer i zaimportuj dane.

Po wykonaniu polecenia create zostanie wyświetlony monit o wprowadzenie nazwy użytkownika i hasła użytkownika administracyjnego. Możesz pominąć interakcyjny monit, ustawiając AZDATA_USERNAME zmienne środowiskowe i AZDATA_PASSWORD sesji przed uruchomieniem polecenia create.

Przykłady

Aby wdrożyć serwer PostgreSQL o nazwie postgres01, który używa tych samych klas magazynu co kontroler danych, uruchom następujące polecenie:

az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s

Uwaga

  • Jeśli kontroler danych został wdrożony przy użyciu AZDATA_USERNAME zmiennych środowiskowych sesji i AZDATA_PASSWORD sesji w tej samej sesji terminalu, wartości dla AZDATA_PASSWORD zostaną użyte do wdrożenia serwera PostgreSQL. Jeśli wolisz użyć innego hasła, zaktualizuj wartości i AZDATA_USERNAMEAZDATA_PASSWORD (2) usuń AZDATA_USERNAME zmienne środowiskowe i AZDATA_PASSWORD lub (3) usuń ich wartości, aby wyświetlić monit o wprowadzenie nazwy użytkownika i hasła interaktywnie podczas tworzenia serwera.
  • Utworzenie serwera PostgreSQL nie spowoduje natychmiastowego zarejestrowania zasobów na platformie Azure. W ramach procesu przekazywania spisu zasobów lub danych użycia na platformę Azure zasoby zostaną utworzone na platformie Azure i będą widoczne zasoby w witrynie Azure Portal.

Wyświetlanie listy serwerów PostgreSQL wdrożonych w kontrolerze danych usługi Arc

Aby wyświetlić listę serwerów PostgreSQL wdrożonych na kontrolerze danych usługi Arc, uruchom następujące polecenie:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s
  {
    "name": "postgres01",
    "state": "Ready"
  }

Uzyskiwanie punktów końcowych w celu nawiązania połączenia z serwerami PostgreSQL z obsługą usługi Azure Arc

Aby wyświetlić punkty końcowe dla serwera PostgreSQL, uruchom następujące polecenie:

az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s

Na przykład:

{
  "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"
}

Możesz użyć punktu końcowego wystąpienia postgreSQL, aby nawiązać połączenie z serwerem PostgreSQL z poziomu ulubionego narzędzia: Azure Data Studio, pgcli psql, pg Administracja itp.

W tej chwili użyj kompilacji niejawnych testerów programu Azure Data Studio.

Szczególna uwaga dotycząca wdrożeń maszyn wirtualnych platformy Azure

Jeśli używasz maszyny wirtualnej platformy Azure, adres IP punktu końcowego nie będzie pokazywał publicznego adresu IP. Aby zlokalizować publiczny adres IP, użyj następującego polecenia:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Następnie możesz połączyć publiczny adres IP z portem, aby nawiązać połączenie.

Może być również konieczne uwidocznienie portu serwera PostgreSQL za pośrednictwem bramy zabezpieczeń sieci . Aby zezwolić na ruch przez sieciową grupę zabezpieczeń, ustaw regułę. Aby ustawić regułę, musisz znać nazwę sieciowej grupy zabezpieczeń. Sieciowa grupa zabezpieczeń jest określana przy użyciu poniższego polecenia:

az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table

Po utworzeniu nazwy sieciowej grupy zabezpieczeń możesz dodać regułę zapory przy użyciu następującego polecenia. W tym przykładzie wartości tworzą regułę sieciowej grupy zabezpieczeń dla portu 30655 i zezwalają na połączenie z dowolnego źródłowego adresu IP.

Ostrzeżenie

Nie zalecamy ustawiania reguły zezwalania na połączenie z dowolnego źródłowego adresu IP. Możesz lepiej zablokować elementy, określając wartość specyficzną -source-address-prefixes dla adresu IP klienta lub zakres adresów IP, który obejmuje adresy IP zespołu lub organizacji.

Zastąp wartość poniższego --destination-port-ranges parametru numerem portu uzyskanym z powyższego az postgres server-arc list polecenia.

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 '*'

Nawiązywanie połączenia z narzędziem Azure Data Studio

Otwórz program Azure Data Studio i połącz się z wystąpieniem przy użyciu zewnętrznego adresu IP punktu końcowego i numeru portu powyżej oraz hasła określonego podczas tworzenia wystąpienia. Jeśli postgreSQL nie jest dostępny na liście rozwijanej typ Połączenie ion, możesz zainstalować rozszerzenie PostgreSQL, wyszukując postgreSQL na karcie rozszerzenia.

Uwaga

Aby wprowadzić numer portu, musisz kliknąć przycisk [Zaawansowane] na panelu połączenia.

Pamiętaj, że jeśli używasz maszyny wirtualnej platformy Azure, potrzebujesz publicznego adresu IP, który jest dostępny za pomocą następującego polecenia:

az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table

Połączenie za pomocą narzędzia psql

Aby uzyskać dostęp do serwera PostgreSQL, przekaż zewnętrzny punkt końcowy serwera PostgreSQL pobranego z powyższego:

Teraz możesz nawiązać połączenie z usługą psql:

psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655