В AKS у меня есть служба типа LoadBalancer с двумя определенными портами, один для общего доступа (и двусторонней аутентификации), а другой для монопольного доступа из кластера Service Fabric также в Azure.Чтобы добиться монопольного доступа, я изменил правило входящих сообщений на виртуальных машинах, чтобы разрешить доступ только кластеру SF.Проблема в том, что я часто вижу, что правило сбрасывается до значения по умолчанию, возможно, из-за развертывания, которое изменяет службу AKS из DevOps Azure (хотя объект 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-адреса для одной и той же службы.Кроме того, как упоминалось в ссылке выше, изменения во входящих правилах должны быть постоянными.