问题描述
我们使用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
✌️