Выставить кибану (оператор eck) через шлюз istio - проблема https (ошибка 503)

Я хочу открыть кибану с помощью шлюза istio, для этого я использовал эти файлы конфигурации

apiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
  name: monitoring
  namespace: {{ .Values.kibana.namespace }}  
spec:
  version: 7.4.2
  http:
    tls:
      selfSignedCertificate:
        disabled: true
    service:
      spec:
        ports:
          - name: http
            port: 9200
            targetPort: 9200  
  nodeSets:
  - name: default
    count: 1
    config:
      node.master: true
      node.data: true
      node.ingest: true
      node.store.allow_mmap: false
    podTemplate:
      spec:
        containers:
        - name: elasticsearch
          env:
          - name: ES_JAVA_OPTS
            value: -Xms1g -Xmx1g
          resources:
            requests:
              memory: 1Gi
              cpu: 0.5
            limits:
              memory: 2Gi
              cpu: 2    
      metadata:
        annotations:
          traffic.sidecar.istio.io/excludeOutboundPorts: "9300"
          traffic.sidecar.istio.io/excludeInboundPorts: "9300"

apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
  name: monitoring
  namespace: {{ .Values.kibana.namespace }}  
spec:
  version: 7.4.2
  count: 1
  elasticsearchRef:
    name: monitoring
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  podTemplate:
    spec:
      containers:
      - name: kibana
        env:
          - name: SERVER_BASEPATH
            value: ""      
        resources:
          requests:
            memory: 1Gi
            cpu: 0.5
          limits:
            memory: 2Gi
            cpu: 2 
    metadata:
      annotations:
        sidecar.istio.io/rewriteAppHTTPProbers: "true"

kind: Gateway
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: kibana-gateway
  namespace: elastic-system
spec:
  servers:
    - hosts:
        - kibana.<domain>
      port:
        name: http2
        number: 80
        protocol: HTTP2
    - hosts:
        - kibana.<domain>
      port:
        name: https
        number: 443
        protocol: HTTPS
      tls:
        credentialName: kibana-tls-secret
        mode: SIMPLE
  selector:
    istio: ingressgateway

kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:
  name: kibana-rule
  namespace: elastic-system
spec:
  hosts:
    - kibana.<domain>
  gateways:
    - kibana-gateway
  http:
    - match:
        - uri:
            prefix: /
      route:
        - destination:
            host: monitoring-kb-http.elastic-system.svc.cluster.local
            port:
              number: 5601

Все другие приложения, которые я выставляю, хорошо работают с той же конфигурацией, но с kibana у меня есть http 503 с этим сообщением «ошибка восходящего соединения или отключение / сброс перед заголовками. Причина сброса: завершение соединения»

Если я удалю конфигурацию https на шлюзе и оставлю только http, она будет работать. Сертификаты генерируются из диспетчера сертификатов, и они хорошо работают для других приложений (на данный момент я использую самоподписанные сертификаты для целей тестирования)

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  selfSigned: {}  

{{ $root := . }}
{{- range list "dashboard" "grafana" "prometheus" "tracing" "kiali" "kibana"}}

{{- if index $root.Values .  }}
{{- if index $root.Values . "tls" }}
---
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: {{ . }}-certificate
  namespace: istio-system
spec:
  secretName: {{ . }}-tls-secret
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  commonName: {{ ( index $root.Values . "host" ) | quote }} 
  dnsNames:
  - {{ ( index $root.Values . "host" ) | quote }} 
  acme:
    config:
    - dns01:
         provider: poc-dns
      domains:
      - {{ ( index $root.Values . "host" ) | quote }} 
{{- end }}
{{- end }} 

{{- end }}  

Что вы ожидали увидеть?

Кибана раскрыта через https

Что вы видели вместо этого? При каких обстоятельствах?

503 ошибка с этим сообщением «ошибка восходящего подключения или отключение / сброс перед заголовками. Причина сброса: завершение подключения»

Окружающая среда

Версия ECK:

https://download.elastic.co/downloads/eck/1.0.0-beta1/all-in-one.yaml

Версия Istio: = 1.4.0

Информация о Kubernetes:

Облако: EKS Kubernetes Версия клиента: version.Info {Major: «1», Minor: «14», GitVersion: «v1.14.8», GitCommit: «211047e9a1922595eaa3a1127ed365e9299a6c23», GitTreeState: «clean», BuildDate: «2019-10 15T12: 11: 03Z ", GoVersion:" go1.12.10 ", компилятор:" gc ", платформа:" windows / amd64 "} Версия сервера: version.Info {Major:" 1 ", Minor:" 14+ ", GitVersion : "v1.14.9-eks-c0eccc", GitCommit: "c0eccca51d7500bb03b2f163dd8d534ffeb2f7a2", GitTreeState: "clean", BuildDate: "2019-12-22T23: 14: 11Z", "GoVersion:" go1.12 ".12 Compiler: "go1.12 ".12 , Платформа: "linux / amd64"}


person soi    schedule 08.01.2020    source источник


Ответы (1)


Я решил проблему, мне пришлось переименовать http-порт

apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
  name: monitoring
  namespace: {{ .Values.kibana.namespace }}  
spec:
  version: 7.4.2
  count: 1
  elasticsearchRef:
    name: monitoring
  http:
    tls:
      selfSignedCertificate:
        disabled: true
    service:
      spec:
        ports:
          - name: http
            port: 5601
            targetPort: 5601          
  podTemplate:
    spec:
      containers:
      - name: kibana
        env:
          - name: SERVER_BASEPATH
            value: ""      
        resources:
          requests:
            memory: 1Gi
            cpu: 0.5
          limits:
            memory: 2Gi
            cpu: 2 
    metadata:
      annotations:
        sidecar.istio.io/rewriteAppHTTPProbers: "true"
person soi    schedule 08.01.2020
comment
Если кто-то еще использует helm из chart stable / kibana, измените свой values.yaml на эти service.portName=http - person hishammuddin-sani; 24.01.2020