透過 CLI 建立已啟用 Azure Arc 的 PostgreSQL 伺服器
本文件說明在 Azure Arc 上建立 PostgreSQL 伺服器並與其連線的步驟。
必要條件
您必須先具備必要的工具,才能繼續進行本文中的工作。 所有部署都需要下列工具:
Azure Data Studio
適用於 Azure Data Studio 的 Azure Arc 延伸模組
Azure CLI (
az
)Azure CLI 的
arcdata
延伸模組kubectl
視您的環境而定的其他用戶端工具。 如需更完整的清單,請參閱用戶端工具。
除了必要的工具之外,若要完成工作,您需要 Azure Arc 資料控制器。
開始使用
如果您原本就對下列主題很熟悉,則可以略過此段落。 以下提供在繼續建立之前,建議您閱讀的重要主題:
如果您想要嘗試一些項目,而不需要自行佈建完整的環境,請使用 Azure Kubernetes Service (AKS)、AWS Elastic Kubernetes Service (EKS)、Google Cloud Kubernetes Engine (GKE) 或 Azure VM 上的 Azure Arc Jumpstart 快速開始。
僅適用於 OpenShift 使用者的初步和臨時步驟
在移至下一個步驟之前,請先實作此步驟。 若要在預設以外的專案中將 PostgreSQL 伺服器部署至 Red Hat OpenShift,您必須對叢集執行下列命令,以更新安全性限制式。 此命令會將必要的權限授與將執行 PostgreSQL 伺服器的服務帳戶。 資訊安全內容限制式 (SCC) arc-data-scc 是您部署 Azure Arc 資料控制器時新增的資訊安全內容限制式。
oc adm policy add-scc-to-user arc-data-scc -z <server-name> -n <namespace-name>
伺服器名稱是您將在下一步中建立的伺服器名稱。
如需 OpenShift 中 SCC 的詳細資訊,請參閱 OpenShift 文件。 繼續進行下一個步驟。
建立已啟用 Azure Arc 的 PostgreSQL 伺服器
若要在 Arc 資料控制器上建立已啟用 Azure Arc 的 PostgreSQL 伺服器,您將使用命令 az postgres server-arc create
,將數個參數傳遞至該命令。
如需詳細資訊,瞭解您可以在建立期間設定的所有參數,請檢閱命令的輸出:
az postgres server-arc create --help
應該考量的主要參數如下:
要部署的伺服器名稱。 指出
--name
或-n
,後面接著的名稱長度不可超過 11 個字元。您想要伺服器使用的儲存類別。 請務必在部署伺服器時立即設定儲存類別,因為部署之後就無法變更此設定。 您可以指定要用於資料、記錄和備份的儲存類別。 根據預設,如果您未指出儲存類別,則系統會使用資料控制器的儲存類別。
- 若要設定備份的儲存類別,請指出 參數
--storage-class-backups
,後面接著儲存類別的名稱。 排除此參數會停用自動備份 - 若要設定資料的儲存類別,請指出 參數
--storage-class-data
,後面接著儲存類別的名稱。 - 若要設定記錄的儲存類別,請指出 參數
--storage-class-logs
,後面接著儲存類別的名稱。
重要
如果您需要在部署後變更儲存類別,請擷取資料、刪除伺服器、建立新的伺服器,以及匯入資料。
- 若要設定備份的儲存類別,請指出 參數
當您執行建立命令時,系統會提示您輸入系統管理使用者的使用者名稱和密碼。 執行建立命令之前,您可以先設定 AZDATA_USERNAME
和 AZDATA_PASSWORD
工作階段環境變數,以略過互動式提示。
範例
若要部署名為 postgres01 的 PostgreSQL 伺服器,其使用的儲存類別與資料控制器相同,請執行下列命令:
az postgres server-arc create -n postgres01 --k8s-namespace <namespace> --use-k8s
注意
- 如果您在相同的終端機工作階段中使用
AZDATA_USERNAME
和AZDATA_PASSWORD
工作階段環境變數部署資料控制器,則系統也會使用AZDATA_PASSWORD
的值來部署 PostgreSQL 伺服器。 如果您想要使用另一個密碼,(1) 更新AZDATA_USERNAME
和AZDATA_PASSWORD
的值,或 (2) 刪除AZDATA_USERNAME
和AZDATA_PASSWORD
環境變數,或 (3) 刪除其值,以在建立伺服器時收到提示,要求您以互動方式輸入使用者名稱和密碼。 - 建立 PostgreSQL 伺服器並不會立即在 Azure 中註冊資源。 在將資源庫存或使用量資料上傳至 Azure 的過程中,系統也會在 Azure 中建立資源,而您將能夠在 Azure 入口網站中看到資源。
列出在 Arc 資料控制器中部署的 PostgreSQL 伺服器
若要列出在 Arc 資料控制器中部署的 PostgreSQL 伺服器,請執行下列命令:
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
{
"name": "postgres01",
"state": "Ready"
}
取得端點以連線到已啟用 Azure Arc 的 PostgreSQL 伺服器
若要檢視 PostgreSQL 伺服器的端點,請執行下列命令:
az postgres server-arc endpoint list -n <server name> --k8s-namespace <namespace> --use-k8s
例如:
{
"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"
}
您可以使用 PostgreSQL 執行個體端點,從您慣用的工具連線到 PostgreSQL 伺服器:Azure Data Studio、pgcli psql、pgAdmin 等。
此時,請使用 Azure Data Studio 的測試人員組建。
關於 Azure 虛擬機器部署的特殊注意事項
如果您使用 Azure 虛擬機器,則端點 IP 位址不會顯示公用 IP 位址。 若要找出公用 IP 位址,請使用下列命令:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
接著,您可以將公用 IP 位址與連接埠結合,以進行連線。
您可能也需要透過網路安全性閘道 (NSG),來公開 PostgreSQL 伺服器的連接埠。 若要允許流量通過 (NSG),請設定規則。 若要設定規則,您將需要知道 NSG 的名稱。 您使用下列命令來判斷 NSG:
az network nsg list -g azurearcvm-rg --query "[].{NSGName:name}" -o table
一旦擁有 NSG 的名稱,就可以使用下列命令來新增防火牆規則。 這裡的範例值會建立連接埠 30655 的 NSG 規則,並允許來自任何來源 IP 位址的連線。
警告
不建議設定規則以允許來自任何來源 IP 位址的連線。 您可以指定專屬於您用戶端 IP 位址或 IP 位址範圍 (涵蓋您小組或組織 IP 位址) 的 -source-address-prefixes
值,以更好的方式來鎖定項目。
將以下 --destination-port-ranges
參數值取代為您從以上 az postgres server-arc list
命令取得的連接埠號碼。
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 '*'
使用 Azure Data Studio 連線
開啟 Azure Data Studio,並使用上述外部端點 IP 位址和連接埠號碼,以及您在建立執行個體時指定的密碼來連線到執行個體。 如果 [連線類型] 下拉式清單中沒有 PostgreSQL,您可以在 [延伸模組] 索引標籤中搜尋 PostgreSQL,來安裝 PostgreSQL 延伸模組。
注意
您必須按一下連線面板中的 [進階] 按鈕,才能輸入連接埠號碼。
請記住,如果您使用的是 Azure VM,則需要公用 IP 位址,該位址可透過下列命令取得:
az network public-ip list -g azurearcvm-rg --query "[].{PublicIP:ipAddress}" -o table
透過 psql 連線
若要存取 PostgreSQL 伺服器,請傳遞您從上述擷取的 PostgreSQL 伺服器外部端點:
您現在可以連接其中一個 psql:
psql postgresql://postgres:<EnterYourPassword>@10.0.0.4:30655
相關內容
連線到已啟用 Azure Arc 的 PostgreSQL 伺服器:讀取取得連線端點和連接字串
* 在上述文件中,略過登入 Azure 入口網站與建立適用於 PostgreSQL 的 Azure 資料庫小節。 在 Azure Arc 部署中實作其餘步驟。 這幾節專屬於 Azure 雲端中以 PaaS 服務的形式提供的適用於 PostgreSQL 的 Azure 資料庫伺服器,但文件的其他部分則直接適用於已啟用 Azure Arc 的 PostgreSQL 伺服器。