【发布时间】:2020-06-15 21:11:59
【问题描述】:
面临以下问题: 我需要在一些 pod 上添加一个搜索域,以便能够与无头服务进行通信。 Kubernetes 文档建议设置一个 dnsConfig 并在其中设置所有内容。这就是我所做的。还有一个限制,只能设置 6 个搜索域。 清单的一部分:
spec:
hostname: search
dnsPolicy: ClusterFirst
dnsConfig:
searches:
- indexer.splunk.svc.cluster.local
containers:
- name: search
不幸的是,它没有效果,目标 pod 上的 resolv.conf 文件不包含此搜索域:
search splunk.svc.cluster.local svc.cluster.local cluster.local us-east4-c.c.'project-id'.internal c.'project-id'.internal google.internal
nameserver 10.39.240.10
options ndots:5
快速浏览一下这个配置,我发现目前指定了6个搜索域,这可能是没有添加新搜索域的原因。您可以手动添加,一切都会正常进行,但这不是我想要实现的目标。
您对如何绕过此限制有任何想法吗?
P.S 将 dnsPolicy 设置为 None 也不是设置预启动挂钩以添加我的搜索区域的选项。
---
# Search-head deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: search
namespace: splunk
labels:
app: splunk
spec:
replicas: 1
selector:
matchLabels:
app: splunk
template:
metadata:
labels:
app: splunk
spec:
hostname: search
dnsPolicy: ClusterFirst
dnsConfig:
searches:
- indexer.splunk.svc.cluster.local
containers:
- name: search
image: splunk/splunk
env:
- name: SPLUNK_START_ARGS
value: "--accept-license"
- name: SPLUNK_PASSWORD
valueFrom:
secretKeyRef:
name: splunk-password
key: password
- name: SPLUNK_ROLE
value: splunk_search_head
- name: SPLUNK_SEARCH_HEAD_URL
value: search
- name: SPLUNK_INDEXER_URL # TODO: make this part dynamic.
value: indexer-0,indexer-1
ports:
- name: web
containerPort: 8000
- name: mgmt
containerPort: 8089
- name: kv
containerPort: 8191
volumeMounts:
- mountPath: /opt/splunk/var
name: sh-volume
volumes:
- name: sh-volume
persistentVolumeClaim:
claimName: sh-volume
【问题讨论】:
-
欢迎来到堆栈!你能发布整个yaml吗?您的缩进似乎是错误的,请编辑您需要的任何信息,但我需要查看结构,还要添加您的 GKE 版本。
-
谢谢@willrof!添加了清单。 GKE 版本是 1.14.10-gke.17 我认为结构还可以,问题是我如何将它粘贴到这里。
-
感谢您的信息,这看起来是一个非常独特的问题,它可能与 glibc 版本有关。我有一个部分答案,我正在发布它,但一旦我完成研究,我会发布更新。
-
只要您在线,我们就在chat 继续。
标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-pod