相关疑难解决方法(0)

GKE 中跳过 dnsConfig

面临以下问题:我需要在某些 Pod 上添加搜索域,以便能够与无头服务通信。Kubernetes 文档建议设置一个 dnsConfig 并设置其中的所有内容。这就是我所做的。此外,还有一个限制,即只能设置 6 个搜索域。清单的一部分:

    spec:
  hostname: search
  dnsPolicy: ClusterFirst
  dnsConfig:
    searches:
      - indexer.splunk.svc.cluster.local
  containers:
  - name: search
Run Code Online (Sandbox Code Playgroud)

不幸的是,它没有任何效果,并且目标 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
Run Code Online (Sandbox Code Playgroud)

快速查看此配置后,我发现当前指定了 6 个搜索域,这可能就是未添加新搜索域的原因。您可以手动添加,一切都会正常,但这不是我想要实现的目标。

您有什么想法如何绕过这个限制吗?

PS 将 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 …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform kubernetes google-kubernetes-engine kubernetes-pod

5
推荐指数
1
解决办法
1595
查看次数