gpt4 book ai didi

Kubernetes - 如何编辑 CoreDNS 核心文件配置映射?

转载 作者:行者123 更新时间:2023-12-02 00:52:19 25 4
gpt4 key购买 nike

我有一个非常标准的 Kubernetes 安装,在 Ubuntu 上作为单节点集群运行。我正在尝试配置 CoreDNS 以解析我的 Kubernetes 集群中的所有内部服务和一些外部域名。到目前为止,我只是在试验。我首先创建了一个busybox pod,如下所示:https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/

在我对核心文件进行更改之前,一切都按照指南中的描述工作。我看到几个问题:

  • 我使用 kubectl -n kube-system edit configmap coredns 编辑了默认的核心文件,并将 .:53 替换为 cluster.local:53 。等待之后,事情看起来很有希望。 google.com 解析开始失败,而 kubernetes.default.svc.cluster.local 继续成功。然而,kubernetes.default 解析也开始失败。这是为什么?在busybody pod 的svc.cluster.local 中仍然有一个 搜索 条目用于/etc/resolv.conf。所有改变的是核心文件。
  • 我试图向核心文件添加一个额外的节/块(同样,通过编辑配置映射)。我添加了一个简单的块:
    .:53{
    log
    }

    似乎核心文件无法编译或什么的。 pods 看起来很健康,不会向日志报告任何错误,但请求都挂起并失败。

  • 我曾尝试添加日志插件,但这不起作用,因为该插件仅适用于与插件匹配的域,并且域名不匹配或核心文件已损坏。

    为了透明,这是我的新核心文件:
    cluster.local:53 {
    errors
    log
    health
    kubernetes cluster.local in-addr.arpa ip6.arpa {
    pods insecure
    upstream
    fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    forward . /etc/resolv.conf
    cache 30
    loop
    reload
    loadbalance
    }

    最佳答案

    看起来您的 Corefile 在通过“kubectl edit ...”命令进行编辑期间以某种方式损坏了。可能这是您的默认文本编辑器的错,但它绝对有效。

    我建议您使用以下命令替换当前的配置映射:

    kubectl get -n kube-system cm/coredns --export -o yaml | kubectl replace -n kube-system -f coredns_cm.yaml

    #coredns_cm.yaml
    apiVersion: v1
    data:
    Corefile: |
    cluster.local:53 {
    log
    errors
    health
    kubernetes cluster.local in-addr.arpa ip6.arpa {
    pods insecure
    upstream
    fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    proxy . /etc/resolv.conf
    cache 30
    loop
    reload
    loadbalance
    }
    kind: ConfigMap
    metadata:
    creationTimestamp: null
    name: coredns

    关于Kubernetes - 如何编辑 CoreDNS 核心文件配置映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56675972/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com