Istio-proxy не перехватывает исходящий трафик с помощью config global.proxy.includeIPRanges - PullRequest
0 голосов
/ 19 сентября 2018

Наличие кластера AWS EKS в VPC с CIDR 172.20.0.0/16 и установлен istio 1.0.2 с рулем:

helm upgrade -i istio install/kubernetes/helm/istio \
--namespace istio-system \
--set tracing.enabled=true \
--set grafana.enabled=true \
--set telemetry-gateway.grafanaEnabled=true \
--set telemetry-gateway.prometheusEnabled=true \
--set global.proxy.includeIPRanges="172.20.0.0/16" \
--set servicegraph.enabled=true \
--set galley.enabled=false

Затем разверните несколько модулей для тестирования:

apiVersion: v1
kind: Service
metadata:
  name: service-one
  labels:
    app: service-one
spec:
  ports:
  - port: 80
    targetPort: 8080
    name: http
  selector:
    app: service-one
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: service-one
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: service-one
    spec:
      containers:
      - name: app
        image: gcr.io/google_containers/echoserver:1.4
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: service-two
  labels:
    app: service-two
spec:
  ports:
  - port: 80
    targetPort: 8080
    name: http-status
  selector:
    app: service-two
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: service-two
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: service-two
    spec:
      containers:
      - name: app
        image: gcr.io/google_containers/echoserver:1.4
        ports:
        - containerPort: 8080

иразверните его с помощью:

kubectl apply -f <(istioctl kube-inject -f app.yaml) 

Затем внутри модуля service-one, я запрашиваю service-two, и нет журналов об исходящем запросе внутри контейнера istio-proxy service-one, но если я перенастроить istio безнастройка global.proxy.includeIPRanges работает как положено (но мне нужен этот конфиг для разрешения нескольких внешних подключений).Как я могу отладить, что происходит?

1 Ответ

0 голосов
/ 20 сентября 2018

Настройка global.proxy.includeIPRanges устарела и не должна работать.По этому поводу на Git было обсуждение .Новая ближайшая вещь - includeOutboundIpRanges в Config-Map коляски инжектора модуля или traffic.sidecar.istio.io/includeOutboundIPRanges примечание модуля.Аннотация выглядит проще.Пока что это не ясно из официальной документации.

Вы можете добавить аннотацию к вашему развертыванию:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
     traffic.sidecar.istio.io/includeOutboundIPRanges: "172.20.0.0/16"       
  name: service-one
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: service-one
    spec:
      containers:
      - name: app
        image: gcr.io/google_containers/echoserver:1.4
        ports:
        - containerPort: 8080

И то же самое для второго развертывания.

...