本頁概述了設定 Cloud Run 資源網路選項的最佳做法。建議您在建立資源前,先詳閱本頁面中的所有部分,瞭解 Cloud Run 支援的網路選項及其影響。
最佳做法:
監控 IP 位址使用情形。使用非 RFC 1918 IP 位址。
使用 IPv4 和 IPv6 (雙重堆疊) 子網路。
使用連線集區並重複使用連線。
更快的網際網路外部傳輸速率。
加快 Google API 的內部傳輸速度。
監控 IP 位址使用情形
如果您使用 Direct VPC 輸出,請確保子網路有足夠的 IP 位址。您使用的 IP 位址數量取決於工作負載執行的執行個體數量,因此建議您監控 IP 位址用量。請確保 IP 使用量在一段時間內維持在子網路支援的範圍內。
如要預估 IP 位址使用量,請按照下列步驟操作:
在 Google Cloud 控制台中,前往 Cloud Monitoring Metrics Explorer 頁面:
使用指標類型
run.googleapis.com/container/instance_count
查詢專案中的執行個體數量。Cloud Monitoring 可讓您查看這項指標的值隨時間變化。將執行個體計數指標的值乘以 2,即可估算出目前使用的 IP 位址數量。
IP 位址用盡策略
使用 RFC 1918 私人 IP 位址空間搭配直接 VPC 外連時,如果有大量 Cloud Run 工作負載,可能會導致 IP 用盡。您可以採用下列策略,使用其他 IP 位址範圍來管理 IP 位址用盡的問題。
使用非 RFC 1918 IPv4 位址
除了 RFC 1918 IPv4 位址範圍,Cloud Run 也支援 RFC 6598 和 Class 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 的內部部署目的地,請使用下列任一解決方案:
- 使用 Hybrid NAT 執行位址轉譯,並使用較小的 RFC 1918 範圍進行傳出。
- 將內部服務公開為 Private Service Connect 混合式服務。
使用 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),請選擇下列任一選項:
- 使用私人 Google 存取權指定
private-ranges-only
(預設):- 設定標記
--vpc-egress=private-ranges-only
。 - 啟用私人 Google 存取權。
- 設定私人 Google 存取權的 DNS。請確認目標網域 (例如
storage.googleapis.com
) 對應至下列任一內部 IP 位址範圍:199.36.153.8/30
199.36.153.4/30
- 設定標記
- 使用私人 Google 存取權指定
all-traffic
:- 設定標記
--vpc-egress=all-traffic
。 - 啟用私人 Google 存取權。
- 設定標記
使用 Cloud Run 的預設 MTU 設定
在搭配 Cloud Run 使用虛擬私有雲網路時,請勿變更最大傳輸單位 (MTU) 設定。請改用預設的 MTU (1,460 位元組)。