#ssl #kubernetes #mqtt #nginx-ingress
#ssl #kubernetes #mqtt #nginx-вход
Вопрос:
Если у меня есть внутренняя реализация для TLS, правильно ли Ingress NGINX предоставляет ее?
Я предоставляю службу MQTT через входящий NGNIX со следующей конфигурацией:
Карта конфигурации:
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-tcp-microk8s-conf
namespace: ingress
#Add the service we want to expose
data:
1883: "default/mosquitto-broker:1883"
Набор демонов:
---
apiVersion: apps/v1
kind: DaemonSet
...
spec:
selector:
matchLabels:
name: nginx-ingress-microk8s
template:
metadata:
...
spec:
...
ports:
- containerPort: 80
- containerPort: 443
#Add the service we want to expose
- name: prx-tcp-1883
containerPort: 1883
hostPort: 1883
protocol: TCP
args:
- /nginx-ingress-controller
- --configmap=$(POD_NAMESPACE)/nginx-load-balancer-microk8s-conf
- --tcp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-tcp-microk8s-conf
- --udp-services-configmap=$(POD_NAMESPACE)/nginx-ingress-udp-microk8s-conf
$DEFAULT_CERT
$EXTRA_ARGS
Я настроил брокер MQTT на использование TLS в серверной части. Когда я запускаю брокера на своей машине, за пределами кластера kubernetes, Wireshark обнаруживает сообщения как TLS, и он ничего не показывает о MQTT:
Однако, если я запускаю брокера внутри кластера, он показывает, что я использую MQTT, и ничего о TLS. Но сообщения читаются неправильно:
И, наконец, если я запускаю брокер MQTT внутри кластера без TLS, Wireshark правильно определяет пакеты MQTT:
Мой вопрос: зашифровано ли соединение, когда я использую TLS внутри кластера?Это правда, что Wireshark не показывает содержимое пакетов, но он знает, что я использую MQTT. Может быть, это потому, что заголовки не зашифрованы, но полезная нагрузка есть? Кто-нибудь точно знает?
Ответ №1:
Проблема заключалась в том, что я запускал TLS MQTT в порту 8883, как рекомендовано документацией (не в порту 1883 для стандартного MQTT), но Wireshark не распознал этот порт как порт MQTT, поэтому формат, заданный Wireshark, был немного нарушен.
Комментарии:
1. привет, не могли бы вы предоставить свою полную конфигурацию для cm, ing и deploy? Я вижу, что вы сопоставили только порт 1883, но вы говорите, что используете 8883