[我正在尝试在GKE上的Helm 3上在Kubernetes 1.16上运行elasticsearch。我知道目前尚不支持1.16和3。我想准备一个PR,使其兼容。我正在使用https://github.com/elastic/helm-charts中的头盔图表。
如果使用原始图表7.6.1,则由于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 ping kubectl exec
,则也无法访问它。
我试图用/etc/resolv.conf
与telnet
中的名称服务器联系,因为它允许指定特定的端口:
[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处的其他更改一起合并到上游。
[可能是防火墙(防火墙)阻止了53 / udp,tcp或正在执行测试的群集出现网络问题。