Cloud Run 網路的最佳做法

本頁概述了設定 Cloud Run 資源網路選項的最佳做法。建議您在建立資源前,先詳閱本頁面中的所有部分,瞭解 Cloud Run 支援的網路選項及其影響。

監控 IP 位址使用情形

如果您使用 Direct VPC 輸出,請確保子網路有足夠的 IP 位址。您使用的 IP 位址數量取決於工作負載執行的執行個體數量,因此建議您監控 IP 位址用量。請確保 IP 使用量在一段時間內維持在子網路支援的範圍內。

如要預估 IP 位址使用量,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 Cloud Monitoring Metrics Explorer 頁面:

    前往 Cloud Monitoring Metrics Explorer

  2. 使用指標類型 run.googleapis.com/container/instance_count 查詢專案中的執行個體數量。Cloud Monitoring 可讓您查看這項指標的值隨時間變化。

  3. 將執行個體計數指標的值乘以 2,即可估算出目前使用的 IP 位址數量。

IP 位址用盡策略

使用 RFC 1918 私人 IP 位址空間搭配直接 VPC 外連時,如果有大量 Cloud Run 工作負載,可能會導致 IP 用盡。您可以採用下列策略,使用其他 IP 位址範圍來管理 IP 位址用盡的問題。

使用非 RFC 1918 IPv4 位址

除了 RFC 1918 IPv4 位址範圍,Cloud Run 也支援 RFC 6598Class E/RFC 5735 範圍。所有Google Cloud 服務和功能都支援這些非 RFC 1918 範圍,包括虛擬私人雲端網路、Cloud Load Balancing 和 Private Service Connect。

為獲得最佳相容性,建議您從 RFC 6598 (100.64.0.0/10) 範圍開始。如果您已在其他地方使用這個範圍,請考慮使用 Class E/RFC 5735 (240.0.0.0/4)。Class E 是龐大的空間,提供超過 2680 萬個 IP 位址,因此可長期支援您的成長。不過,E 級有一定的限制。舉例來說,Windows 和部分地端硬體不支援這項功能。請參閱這篇文章,瞭解如何利用 Class E IPv4 位址空間,在 GKE 中緩解 IPv4 用盡的問題。

使用 Cloud NAT 或 Private Service Connect

如果使用非 RFC 1918 範圍的 Cloud Run 工作負載需要存取僅接受 RFC 1918 的內部部署目的地,請使用下列任一解決方案:

使用 IPv4 和 IPv6 (雙重堆疊) 子網路

雖然這不會減少 IPv4 耗盡的情況,但將應用程式遷移至 IPv6 是個不錯的起點。設定雙層資源,以免日後發生 IPv4 用盡的問題。

減少通訊埠耗盡的策略

以下說明如何透過 Cloud Run 減少連接埠耗盡的情況。

使用連線集區和重複使用連線

當您向單一目的地 IP 位址傳送大量要求時,請使用連線集區來維持及重複使用目的地連線。單一 IP 位址的連線率過高,可能會耗盡出站埠,並導致連線遭拒的錯誤。

效能和吞吐量策略

本節將說明可改善網路效能和網際網路及 Google 服務傳輸量的可調整選項。

使用直接虛擬私有雲 egress 提高網路輸出處理量

如要提高網路輸出連線的處理量,請使用直接虛擬私有雲 egress,透過虛擬私有雲網路轉送流量。

範例 1:外部流量至網際網路

如果您要將外部流量傳送至公開網際網路,請設定 --vpc-egress=all-traffic,將所有流量都轉送至虛擬私有雲網路。使用這種方法時,您必須設定 Cloud NAT 才能連上公開網際網路。

如要讓 Cloud Run 使用 Cloud NAT 閘道來處理公用 NAT 或私人 NAT,請參閱「Cloud NAT 直接虛擬私有雲輸出互動」。

範例 2:前往 Google API 的內部流量

如果您使用 Direct VPC 輸出功能將流量傳送至 Google API (例如 Cloud Storage),請選擇下列任一選項:

使用 Cloud Run 的預設 MTU 設定

在搭配 Cloud Run 使用虛擬私有雲網路時,請勿變更最大傳輸單位 (MTU) 設定。請改用預設的 MTU (1,460 位元組)。

後續步驟