排解問題

本頁說明各種錯誤情況、這些情況的錯誤訊息,以及解決錯誤的疑難排解步驟。

網路錯誤情境

分配的 IP 範圍已用盡

使用 Memorystore for Memcached 時,您必須使用私人服務存取連線,以及該連線的相關聯 IP 位址範圍。如果 Memcached 執行個體和其他 Google Cloud 資源過多,該範圍內的可用 IP 位址可能會用盡。

如果 IP 位址用盡,建立執行個體時會傳回下列錯誤訊息:

ERROR: (gcloud.memcache.instances.create) { "code": 9, "message": "Unable to create instance. The allocated private IP address space is exhausted. For information on expanding the allocation, see https://cloud.google.com/vpc/docs/configure-private-services-access#modify-ip-range" }

如要解決這個問題,請分配額外的 IP 位址。如要進一步瞭解如何解決這個問題,請參閱「IP 位址範圍耗盡」一文。

您尚未為網路建立私人服務存取連線

如果您嘗試建立 Memorystore for Memcached 執行個體,但專案網路未建立私人服務存取連線,系統會顯示下列錯誤訊息,導致建立作業失敗:

Google private service access is not enabled. Enable private service access and try again

如要順利建立執行個體,請按照「建立私人服務存取連線」一文中的私人服務存取設定說明操作。

刪除私人服務存取的網路對等互連

建立私人服務存取連線時,系統會建立名為 servicenetworking-googleapis-com 的網路對等互連連線,該連線會顯示在專案的「虛擬私有雲網路對等互連」頁面中。

刪除這個網路對等互連可能會導致您收到下列錯誤訊息:

  • telnet: Unable to connect to remote host: Connection timed out
  • Unable to create instance. Enable private service access for the authorized network and try again. For information on enabling private service access, see https://cloud.google.com/service-infrastructure/docs/enabling-private-services-access

如要解決這個問題,請按照「建立私人服務存取權連線」一文的 gcloud 操作說明完成最後一個步驟。

防火牆規則封鎖執行個體 IP 位址

如果您建立的防火牆規則會封鎖與私人服務存取連線相關聯的分配 IP 範圍中的 IP 位址,可能會發生連線問題。

請勿建立會封鎖 Memcached 執行個體 IP 範圍的網路防火牆規則。

從其他 Google Cloud 資源連線至 Memcached 執行個體時發生錯誤

從 App Engine 標準環境或 Cloud Run functions 連線至執行個體時發生錯誤

如果無法使用 App Engine 標準環境或 Cloud Run 函式連線至 Memcached 執行個體,可能是因為您未為環境設定無伺服器虛擬私有雲存取連接器。

如需為 App Engine 標準環境設定無伺服器虛擬私有雲存取的操作說明,請參閱「連線至虛擬私有雲網路」。

如需為 Cloud Run 函式設定無伺服器虛擬私有雲存取的操作說明,請參閱「連線至虛擬私有雲網路」。

使用 Google Kubernetes Engine 叢集連線至執行個體時發生錯誤

如要從 GKE 叢集連線至 Memorystore for Memcached 執行個體,叢集必須啟用 VPC 原生/IP 別名。在建立 GKE 叢集時啟用虛擬私人雲端原生/IP 別名最簡單。建立叢集時,請在進階選項下方選取「虛擬私有雲原生」。詳情請參閱「建立 VPC 原生叢集」。

使用 App Engine 彈性環境或 Compute Engine VM 連線至執行個體時發生錯誤

如果執行個體發生連線問題,請按照下列疑難排解步驟操作:

  1. 請確認 Memcached 執行個體與嘗試存取該執行個體的用戶端位於相同區域和網路。

  2. 確認專案沒有任何網路防火牆規則封鎖 Memcached 執行個體節點 IP。

    • 如要查看節點的 IP 位址,請在 Google Cloud 控制台中查看 Memcached 執行個體的節點分頁。
  3. 透過 Telnet 連線至其中一個 Memcached 節點,然後執行一些簡單的 Memcached setget 指令,確認執行個體是否回應。

身分與存取權管理 ( IAM) 錯誤情境

還原已刪除的服務帳戶

Memorystore for Memcached 會使用下列服務帳戶管理 Memcached 執行個體:

  • service-project-number@service-networking.iam.gserviceaccount.com
  • service-project-number@cloud-memcache-sa.iam.gserviceaccount.com

刪除這些服務帳戶的政策繫結後,您就無法建立新的執行個體。

如果您嘗試在這種情況下使用 gcloud 建立 Memcached 執行個體,可能會收到下列錯誤訊息:

ERROR: (gcloud.memcache.instances.create) { "code": 13, "message": "an internal error has occurred" }

如要重新建立這些服務帳戶的政策繫結,請執行下列任一指令,並將 variables 替換成適當的值。執行與已刪除服務帳戶相關聯的指令。

gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@service-networking.iam.gserviceaccount.com' --role='roles/servicenetworking.serviceAgent'
gcloud projects add-iam-policy-binding project-id --member='serviceAccount:service-project-number@cloud-memcache-sa.iam.gserviceaccount.com' --role='roles/memcache.serviceAgent'

作業逾時錯誤

下列錯誤情況會導致 Memcached 執行個體沒有回應,和/或執行個體/節點作業逾時。

網路分割錯誤

有時,由於 Google Cloud 伺服器發生網路分割錯誤, Google Cloud 資源無法在區域內的可用區之間通訊。這可能會導致執行個體中斷連線,進而發生逾時錯誤。

Google Cloud 解決執行個體佈建所在區域或地帶的網路分割錯誤後,連線應會恢復正常。

在這種情況下,您可能會看到連線錯誤訊息,例如:

telnet: Unable to connect to remote host: Connection timed out

如果無法判斷逾時錯誤的原因,請與Google Cloud 支援團隊聯絡。

應用程式對節點 IP 的參照不當

如果用戶端嘗試連線至節點時逾時,可能是因為應用程式未指定要連線的節點正確 IP 位址。確認應用程式是否指向叢集節點的 IP 位址。

在這種情況下,您可能會看到連線錯誤訊息,例如:

telnet: Unable to connect to remote host: Connection timed out

如要解決這個問題,請查閱節點的 IP 位址,並確認應用程式正確指向節點位址。

其他錯誤情境

不支援的 Compute Engine IP 位址範圍

您無法從 IP 位址範圍在 172.17.0.0/16 的 Compute Engine VM 存取 Memorystore for Memcached,因為該範圍是保留給內部元件使用。

區域中各可用區的節點分布不均

如果您在佈建 Memcached 執行個體時, Google Cloud 區域中的某個區域無法使用,系統會在可用的區域中建立節點。這可能會導致區域中各個區域的 Memcached 節點分布不均。

這項異動對應用程式效能的影響應該不大。 不過,理想情況下,節點應分布在區域中的所有可用區,以保護資料免於可用區服務中斷的影響。

如果您對建立執行個體時節點在可用區的分配情形不滿意,可以等待該可用區恢復連線後再建立執行個體,也可以使用下列策略,稍後嘗試重新分配可用區的節點:

如要在區域的可用節點之間重新分配 Memcached 節點,請調高執行個體大小,然後調回所需的節點數量。如果所需可用區恢復連線,擴縮程序會將節點平均重新分配到可用區。此外,請注意,擴充作業會導致 Memcached 執行個體中的資料快取排清。