【问题标题】:Elasticsearch Cluster through terraform/helm - is there a way to retrieve or set the Cluster IP?通过 terraform/helm 的 Elasticsearch 集群 - 有没有办法检索或设置集群 IP?
【发布时间】:2021-08-01 22:42:47
【问题描述】:

我们正在使用 Azure,我正在通过以下 sn-p 在托管 AKS 集群上使用 terraform 创建 Elasticsearch 实例:

resource "helm_release" "elasticsearch" {
  name       = "elasticsearch"
  repository = "https://helm.elastic.co"
  chart      = "elasticsearch"
  version    = "7.12.1"
  timeout    = 900

  set {
    name  = "volumeClaimTemplate.storageClassName"
    value = "elasticsearch-ssd"
  }

  set {
    name  = "volumeClaimTemplate.resources.requests.storage"
    value = "5Gi"
  }

  set {
    name  = "imageTag"
    value = "7.12.1"
  }

  ...
}

到目前为止没有问题。 Elasticsearch 启动并准备好使用。一切都在虚拟网络中。因此,Elasticsearch 的节点获得了集群 IP。

现在,要在我的 Kubernetes 集群上部署一些实际使用 Elasticsearch 的东西,我需要将 Elasticsearch 的集群 IP 传递给它。

有人知道自动检索集群 IP 的方法吗?这样我就可以将它传递给我的配置中的以下 terraform 模块?我想我扫描了 helm release 的所有输出,但我找不到集群 IP...

在下面的示例中,它将是“10.0.169.174”:

ppaulis@ppaulis-sb3:~/PhpstormProjects/baywa/infra/terraform-final/5_tms-api$ kubectl get services -o wide
NAME                            TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)             AGE   SELECTOR
elasticsearch-master            ClusterIP      10.0.169.174   <none>         9200/TCP,9300/TCP   25h   app=elasticsearch-master,chart=elasticsearch,release=tms-dv-elasticsearch
elasticsearch-master-headless   ClusterIP      None           <none>         9200/TCP,9300/TCP   25h   app=elasticsearch-master
kubernetes                      ClusterIP      10.0.0.1       <none>         443/TCP             28h   <none>

感谢任何帮助! 谢谢, 帕斯卡

【问题讨论】:

    标签: elasticsearch kubernetes terraform kubernetes-helm


    【解决方案1】:

    首先,依赖服务 IP 地址而不是 DNS 名称是一种不好的做法。如果您尝试在 Kubernetes 之外访问 ES,那么您可能希望使用 external-dns 自动为其创建 DNS 记录。我认为这是最好的方法。

    但是,没有什么能阻止您根据需要调整 ES Helm 图表。直接在此处修改 YAML:https://github.com/elastic/helm-charts/blob/master/elasticsearch/templates/service.yaml

    【讨论】:

    • 我是 Kubernetes 的新手,感谢您的评论,我发现 Kubernetes 有一个内部 DNS 系统。因此,可以通过“.default.svc.cluster.local”获得服务。因此,在我的情况下,服务不会向公众公开,这完全解决了我的问题。谢谢!
    猜你喜欢
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多