小编Dav*_*n55的帖子

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
查看次数

从 nginx-ingress 上的客户端证书中提取 CN

我正在使用 kubernetes/ingress-nginx。任务是使用 nginx 入口从客户端证书中提取 CN 字段。我搜索了一段时间,找到了解决方案:

   map  $ssl_client_s_dn  $ssl_client_s_dn_cn {
    default "";
    ~CN=(?<CN>[^/,\"]+) $CN;
  }
Run Code Online (Sandbox Code Playgroud)

但我无法将此代码改编为 nginx 入口。这就是我目前拥有的代码,但它不起作用。

nginx.ingress.kubernetes.io/http-snippets: |
  map  $ssl_client_s_dn  $ssl_client_s_dn_cn {
    default "";
    ~CN=(?<CN>[^/,\"]+) $CN;
  }
nginx.ingress.kubernetes.io/configuration-snippet: |
  proxy_set_header Remote-User $ssl_client_s_dn_cn;
Run Code Online (Sandbox Code Playgroud)

可能有人遇到过它并且知道如何正确调整它,因为我没有想法。
如果您知道更优雅的方法,请在这里分享您的知识。
提前致谢。

nginx kubernetes kubernetes-ingress nginx-ingress

3
推荐指数
1
解决办法
2332
查看次数