ECK Elasticsearch 的入口不工作 - 502 网关

Ingress for ECK Elasticsearch not working - 502 gateway

我正在使用 ECK 1.5.0 并且我必须使用 Ingress 来公开 Elasticsearch。但是当我转到 url (http://my-db-url.com) 时,我得到了一个 502 网关。我已确认数据库 运行 正常并且能够收集/显示数据。

我只能找到在网络上使用 Ingress 公开 Kibana 的解决方案,但这些对我不起作用。

这是我的 elasticsearch.yaml(包含 Elasticsearch 对象和 Ingress 对象):

apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: my-db
spec:
  version: 7.12.0
  volumeClaimDeletePolicy: DeleteOnScaledownOnly
  nodeSets:
  - name: default
    count: 3
    config:
      node.store.allow_mmap: false
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
        storageClassName: longhorn

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-db-ingress
  namespace: my-namespace
  annotations:
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
    nginx.ingress.kubernetes.io/upstream-vhost: "$http_host"
spec:
  rules:
    - host: my-db-url.com
      http:
        paths:
          - backend:
              serviceName: my-db-es-http
              servicePort: 9200

原来在这里问了同样的问题:https://discuss.elastic.co/t/received-plaintext-http-traffic-on-an-https-channel-closing-connection/271380

解决方案是使用注释强制 HTTPS,对于 nginx 入口控制器可以在这里找到:https://github.com/elastic/helm-charts/issues/779#issuecomment-781431675