流畅的AWS Elasticsearch Service安装说明

问题描述

我们使用AWS Elasticsearch Service。我们想将fluentd安装到我们的Kubernetes集群中。 Fluentd将日志发送到AWS Elasticsearch Service。它有关于如何操作的说明吗?在https://docs.fluentd.org/v/0.12/articles/kubernetes-fluentd链接上,显示了将日志发送到Elasticsearch Pod的步骤。这意味着elasticsearch已安装在Kubernetes集群内部。

上面的链接显示了对elasticsearch pod的fluentd-daemonset-elasticsearch.yaml(请参见下文)进行更改。我需要对AWS Elasticsearch服务进行哪些配置更改?

apiVersion: extensions/v1beta1
kind: DaemonSet
Metadata:
  name: fluentd
  namespace: kube-system
  ...
spec:
    ...
    spec:
      containers:
      - name: fluentd
        image: quay.io/fluent/fluentd-kubernetes-daemonset
        env:
          - name:  FLUENT_ELASTICSEARCH_HOST
            value: "elasticsearch-logging"
          - name:  FLUENT_ELASTICSEARCH_PORT
            value: "9200"
            ......

解决方法

假设您具有必需的连接性。例如,同一VPC上的Kubernetes和Elasticsearch,或者如果您在不同的VPC中配置了VPC peering

此外,您还有防火墙规则(Security Groups)允许端口9200从Kubernetes到Elasticsearch集群。

应该简单明了(只需将配置指向AWS Elasticsearch集群终端节点即可)

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-system
  ...
spec:
    ...
    spec:
      containers:
      - name: fluentd
        image: quay.io/fluent/fluentd-kubernetes-daemonset
        env:
          - name:  FLUENT_ELASTICSEARCH_HOST
            value: "vpc-domain-name-identifier.region.es.amazonaws.com" ?
          - name:  FLUENT_ELASTICSEARCH_PORT
            value: "9200"
            ......

这是如果您正在使用VPC。如果以这种方式配置集群,则也可以使用公共Elasticsearch端点。 (但是,由于您要遍历公共云,因此它的安全性较低)。像这样:

https://search-domain-name-identifier.region.es.amazonaws.com

✌️