FreakinaBox
FreakinaBox

Reputation: 461

Use K8s Ingress with Istio gateway?

in the helm values file there is a setting global.k8sIngressSelector with the description.

Gateway used for legacy k8s Ingress resources. By default it is using 'istio:ingress', to match 0.8 config. It requires that ingress.enabled is set to true. You can also set it to ingressgateway, or any other gateway you define in the 'gateway' section.

My interpretation of this is that the istio ingress should pick up normal ingress configurations instead of having to make a virtual service. Is this correct? I tried it and it is not working for me.

kind: Deployment
apiVersion: apps/v1
metadata:
  name: echo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo
  template:
    metadata:
      labels:
        app: echo
    spec:
      containers:
        - name: echo
          image: mendhak/http-https-echo
          ports:
            - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
  name: echo
spec:
  type: ClusterIP
  selector:
    app: echo
  ports:
    - port: 80
      name: http

this works

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: gateway
spec:
  selector:
    istio: ingressgateway
  servers:
    - port:
        number: 80
        name: http
        protocol: HTTP
      hosts:
        - '*.dev.example.com'
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: echo
spec:
  hosts:
    - echo.dev.example.com
  gateways:
    - gateway
  http:
    - route:
        - destination:
            host: echo

this doesnt

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: echo
spec:
  rules:
    - host: echo.dev.example.com
      http:
        paths:
          - backend:
              serviceName: echo
              servicePort: 80

Upvotes: 2

Views: 2616

Answers (1)

Frank B
Frank B

Reputation: 930

Your Ingress needs to have an annotation: kubernetes.io/ingress.class: istio.

Depending on what version of Istio you are using, it may not be working anyway. There is currently an open issue about Ingress not working in the latest drivers, and it sounds like it may have been broken for a while.

https://github.com/istio/istio/issues/10500

Upvotes: 2

Related Questions