AKS 入站規則會定期重置

AKS 入站規則會定期重置

在 AKS 上,我有一個 LoadBalancer 類型的服務,定義了 2 個端口,一個用於常規訪問(和雙向身份驗證),另一個用於從 Azure 上的 Service Fabric 集群進行獨佔訪問。為了實現獨佔訪問,我更改了虛擬機器上的入站規則,僅允許 SF 叢集存取。問題是我經常看到規則重設為預設值,可能是因為部署修改了 Azure DevOps 中的 AKS 服務(儘管 LoadBalancer 物件從未更改)

LoadBalancer 配置如下:

apiVersion: v1
kind: Service
metadata:
  name: myservice-loadbalancer
spec:
  ports:
  - name: public-port
    port: 1234
    targetPort: public-port
  - name: service-fabric-port
    port: 4321
    targetPort: service-fabric-port
  selector:
    app: myservice
  type: LoadBalancer

一種可能的解決方法是將允許的 IP 新增至 LoadBalancer 對象,如下所示:https://github.com/Azure/AKS/issues/570#issuecomment-413299212,但就我而言,這也會限制“公共端口”。

除了建立兩個 LoadBalancer 物件(每個連接埠一個)之外,我無法想到其他方法。但這不是一個乾淨的解決方法,因為:服務僅通過兩個不同的連接埠是相同的,這樣我就可以為相同服務擁有兩個 IP。此外,正如上面連結中提到的,對入站規則的更改應該是持久的。

還有其他解決方法嗎?預先非常感謝您的任何見解。

答案1

我在 StackOverflow 上問了同樣的問題並在那裡回答了:https://stackoverflow.com/a/61696167/6860266

正如另一個答案所提到的,解決方案是在網路安全群組上新增規則,其優先順序高於現有規則。

例如,上面的 LoadBalancer 服務將為 TCP 連接埠 4321 建立一條規則,允許任何網路來源存取提供給該服務的公共 IP 上的該連接埠。假設該規則的優先順序是 500。稍後將被重置

我必須再新增兩條具有更高優先權的規則,例如 400 和 401。服務標籤互聯網。

規則將按照 500、401 和 400 的順序進行評估,因此最終只有 Service Fabric 能夠存取該連接埠。規則 400 和 401 不是由 Azure 建立的,因此不會變更。

相關內容