Из вашего вопроса я понял, что вы хотите контролировать свой входной трафик разрешить некоторые порты для ваших служб, которые функционируют в вашей сетке / кластере извне, но ваша конфигурация предназначена для выходного трафика .
Чтобы контролировать и разрешать порты для ваших служб извне, выполните следующие действия.
1. Убедитесь, что containerPort
включено в конфигурацию развертывания / модуля.Для получения дополнительной информации
2.Вы должны иметь службу, указывающую на ваши бэкэнды / модули.Для получения дополнительной информации о Kubernetes Services .3. Затем в вашем кластере с поддержкой Istio вы должны создать Gateway
, аналогичную приведенной ниже конфигурации:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: your-service-gateway
namespace: foo-namespace # Use same namespace with backend service
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: HTTP
protocol: HTTP
hosts:
- "*"
4. Затем настроить маршрут к вашему сервису для трафика, входящего через этот gateway
, создав VirtualService
:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: your-service
namespace: foo-namespace # Use same namespace with backend service
spec:
hosts:
- "*"
gateways:
- your-service-gateway # define gateway name
http:
- match:
- uri:
prefix: "/"
route:
- destination:
port:
number: 3000 # Backend service port
host: your-service # Backend service name
Надеюсь, это поможет.