Networking
如何在私有 AKS 群集中公開服務?
我在 AKS 上創建了一個專用集群並向其部署了一些工作負載,但我不確定如何連接到這些服務。它們都是 NodePort 服務,包括 TCP 和 UDP。
最初,我認為 AKS 提供的端點可用於與整個集群進行互動,但事實並非如此——這隻公開了 Kubernetes API(可能是他們將其稱為 API 端點的原因)
我也嘗試過使用 VMSS 公共 IP,但也沒有用。使用實例 IP 是可行的,但 IP 會隨著時間而改變,對吧?
最終我決定使用入口控制器並代理流量,但因為我使用的是混合協議,所以我需要兩個。更不用說這似乎太複雜而無法合理解決這個問題。
如何在專用 AKS 群集上公開服務?我認為這應該是一個很常見的問題,但我還沒有找到明確的解決方案
如果有人發現自己處於這種情況,我們最終會使用 ExternalDNS 和私有區域,因為無論如何我們都在使用 NodePorts。
這為我們提供了一個穩定的端點,如果其中一個節點的 IP 發生變化,它將自動更新。
需要注意的是,文件暗示不需要對訂閱進行角色分配(預設情況下,create-for-rbac
Contributor
對服務主體的訂閱授予–skip-assignment避免)但這對我不起作用, ExternalDNS 在嘗試讀取私有區域時被拒絕。我嘗試了一些不同的組合,但最終放棄
Private DNS Zone Contributor
了訂閱並跳過了對區域和資源組的任何分配。還想指出一個問題,Azure 有兩個提供商,
azure
公共 DNS 和azure-private-dns
私有 DNS,它們在配置上略有不同。