使用 Nginx Ingress Controller 進行 MQTT L4 負載均衡 在 Kubernetes 中,當你希望為 MQTT (Message Queuing Telemetry Transport) 提供 L4 (Layer 4) 負載均衡 ,可以使用 Nginx Ingress Controller 來管理 TCP 流量 。由於 MQTT 運行在 TCP 層 ,並不適用於 HTTP/2,因此需要特別配置。 為什麼選擇 Nginx Ingress Controller? 支援 TCP 負載均衡 :可直接處理 MQTT 連線。 與 Kubernetes 無縫整合 :利用 ConfigMap 設定 TCP 服務。 可擴展與高可用性 :透過 Kubernetes 自動擴展。 支援 TLS 加密 :可進行安全通訊。 步驟 1:安裝並配置 Nginx Ingress Controller 首先,請確保你的 Kubernetes 叢集 已安裝 Nginx Ingress Controller ,這可以透過 Helm Chart 來快速安裝: helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install nginx-ingress ingress-nginx/ingress-nginx \ --set controller.publishService.enabled=true \ --set tcp.1883="default/mqtt-service:1883" 步驟 2:使用 ConfigMap 配置 TCP 負載均衡 由於 MQTT 使用 TCP ,我們需要定義 ConfigMap 來讓 Nginx Ingress Controller 處理 TCP 連線 。 apiVersion: v1 kind: ConfigMap metadata: name: tcp-services namespace: ingress-nginx data: "1883...