我有类似的问题。以下是我如何让它发挥作用的完整细节。
Setup:
- 通过 VPC 访问 AWS ES 实例。
- Using 这个yaml文件 https://github.com/fluent/fluentd-kubernetes-daemonset/blob/master/fluentd-daemonset-elasticsearch.yaml作为模板。
- k8s客户端版本v1.9.2
- k8s服务器版本v1.8.7
主机问题:
我遇到的主要问题是正确定义环境变量。为了FLUENT_ELASTICSEARCH_HOST
,我包括了https://
主机 URL 上的前缀。一旦我删除它,我的连接问题就消失了。
验证:
没有为 AWS ES 配置用户名或密码。每这次讨论 https://github.com/fluent/fluentd-kubernetes-daemonset/issues/33,我设置了FLUENT_ELASTICSEARCH_USER
and FLUENT_ELASTICSEARCH_PASSWORD
值为空。
配置示例:
这是我的 daemonset yaml 文件中的完整环境变量集:
- name: FLUENT_ELASTICSEARCH_HOST
value: "vpc-MY-DOMAIN.REGION.es.amazonaws.com"
- name: FLUENT_ELASTICSEARCH_PORT
value: "443"
- name: FLUENT_ELASTICSEARCH_SCHEME
value: "https"
- name: FLUENT_ELASTICSEARCH_USER
value: null
- name: FLUENT_ELASTICSEARCH_PASSWORD
value: null
奖励:连接到 Kibana
我没有设置 AWS Cognito,而是在 kubernetes 集群中创建了一个 nginx pod,将其用作访问 Kibana 的代理。我用kubectl port-foward
命令从我的本地计算机访问 nginx 服务器。
这是我的 nginx.conf:
server {
listen 80;
listen [::]:80;
server_name MY-DOMAIN;
location /_plugin/kibana {
proxy_pass https://vpc-MY-DOMAIN.REGION.es.amazonaws.com/_plugin/kibana;
}
location / {
proxy_pass https://vpc-MY-DOMAIN.REGION.es.amazonaws.com;
}
}
部署 nginx pod 后,我运行以下命令:
kubectl port-forward POD_NAME 8888:80
现在可以通过以下位置访问 Kibana:http://localhost:8888/_plugin/kibana http://localhost:8888/_plugin/kibana
我仍然遇到 port-forward 命令的超时问题和 nginx 缓存 ES 服务 IP 的问题(因为这可能会改变),但一旦解决这些问题,我将更新我的响应。