在採用私人服務存取權的區域中,建立 AlloyDB for PostgreSQL 叢集或執行個體時,如要解決 IP 位址不足的問題,可以增加虛擬私有雲 (VPC) 網路中分配的 IP 位址空間。
在尚未有任何叢集或執行個體的區域中,建立 AlloyDB 叢集或執行個體時,AlloyDB 會在該區域建立 /24 子網路。如果 AlloyDB 現有的可用 IP 位址空間不足,無法建立子網路,則必須先分配額外的 IP 位址空間,才能建立叢集或執行個體。
事前準備
- 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
- 您必須在使用的 Google Cloud 專案中具備下列其中一個 IAM 角色:
roles/alloydb.admin(AlloyDB 管理員預先定義的 IAM 角色)roles/owner(擁有者基本 IAM 角色)roles/editor(編輯者基本 IAM 角色)
如果您不具備上述任一角色,請向組織管理員要求存取權。
- 如要增加 IP 位址範圍,您也必須具備下列 Identity and Access Management (IAM) 權限:
compute.networks.listcompute.addresses.createcompute.addresses.listservicenetworking.services.addPeering
程序
如要增加 AlloyDB IP 位址空間,請執行下列兩項作業:
- 在虛擬私有雲網路中,建立額外的已分配 IP 位址範圍。
- 將額外的位址範圍新增至虛擬私有雲網路中現有的私人服務存取連線。
控制台
前往 Google Cloud 控制台的「VPC networks」(虛擬私有雲網路) 頁面。
選取虛擬私有雲網路所在的專案。
選取包含現有私人服務存取連線的虛擬私有雲網路。
選取「私人服務連線」分頁標籤。
在「Private services access」(私人服務存取權) 分頁中,選取「Allocated IP ranges for services」(為服務分配的 IP 範圍) 分頁。
按一下「Allocate IP range」(分配 IP 範圍)。
輸入已分配範圍的「Name」(名稱) 與「Description」(說明)。
為分配範圍指定「IP range」(IP 範圍):
- 如要指定 IP 位址範圍,請選取「Custom」(自訂),然後輸入 CIDR 區塊,例如
192.168.0.0/16。 - 如要指定前置長度,並讓 Google 選取可用範圍,請選取「Automatic」(自動),然後輸入前置長度,例如
16。
- 如要指定 IP 位址範圍,請選取「Custom」(自訂),然後輸入 CIDR 區塊,例如
按一下 [Allocate] (分配),建立已分配範圍。
在「Private services access」(私人服務存取權) 分頁中,選取「Private connections to services」(私人服務連線) 分頁。
點選「servicenetworking-googleapis-com」。
在「Update a private connection」(更新私人連線) 對話方塊中,按一下「Assigned allocation」(指派的分配) 方塊,然後選取您先前建立的其他分配 IP 範圍。
按一下「更新」即可更新連線。
gcloud
如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。
使用
gcloud config set project指令,將預設專案設為虛擬私有雲網路所在的專案:gcloud config set project PROJECT_ID
將
PROJECT_ID替換為虛擬私有雲網路所在專案的 ID。使用
gcloud compute addresses create指令,建立額外的已分配 IP 位址範圍。如要指定位址範圍和前置字元長度 (子網路遮罩),請使用
--addresses和--prefix-length旗標。舉例來說,如要分配 CIDR 區塊192.168.0.0/16,請將位址指定為192.168.0.0,並將前置長度指定為16:gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK如要僅指定前置字串長度 (子網路遮罩),請使用
--prefix-length旗標。如果省略位址範圍, Google Cloud會自動選取虛擬私有雲網路中未使用的位址範圍。以下範例會選取前置碼長度為16位元的未使用 IP 位址範圍:gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
將下列的預留位置替換為相關值:
RESERVED_RANGE_NAME:分配的範圍名稱,例如additional-alloydb-range。DESCRIPTION:範圍的說明,例如allocated to extend AlloyDB range。VPC_NETWORK:虛擬私有雲網路的名稱,例如my-vpc-network。
下列範例會在
default虛擬私有雲網路中,建立額外的已分配 IP 範圍:gcloud compute addresses create additional-alloydb-range \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="allocated to extend AlloyDB range" \ --network=default使用
gcloud services vpc-peerings list指令,取得已分配給私人服務存取連線的 IP 範圍清單:gcloud services vpc-peerings list \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK將
VPC_NETWORK替換為虛擬私有雲網路名稱,例如my-vpc-network。reservedPeeringRanges後方會顯示已分配給私人服務存取連線的 IP 範圍清單。使用
gcloud services vpc-peerings update指令,將額外的位址範圍新增至私人服務存取連線:gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME,EXISTING_RANGES_LIST \ --network=VPC_NETWORK將下列的預留位置替換為相關值:
RESERVED_RANGE_NAME:您建立的其他已分配 IP 位址範圍名稱。EXISTING_RANGES_LIST:以半形逗號分隔的清單,列出已分配給私人服務存取權連線的 IP 位址範圍。VPC_NETWORK:虛擬私有雲網路的名稱。
這個指令會啟動長時間執行的作業,並傳回作業名稱。
確認作業是否成功:
gcloud services vpc-peerings operations describe OPERATION_NAME
將
OPERATION_NAME替換為上一個步驟傳回的作業名稱。