0

我正在尝试在 GKE 上使用 Helm 3 在 Kubernetes 1.16 上运行 elasticsearch。我知道尚不支持 1.16 和 3。我想准备一个 PR 以使其兼容。我正在使用来自https://github.com/elastic/helm-charts的 helm 图表。

如果我使用原始图表 7.6.1,则 pod 创建失败,原因是create Pod elasticsearch-master-0 in StatefulSet elasticsearch-master failed error: pods "elasticsearch-master-0" is forbidden: unable to validate against any pod security policy: [spec.volumes[1]: Invalid value: "projected": projected volumes are not allowed to be used]. 因此我创建了以下补丁:

diff --git a/elasticsearch/values.yaml b/elasticsearch/values.yaml
index 053c020..fd9c37b 100755
--- a/elasticsearch/values.yaml
+++ b/elasticsearch/values.yaml
@@ -107,6 +107,7 @@ podSecurityPolicy:
       - secret
       - configMap
       - persistentVolumeClaim
+      - projected

 persistence:
   enabled: true

使用 master/d9ccb5a 上的这个补丁和标签 7.6.1(都尝试过),failed to resolve host [elasticsearch-master-headless]由于java.net.UnknownHostException: elasticsearch-master-headless.

我不明白为什么名称解析不起作用,因为 1.16 中没有引入任何更改,它使用 Kubernetes 名称 afaik 更改名称解析。如果我尝试elasticsearch-master-headless从以 开头的 pod 中的 shell执行 pingkubectl exec操作,我也无法访问它。

我尝试联系名称服务器/etc/resolv.conftelnet因为它允许指定特定端口:

[elasticsearch@elasticsearch-master-1 ~]$ cat /etc/resolv.conf
search default.svc.cluster.local svc.cluster.local cluster.local us-central1-a.c.myproject.internal c.myproject.internal google.internal
nameserver 10.23.240.10
options ndots:5
[elasticsearch@elasticsearch-master-1 ~]$ telnet 10.23.240.10
Trying 10.23.240.10...
^C
[elasticsearch@elasticsearch-master-1 ~]$ telnet 10.23.240.10 53
Trying 10.23.240.10...
telnet: connect to address 10.23.240.10: Connection refused

我用 myproject 混淆了项目 ID。

该补丁已被提议与https://github.com/elastic/helm-charts/pull/496上的其他更改一起在上游合并。

4

2 回答 2

1

这是由于 podkube-dns崩溃造成的

F0315 20:01:02.464839 1 server.go:61] Failed to create a kubernetes client: open /var/run/secrets/kubernetes.io/serviceaccount/token: permission denied

由于 Kubernetes 1.16 仅在 GKE 的快速通道中可用,并且它是一个系统 pod,我认为这是一个错误。

如果我找到提交错误的能量,我会更新这个答案。

于 2020-03-15T20:13:44.657 回答
0

可能是防火墙(firewalld)阻止了 53/udp、tcp 或您正在执行测试的集群中的 CoreDNS pod 问题。

于 2020-03-15T13:51:47.607 回答