[英]Azure Batch within a VNET that has a Service endpoint policy for Storage
我正在努力讓我的 Azure 批處理節點在配置為使用虛擬網絡的池中啟動。 虛擬網絡已使用具有“Microsoft.Storage”策略定義並指向單個存儲帳戶的服務終結點策略進行配置。 如果沒有在虛擬網絡上定義的服務端點,Azure 批處理池會按預期工作,但是會出現以下錯誤並且節點永遠不會啟動。
我嘗試在兩種池分配模式下創建批處理帳戶。 這似乎沒有什么區別,池成功調整大小,然后節點卡在“啟動”模式。 在“用戶訂閱”模式下,我發現了啟動錯誤,因為我可以在我的帳戶中看到 VM 實例:
VM 在處理擴展“batchNodeExtension”時報告失敗。 錯誤消息:“啟用失敗:處理文件下載失敗:下載文件失敗 [0]:下載文件失敗:意外狀態代碼:實際 = 403 預期 = 200” 有關故障排除的更多信息,請訪問https://aka.ms /VMExtensionCSELinux 疑難解答
據我所知,這是一個 Azure VM 擴展,正在運行以配置 Azure 批處理的 VM。 我的基礎鏡像是 Canonical,ubuntuserver,18.04-lts(batch.node.ubuntu 18.04)。 我可以看到擴展正在嘗試從以下位置下載:
https://a52a7f3c745c443e8c2cac69.blob.core.windows.net/nodeagentpackage-version9-22-0-2/Ubuntu-18.04/batch_init-ubuntu-18.04-1.8.7.tar.gz (note I removed the SAS token from this URL 在這里發布)
還下載了 8 個文件,看起來這是在節點上配置批處理代理。
403 錯誤表示節點無法連接到此存儲帳戶,考慮到服務端點策略,這很有意義。 它不包含此存儲帳戶,並且此存儲帳戶在我的 Azure 訂閱之外。 我認為我可以將它添加到服務端點策略中,但我無法確定它是其中的一部分 Azure 訂閱。 如果我知道這一點,我想我可以像這樣添加它:
端點策略允許您使用 resourceID 格式將特定的 Azure 存儲帳戶添加到允許列表。 您可以限制對訂閱中所有存儲帳戶的訪問,例如 /subscriptions/subscriptionId (來自https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoint-policies-overview )
我嘗試使用 Azure 存儲的服務標簽添加安全組規則,但這沒有幫助。 節點仍然無法連接,鑒於服務端點策略的描述,這是有道理的。
我對此感興趣的原因是以下帖子:[https://github.com/Azure/Batch/issues/66][1]
我正在嘗試通過使用服務端點來最小化我的存儲帳戶的帶寬費用。
我也嘗試過創建自己的虛擬機,但我不確定“batchNodeExtension”腳本是否會為您與 Batch 一起使用的虛擬機自動運行。
我真的很感激任何指示,因為我已經沒有想法可以嘗試了!
批處理需要所有存儲(可以是區域變體)的通用規則,如https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network.network-security-groups-specifying-子網級規則。 目前它主要用於下載我們的代理和維護狀態/獲取運行任務所需的信息。
我在使用 Azure 機器學習時遇到了同樣的問題。 我們正在嘗試通過使用 SP 策略來打擊數據泄露,以防止將數據發送到任何非訂閱存儲帳戶。
由於 Azure ML 計算依賴於 Batch 服務,如果 SP 策略與計算子網相關聯,我們將無法運行任何 ML 計算。
微軟聲明如下:
過濾部署到虛擬網絡中的 Azure 服務上的流量:目前,部署到虛擬網絡中的任何托管 Azure 服務不支持 Azure 服務端點策略。
我從這種限制中了解到,任何使用 Azure Batch 的服務(Azure 中的幾乎所有服務?)都不能使用 SP 策略,這使其無用功能......
最后,我們最終從我們的網絡架構中完全刪除了 SP 策略,並且僅在您希望限制客戶訪問特定存儲帳戶的情況下才考慮使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.