首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coredns无法到达主机Nameserver

Coredns无法到达主机Nameserver
EN

Stack Overflow用户
提问于 2018-10-16 14:15:45
回答 1查看 1.9K关注 0票数 0

作为凯尔西海塔的方向,我从零开始创造了一个库伯内特斯星系团。正如我所检查的,所有操作都没有任何错误,但是在部署了第一个应用程序之后,我发现我的应用程序无法解决DNSes问题。

我检查了我的代码日志,并看到了下面的条目:

代码语言:javascript
复制
.:53
2018/10/16 12:31:45 [INFO] CoreDNS-1.2.2
2018/10/16 12:31:45 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/10/16 12:31:45 [INFO] plugin/reload: Running configuration MD5 = 06122de1a2d6c43092ab48d05478dc82
2018/10/16 12:44:27 [ERROR] 2 google.com. A: unreachable backend: read udp 192.168.65.142:51219->172.10.0.2:53: i/o timeout
2018/10/16 12:44:29 [ERROR] 2 google.com. A: unreachable backend: read udp 192.168.65.142:39967->172.10.0.2:53: i/o timeout
2018/10/16 12:44:31 [ERROR] 2 google.com. A: unreachable backend: read udp 192.168.65.142:40187->172.10.0.2:53: i/o timeout

加上凯尔西的文件,我在码头上安装了印花布。

我的嫌犯:

我已经在Docker上安装了Calico,但是我的kubelet运行时已经被配置为与Containerd一起工作。我冲进了纸舱,好像它有网络。但是没有一个集装箱舱。但我找不到办法把棉布翻到集装箱上。

我的Kubelet服务配置:

代码语言:javascript
复制
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=containerd.service
Requires=containerd.service

[Service]
ExecStart=/usr/bin/kubelet \
  --container-runtime=remote \
  --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \
  --image-pull-progress-deadline=2m \
  --config=/var/lib/kubelet/kubelet-config.yaml \
  --kubeconfig=/var/lib/kubelet/kubeconfig-kubelet \
  --network-plugin=cni \
  --cni-conf-dir=/etc/cni/net.d \
  --cni-bin-dir=/opt/cni/bin \
  --register-node=true \
  --cloud-provider=aws \
  --v=2

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

以及我的kubelet配置yaml文件:

代码语言:javascript
复制
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: false
  webhook:
    enabled: true
  x509:
    clientCAFile: "/etc/kubernetes/pki/ca.pem"
authorization:
  mode: Webhook
clusterDomain: "${cluster_domain}"
clusterDNS:
  - "172.10.0.10"
podCIDR: "172.10.0.0/16"
resolvConf: "/run/systemd/resolve/resolv.conf"
runtimeRequestTimeout: "15m"
tlsCertFile: "/etc/kubernetes/pki/worker.pem"
tlsPrivateKeyFile: "/etc/kubernetes/pki/worker-key.pem"

我在节点机器上的resolv.conf文件:

代码语言:javascript
复制
nameserver 172.10.0.2

我可以看到,豆荚可以连接到核心舱,但核心不能连接到172.10.0.2端口53。在主机上,我可以打电话到这个端口并得到答复。

最好的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-18 09:27:51

这是个棘手的问题。我经历了同样的问题,并以以下的方式解决了,它也应该为你工作。要将Calico安装到您的集群中,您需要修补Calico YAML。依赖文档,如何安装Calico:

要实现您的目标,您需要:为Calico创建RBAC:

代码语言:javascript
复制
kubectl apply -f \
https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml

使用Calico配置下载YAML:

代码语言:javascript
复制
curl \
https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml -o

编辑文件calico.yaml

代码语言:javascript
复制
- name: CALICO_IPV4POOL_CIDR
   value: "10.200.0.0/16"

value粘贴到10.200.0.0/16部分,而不是保存。并适用于:

代码语言:javascript
复制
kubectl apply -f calico.yaml
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52837574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档