在 OpenDistro Helm README.md 中,使用自定义证书的示例安全 Kibana 配置定义:
elasticsearch.hosts: https://elasticsearch.example.com:443
这意味着 kubernetes 集群外部的 DNS 主机名。但是,使用默认值而不使用自定义证书时生成的名称会导致:
# If no custom configuration provided, default to internal DNS
- name: ELASTICSEARCH_HOSTS
value: https://opendistro-es-client-service:9200
来自 kibana-deployment.yaml:value: https://{{ template "opendistro-es.fullname" . }}-client-service:9200
典型的 Kibana config.yml 不应该也使用内部 DNS,因此仍然是 opendistro-es-client-service:9200 或 opendistro-es-client-service.default.svc.cluster.local:9200,假设为例如,默认命名空间?为什么不使用内部 DNS?
更新:对于 elasticsearch.config(复制到 elasticsearch.yml),opendistro_security.nodes_dn 有一个类似的问题:
# See: https://github.com/opendistro-for-elasticsearch/security/blob/master/securityconfig/elasticsearch.yml.example#L17
opendistro_security.nodes_dn:
- 'CN=nodes.example.com'
它没有在我能找到的任何地方拼出,但我假设elasticsearch.ssl.transport.existingCertSecret
这是来自.定义的证书的主题的 CN 同样,如果有的话,这些不应该是内部 kubernetes dns 名称吗?
opendistro_security.ssl.transport.enforce_hostname_verification
还是假的没关系”
- 默认是
true
- 默认值
elasticsearch.yml
(根据 helm README.md)为 false。 - 实际示例(在 README.md 中进一步向下)没有设置它,所以大概是
true
. - 但实际的 values.yaml 有一个注释掉的值设置为
false
. (我认为您应该在定义配置时取消注释,添加自己的证书时必须这样做)。