在 Azure Kubernetes 上创建 OpenSearch Ingress 服务

Creating an OpenSearch Ingress service on Azure Kubernetes

提问人:wholt 提问时间:11/15/2023 更新时间:11/15/2023 访问量:46

问:

我正在尝试为 OpenSearch kubernetes 服务创建外部 IP 地址,但我似乎无法让它工作。

我尝试按照这个Microsoft教程 https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli 尝试为 OpenSearch 创建一个入口服务。我正在使用的入口服务 yaml 如下。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: opensearch-ingress
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: my-dashboard-opensearch-dashboards
            port:
              number: 5601
      - path: /opensearch(.*)
        pathType: Prefix
        backend:
          service:
            name: opensearch-cluster-master
            port:
              number: 9200
---

服务正在运行,但是当我转到外部 IP 地址时,没有任何内容加载。

Kubernetes 服务

这是 Ingress 服务的问题,还是我需要执行其他步骤?任何帮助将不胜感激。谢谢!

Azure Kubernetes Azure-AKS OpenSearch

评论


答:

0赞 Arko 11/15/2023 #1

若要在 AKS 群集上创建 OpenSearch 入口服务,可以执行以下步骤:

  1. 请确保已设置并运行 AKS 群集。

  2. 在 AKS 群集中安装入口控制器。要安装 NGINX 入口控制器,您可以按照官方 NGINX 入口控制器文档中提供的说明进行操作: https://kubernetes.github.io/ingress-nginx/ 我在这里使用 helm

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx 

但是,如果您想通过自定义域向外界公开您的 OpenSearch 服务,您可以使用如下方式,只需将主机名替换为您的自定义域,但在这种情况下,您需要为主机名配置 DNS 记录,以指向入口控制器负载均衡器的外部 IP 地址。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: opensearch-ingress
spec:
  rules:
    - host: opensearch.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: opensearch-service
                port:
                  number: 9200

我已经使用 helm 部署了 opensearch

helm install my-release oci://registry-1.docker.io/bitnamicharts/opensearch

enter image description here并将其命名为 Pod 已启动,端口已转发,仪表板可通过 127.0.0.1:9200 访问my-release

kubectl get pods
kubectl port-forward --namespace default svc/my-release-opensearch 9200:9200

enter image description here enter image description here

enter image description here

您可以参考以下文档以进一步了解情况

Opensearch 的 Helm

使用 Helm Chart 在 Kubernetes 上设置 OpenSearch 多节点集群

医生小姐

Opensearch 用户指南

评论

0赞 wholt 11/16/2023
是否需要自定义域才能公开外部 IP 地址?我试图按照您链接的 Microsoft 文档进行操作,但我似乎无法让它工作。我可以进行端口转发并在本地运行 OpenSearch,但我需要有一个外部 IP 地址可供我正在构建的其他服务使用。您能否引导我完成让我的 OpenSearch Kubernetes 服务像 Microsoft 示例一样工作的确切步骤?非常感谢!
0赞 Arko 11/23/2023
否,无需使用自定义域即可公开外部 IP 地址。您可以使用入口控制器负载均衡器的外部 IP 地址从集群外部访问您的 OpenSearch 服务。