使用防火牆限製網絡出口您的工作區
默認穀歌雲允許從你的VPC所有出口流量。選擇你可以選擇配置您的工作區來限製出口隻有基本服務,以及您的組織需要的任何其他目的地。允許基本服務,您需要修改穀歌雲網絡(VPC)和防火牆磚創建工作區。對於一些服務,您可以設置私人穀歌訪問在私有IP地址與Google api。
最新的更新這些穀歌雲特性是如何工作的,請參考穀歌雲文檔。穀歌雲api和配置有時變化超出了磚的控製方法,因此總是參考穀歌雲文檔在試圖實現這些特性。
額外的指導之前或期間部署防火牆的工作區,聯係你的磚的代表。
如果你想配置一個企業域名防火牆連接到磚的web應用程序,而不是看到配置域名防火牆規則。
防火牆配置概述
請注意
磚建築的概述包括數據平麵和控製平麵的定義,明白了磚體係結構概述。
如果你想限製出口的數據平麵,你必須兩個一般類型的配置允許所需的連接,否則會堵塞:
私人穀歌訪問GCR和gc:默認情況下,當計算引擎的虛擬機(VM),如磚集群節點缺乏外部(公眾)的IP地址分配給它的網絡接口,它隻可以發送數據包到其他目的地內部IP地址。你可以讓這些虛擬機連接到外部IP地址的設置使用Google api和服務支持私人穀歌訪問(PGA)在虛擬機的網絡接口使用的子網。PGA,磚之間的直接通信數據平麵和這些穀歌服務使用穀歌的內部網絡,而不是公共網絡。這會影響以下從數據平麵發出的連接:
數據平麵上使用穀歌容器注冊(GCR)磚運行時的圖片。
數據平麵上使用穀歌雲存儲(GCS)編寫工作區衛生檢查日誌和使用日誌。
防火牆規則控製飛機的服務:在你塊出口通過修改內置的防火牆,你必須允許幾個基本服務通過添加新的防火牆規則:
web應用程序的入口和REST api在端口443上。
的入口安全集群連接繼電器在端口443上。
默認的進入蜂巢metastore在端口3306上。如果你部署自己的外部metastore,你不需要添加為未使用的默認metastore網絡規則。
這些不同的服務的IP地址範圍。你所在地區的值,見表IP地址和域名。
本文包括的示例使用穀歌雲配置gcloud
命令行接口(CLI)。要使用這些示例,您必須安裝穀歌雲SDK。
控製飛機的服務端點的IP地址
如果你想配置防火牆阻止出口,您必須定義新的VPC出口防火牆規則和線路允許基本服務駐留在磚控製飛機。穀歌雲區域端點IP地址不同的磚工作區。用表IP地址和域名端口和IP地址控製飛機進入工作區穀歌的雲。
步驟1:計劃你的網絡規模
如果你計劃使用大型集群或多個工作區,確保您的工作區將有足夠的IP空間運行GKE磚工作通過計算子網範圍使用網絡規模計算器。
配置GKE磚工作區所使用的子網準確,因為你不能改變他們部署後,您的工作區。如果你的磚子網地址範圍太小,然後工作區耗盡其IP空間,進而導致磚工作的失敗。確定你需要的地址範圍大小,磚的形式提供了一個計算器一個Microsoft Excel電子表格。看到計算子網大小為一個新的工作區。
步驟2:創建一個工作區
登錄到賬戶控製台
-
在高級配置部分表單的創建工作區,必須使用默認設置使私有集群,導致工作區使用私人GKE集群。私人GKE集群,磚計算實例沒有公共IP地址。
寫下所有IP子網設置出現在高級配置部分在工作區中創建。有違約但你可以覆蓋它們。詳情見創建一個工作區使用帳戶控製台。
確保磚VPC和子網在你的穀歌賬戶私人穀歌訪問(PGA)啟用。
步驟3:添加VPC防火牆規則
你必須現在防火牆規則添加到防火牆,磚為你創建新的工作區。
讓你的VPC的名字。磚在你的Google帳戶創建這個VPC工作區創造的一部分。
從帳戶控製台工作空間頁麵,單擊工作區啟動它。
複製後數字URL的一部分
? o =
。例如,如果工作區URLhttps://1676665108650415.5.gcp.m.eheci.com/?o=1676665108650415
工作區ID是1676665108650415。VPC的工作區名稱
databricks-managed——< workspace-ID >
。例如,磚-管理- 1676665108650415
。寫下這個值可以使用CLI命令。
如果你想使用穀歌控製台添加防火牆規則:
單擊VPC的名稱相匹配的網絡工作區在VPC的名字。
點擊防火牆規則選項卡。
添加一個規則阻止出口
0.0.0.0/0
這意味著,這是一個特殊的語法所有外部IP地址。默認情況下,穀歌雲允許從你的VPC所有出口流量。您需要創建一個規則阻斷交通。確保規則的優先級將大量。這個規則的目的是應用在穀歌雲運行所有的其他規則。例如你可以設置該規則優先級1100,然後你的出口規則優先級的範圍1000 - 1099。
重要的
如果不正確使用一個低優先級值規則,穀歌雲否認網絡流量基本磚和GKE服務,這將使您的工作空間中無法使用。
由於這個規則,任何交通將內部IP空間(10.0.0.0/8、172.16.0.0/20 192.168.0.0/16)需要一個額外的出口規則允許集群達到這些IP地址。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。gcloud計算防火牆規則創建deny-egress——行動——destination-ranges否認——規則0.0.0.0/0——出口方向優先1100年——網絡< vpc-name >
添加一個規則允許進入穀歌健康檢查。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。gcloud計算防火牆規則創建from-gcp-healthcheck\——操作允許\——規則tcp: 80, tcp: 443\——source-ranges130年.211.0.0/22,35.191.0.0/16\——方向進入\——優先級1010年\——網絡< vpc-name >
添加一個規則允許出口穀歌健康檢查。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。gcloud計算防火牆規則創建to-gcp-healthcheck\——操作允許\——規則tcp: 80, tcp: 443\——destination-ranges130年.211.0.0/22,35.191.0.0/16\——出口方向\——優先級1000年\——網絡< vpc-name >
添加一個規則允許出口限製api (restricted.googleapis.com),這是需要達到GKE API以固定IP地址範圍。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。gcloud計算防火牆規則創建to-google-apis\——操作允許\——規則\——destination-ranges199年.36.153.4/30\——出口方向\——優先級1000年\——網絡< vpc-name >
添加一個規則允許出口的IP範圍GKE主資源。有一個默認GKE主IP範圍,但是你可以覆蓋在工作區中創建的值。看到創建一個工作區使用帳戶控製台。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。取代X.X.X.X / 28
與你的IP範圍GKE主資源。gcloud計算防火牆規則創建to-gke-master\——操作允許\——規則tcp: 443, tcp: 10250\——destination-ranges X.X.X.X / 28\——出口方向\——優先級1000年\——網絡< vpc-name >
添加一個規則允許intra-subnet通信(出口)磚使用的工作區。有默認值為這些子網中可見在工作區中創建的高級配置部分。你需要允許出口三個子網範圍中標簽的用戶界麵主要的IP範圍GKE節點,次要GKE吊艙的IP範圍,二次GKE服務IP範圍。
您可以使用以下
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。取代X.X.X.X / X, X.X.X.X / X, X.X.X.X / X
與你的三個磚子網工作區創建期間你所提供的。gcloud計算防火牆規則創建to-gke-nodes-subnet\——操作允許\——規則\——destination-ranges X.X.X.X / X, X.X.X.X / X, X.X.X.X / X\——出口方向\——優先級1000年\——網絡< vpc-name >
添加一個規則允許出口磚控製飛機的服務。用表IP地址和域名確定正確的值為每個磚地區為這些服務的支持。
允許連接到主和web應用程序安全集群連接(SCC)繼電器在端口443上。使用下麵的
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。取代X.X.X.X
你的地區的web應用程序的入口地址。取代Y.Y.Y.Y
與你的地區SCC繼電器的IP地址範圍。gcloud計算防火牆規則創建to-databricks-control-plane\——操作允許\——規則tcp: 443\——destination-ranges X.X.X.X / 32, Y.Y.Y.Y / 32\——出口方向\——優先級1000年\——網絡< vpc-name >
如果您使用默認metastore,添加一個規則允許連接到metastore在端口3306上。使用下麵的
gcloud
CLI命令來創建這個規則。取代< vpc-name >
與你的VPC的名字。取代X.X.X.X
與你的區域為默認metastore IP地址範圍。gcloud計算防火牆規則創建to-databricks-managed-hive\——操作允許\——規則tcp: 3306\——destination-ranges X.X.X.X / 32\——出口方向\——優先級1000年\——網絡< vpc-name >
重要的
如果你部署自己的metastore實例創建一個規則,而不是默認的metastore允許連接到它。
添加任何其他網絡出口規則,您的組織需要允許需要連接數據源或其他係統。
重要的
自定義出口
允許
規則,設置優先級數字範圍1000 - 1099。重要的是優先級數量低於價值你用來阻止所有出口,將優先級1100在前麵的步驟。
你的防火牆規則應該類似於下麵的,盡管你必須使用區域控製飛機服務IP地址為該地區的工作區。
步驟4:更新VPC路線
穀歌雲路線定義網絡流量的路徑需要從一個虛擬機(VM)實例的其他目的地。在VPC網絡中,路由由一個目的地CIDR格式的前綴和一個下一跳。
刪除自動創建的默認路由在VPC,這是
0.0.0.0/0
使用默認互聯網網關為下一跳。使用控製台界麵刪除這條路線清楚任何路徑網絡。選擇路線
0.0.0.0/0
並點擊刪除。
創建一個路線在VPC發送流量限製穀歌api子網(
199.36.153.4/30
)。設置下一跳default-internet-gateway
按照要求訪問私人Google api。您可以使用以下
gcloud
CLI命令來創建這個路線。取代< vpc-name >
與你的VPC的名字。取代<項目名稱>
你的項目名稱。創建route-to-google-apis gcloudβ計算路線\——項目=<項目名稱>——描述=“穀歌限製api路線”\——網絡=< vpc-name >\——優先級=1000年\——destination-range=199年.36.153.4/30\——next-hop-gateway=default-internet-gateway
創建一個路線到達磚控製飛機的服務。得到的值你的地區IP地址和域名。
您可以使用以下
gcloud
CLI命令創建web應用程序的路線。取代< vpc-name >
與你的VPC的名字。取代<項目名稱>
你的項目名稱。取代X.X.X.X / 32
區域IP地址範圍的web應用程序。創建route-to-databricks-scc-service gcloudβ計算路線\——項目=<項目名稱>——描述=“磚web應用程序的路線”\——網絡=< vpc-name >\——優先級=1000年\——destination-range=X.X.X.X / 32\——next-hop-gateway=default-internet-gateway
您可以使用以下
gcloud
CLI命令創建的路線安全集群連接繼電器。取代< vpc-name >
與你的VPC的名字。取代<項目名稱>
你的項目名稱。取代X.X.X.X / 32
與區域SCC繼電器的IP地址範圍。創建route-to-databricks-scc-service gcloudβ計算路線\——項目=<項目名稱>——描述=“磚SCC繼電器的路線”\——網絡=< vpc-name >\——優先級=1000年\——destination-range=X.X.X.X / 32\——next-hop-gateway=default-internet-gateway
如果您使用默認metastore,使用以下
gcloud
CLI命令創建默認metastore的路線。取代< vpc-name >
與你的VPC的名字。取代<項目名稱>
你的項目名稱。取代X.X.X.X / 32
metastore區域IP地址範圍。創建route-to-databricks-scc-service gcloudβ計算路線\——項目=<項目名稱>——描述=“默認metastore路線”\——網絡=< vpc-name >\——優先級=1000年\——destination-range=X.X.X.X / 32\——next-hop-gateway=default-internet-gateway
第五步:創建DNS區域Google api可以讓Google GCS和GCR的私人訪問
現在你必須創建一個DNS區域對穀歌api,這需要使穀歌私人訪問的數據平麵的2 GCS和GCR Google api。啟用GPA的詳細信息,請參閱文章穀歌文檔配置私人穀歌訪問)。
定製的VPC DNS域
googleapis.com
使用雲DNS。通常googleapis.com
解決公共IP地址,但您必須使用穀歌私人訪問restricted.googleapis.com
。此域名解析到一個特定的範圍內199.36.153.4/30
,這在穀歌雲網絡訪問。磚的數據平麵GKE集群需要訪問GCS和GCR。PGA,您需要確保訪問受限的api解決否則GKE不成功的開始。
您可以使用以下
gcloud
命令創建DNS區域。< vpc-name >替換為你的VPC的名字。gcloud dns managed-zones創建google api\——描述“穀歌api私人區”\——dns名稱googleapis.com\——可見性的私人\——網絡VPC-NAME gcloud dns記錄集事務開始——區google api gcloud dns記錄集事務添加restricted.googleapis.com。\——名稱* .googleapis.com\——ttl300年\——類型CNAME\——帶google api gcloud dns記錄集事務添加“199.36.153.4”“199.36.153.5”“199.36.153.6”“199.36.153.7”\——名稱restricted.googleapis.com\——ttl300年\——輸入一個\——帶google api gcloud dns記錄集事務執行——google api
穀歌雲控製台中的對象類似於以下幾點:
做出類似區GCR的設置。io域發送流量限製穀歌api子網達到容器注冊表。沒有這些變化,GKE集群不會成功站起來,因為它無法放下所有必要的磚的運行時容器。
您可以使用以下
gcloud
命令來創建這些DNS區域。< vpc-name >替換為你的VPC的名字。gcloud dns managed-zones創建gcr-io\——描述“GCR.io私人區”\——dns名稱gcr.io\——可見性的私人\——網絡< vpc-name > gcloud dns記錄集事務開始——區gcr-io gcloud事務添加gcr.io dns記錄集。\——名稱* .gcr.io\——ttl300年\——類型CNAME\——帶gcr-io gcloud dns記錄集事務添加“199.36.153.4”“199.36.153.5”“199.36.153.6”“199.36.153.7”\——名字gcr.io\——ttl300年\——輸入一個\——帶gcr-io gcloud dns記錄集gcr-io事務執行——區域
穀歌雲控製台中的對象類似於以下幾點:
故障排除
不能開始GKE集群
如果GKE集群沒有開始,有可能是DNS配置錯誤的啟用私人穀歌訪問時在VPC磚使用的工作區。如果節點是無法解決的googleapis
主機名,它可以導致注冊失敗,最終導致的不成功創建GKE集群。
您可以查看日誌,檢查相應的串口日誌GKE節點。你可能會看到錯誤如下:
> > >[203.604558]配置。sh[948]:旋度(6)無法解決主機的> > > storage.googleapis.com '> > >[203.605422]配置。sh[948]: = =下載失敗> > > https://storage.googleapis.com/gke-release/npd-custom-plugins/v1.0.1/npd-custom-plugins-v1.0.1.tar.gz。> > >進行重試。= => > > [203.614049]configure.sh [948]:> > > https://www.googleapis.com/auth/devstorage.read_write
由於集群使用VPC網絡,這個集群的子網私人穀歌訪問啟用。你需要完整的私人穀歌訪問設置遵循指令這個穀歌PGA文檔。
GKE集群停止工作或不能啟動後可以成功啟動前的嚐試
您會發現GKE集群停止工作或不能啟動GKE集群由於配置錯誤的計算引擎項目托管GKE服務帳戶。計算引擎默認服務帳戶相關聯的節點集群問題一直在“禁用”狀態或沒有所需的最低限度的作用。服務帳戶是<項目id > -compute@developer.gserviceaccount.com
。
節點注冊失敗的原因可能是由於殘疾人服務帳戶狀態,這是連接到集群節點的問題。
試著啟用後的服務帳戶穀歌幫助中心的這篇文章並嚐試重新創建集群或節點池是否解決了問題。
你也可以嚐試使用穀歌雲控製台來看看你我和Admin頁麵服務帳戶和相應的集群節點的問題。
默認情況下,計算引擎默認服務帳戶與我項目編輯器創建的角色。你可以改變它所需的最低限度的作用如下:
得到當前的角色分配給默認計算服務帳戶。
gcloud項目get-iam-policy{{項目號}}\——平=“綁定[].members”\- - -格式=“表(bindings.role)”\——過濾器=“bindings.members: -compute@developer.gserviceaccount.com{{項目id}}”
添加所需的最小角色默認計算服務帳戶
gcloud項目add-iam-policy-binding{{項目號}}\——成員“serviceAccount: -compute@developer.gserviceaccount.com{{項目id}}”\——角色角色/日誌記錄。logWriter gcloud項目add-iam-policy-binding{{項目號}}\——成員“serviceAccount: -compute@developer.gserviceaccount.com{{項目id}}”\——角色角色/監控。metricWriter gcloud項目add-iam-policy-binding{{項目號}}\——成員“serviceAccount: -compute@developer.gserviceaccount.com{{項目id}}”\——角色角色/監控。觀眾gcloud項目add-iam-policy-binding{{項目號}}\——成員“serviceAccount: -compute@developer.gserviceaccount.com{{項目id}}”\角色/ stackdriver.resourceMetadata.writer——的作用
刪除項目編輯角色從默認計算服務帳戶。
gcloud項目remove-iam-policy-binding{{項目號}}\——成員“serviceAccount: -compute@developer.gserviceaccount.com{{項目id}}”\——角色角色/編輯器
驗證角色分配給默認計算服務帳戶。
gcloud項目get-iam-policy{{項目號}}\——平=“綁定[].members”\- - -格式=“表(bindings.role)”\——過濾器=“bindings.members: -compute@developer.gserviceaccount.com{{項目id}}”
確保此服務帳戶正確的角色在這個項目。