Istio не отвечает на порт 80

#http #kubernetes #https #istio #hsts

#http #kubernetes #https #istio #hsts

Вопрос:

Недавно мы настроили Istio в нашем кластере, и во время нашего тестирования все работало нормально. Теперь мы подключились к Istio, но теперь наши службы не подключаются к порту 80; HTTPS работает, но нам нужно перенаправить HTTP на HTTPS.

Вот наша конфигурация установки Istio:

 apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: default
  components:
    ingressGateways:
      - enabled: true
        k8s:
          env:
            - name: ISTIO_META_ROUTER_MODE
              value: sni-dnat
          hpaSpec:
            maxReplicas: 5
            metrics:
              - resource:
                  name: cpu
                  targetAverageUtilization: 80
                type: Resource
            minReplicas: 1
            scaleTargetRef:
              apiVersion: apps/v1
              kind: Deployment
              name: istio-ingressgateway
          resources:
            limits:
              cpu: 2000m
              memory: 1024Mi
            requests:
              cpu: 100m
              memory: 128Mi
          service:
            type: LoadBalancer
            externalTrafficPolicy: Local
            ports:
              - name: status-port
                port: 15021
                targetPort: 15021
              - name: http2
                port: 80
                targetPort: 8080
              - name: https
                port: 443
                targetPort: 8443
              - name: tls
                port: 15443
                targetPort: 15443
          strategy:
            rollingUpdate:
              maxSurge: 100%
              maxUnavailable: 25%
        name: istio-ingressgateway
 

Комментарии:

1. Какая у вас версия istio? Не могли бы вы добавить kubectl describe свой входной шлюз? Не могли бы вы добавить yamls вашего шлюза istio с перенаправлением http-https?

Ответ №1:

Как насчет проверки Service , созданной вашим IstioOperator CR in istio-ingressgateway ? Вы создали службу Ingress Gateway с LoadBalancer типом. Затем вам следует настроить правила маршрутизации LB для портов http и https, которые вы указали в yaml.

Например, если ваша служба настроена со всеми портами следующим образом, то вам лучше проверить, прослушивается ли http-порт или открыт на вашем уровне LB. В моем примере LoadBalancer тип интегрирован с AWS, и ELB также создается со всеми указанными мной портами. Логически это то же самое с другими платформами, просто отличается от конфигурации LB, которая автоматизирована или требуется для ее настройки вручную.

 NAME                          TYPE           CLUSTER-IP       EXTERNAL-IP                          PORT(S)
loadbalancer-ingressgateway   LoadBalancer   172.30.68.12     xxxxxx.ap-northeast-1.elb.amazonaws.com   15021:30053/TCP,80:31829/TCP,443:32661/TCP,15443:30937/TCP
 

Комментарии:

1. кажется, что-то не так со шлюзом. Новая установка работает с http, но в тот момент, когда я добавляю https, все идет наперекосяк. Не удается даже выполнить пинг локальных служб кластера