Kubernetes DNS无法在本地Ubuntu 18.04环境上运行

时间:2020-02-21 12:23:52

标签: kubernetes dns ubuntu-18.04

我试图在本地计算机(Ubuntu 18.04)上部署Kubernetes系统,但DNS服务出现了一些问题(我无法通过其DNS名称与无头服务进行交谈)。

我使用minikube运行集群,版本是-

Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020-01-18T23:30:10Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020-01-18T23:22:30Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}

无头服务-

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)             AGE
kubernetes           ClusterIP   10.96.0.1    <none>        443/TCP             67m
zookeeper-headless   ClusterIP   None         <none>        2888/TCP,3888/TCP   3m58s

豆荚-

NAME                      READY   STATUS    RESTARTS   AGE
zookeeper-statefulset-0   1/1     Running   1          57m
zookeeper-statefulset-1   1/1     Running   1          56m
zookeeper-statefulset-2   1/1     Running   1          54m

不存在的DNS服务终结点-(kubectl get ep kube-dns --namespace=kube-system

NAME       ENDPOINTS   AGE
kube-dns               68m

DNS窗格(未准备好)-

NAME                       READY   STATUS    RESTARTS   AGE
coredns-6955765f44-gv42p   0/1     Running   1          58m
coredns-6955765f44-rfkm2   0/1     Running   1          58m

并且DNS pod的日志是-

[INFO]插件/重新加载:运行配置MD5 = 4e235fcc3696966e76816bcd9034ebc7 CoreDNS-1.6.5 linux / amd64,go1.13.4, c2fd1b2 [INFO]插件/就绪:仍在等待:“ kubernetes” [INFO] 插件/就绪:仍在等待:“ kubernetes” [信息]插件/就绪: 仍在等待:“ kubernetes” E0221 12:50:23.090626 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1。端点:获取 https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090668 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Service:获取 https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090671 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Namespace:获取 https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:I / O超时I0221 12:50:23.090594 1 trace.go:82] Trace [146678255]:“反射器 pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98 ListAndWatch”(开始时间:2020-02-21 12:49:53.090061147 +0000 UTC m = + 0.011664556)(总时间:30.000405618s):跟踪[146678255]: [30.000405618s] [30.000405618s] END E0221 12:50:23.090626 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1。端点:获取 https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090626 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1。端点:获取 https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090626 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1。端点:获取 https://10.96.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:I / O超时I0221 12:50:23.090644 1 trace.go:82] Trace [653875127]:“反射器 pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98 ListAndWatch”(开始时间:2020-02-21 12:49:53.090057185 +0000 UTC m = + 0.011660587)(总时间:30.00054106s):跟踪[653875127]: [30.00054106s] [30.00054106s] END I0221 12:50:23.090654 1 trace.go:82] Trace [1501712764]:“反射器 pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98 ListAndWatch”(开始时间:2020-02-21 12:49:53.090052023 +0000 UTC m = + 0.011655434)(总时间:30.000437703s):跟踪[1501712764]: [30.000437703s] [30.000437703s] END E0221 12:50:23.090668 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Service:获取 https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090668 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Service:获取 https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090668 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Service:获取 https://10.96.0.1:443/api/v1/services?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090671 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Namespace:获取 https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090671 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Namespace:获取 https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:输入/输出超时E0221 12:50:23.090671 1 mirror.go:125] pkg/mod/k8s.io/client-go@v0.0.0-20190620085101-78d2af792bab/tools/cache/reflector.go:98: 无法列出* v1.Namespace:获取 https://10.96.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0: 拨打tcp 10.96.0.1:443:I/O超时[INFO]插件/就绪:仍在等待 上:“ kubernetes” [INFO]插件/就绪:仍在等待:“ kubernetes” [INFO]插件/就绪:仍在等待:“ kubernetes”

我尝试跑步-

kubectl run -i --tty --image busybox:1.28 dns-test --restart=Never --rm
/ # nslookup headless.default.svc.cluster.local

得到-

Server:    10.96.0.10
Address 1: 10.96.0.10

nslookup: can't resolve 'headless.default.svc.cluster.local'

我什至不知道从哪里开始修复它。有人可以帮忙吗?

更新

我认为我了解导致问题的原因,但我不理解为什么会发生。 激活防火墙后,似乎出现了问题。由于某些原因,核心dns容器无法运行并陷入就绪状态。在我通过运行关闭防火墙后, sudo ufw disable 核心dns荚状态已更改为Running,并且该服务现在具有端点地址。

 kubectl run -i --tty --image busybox:1.28 dns-test --restart=Never --rm
If you don't see a command prompt, try pressing enter.
/ # nslookup  zookeeper-headless.default
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      zookeeper-headless.default
Address 1: 172.17.0.4 zookeeper-statefulset-1.zookeeper-headless.default.svc.cluster.local
Address 2: 172.17.0.5 zookeeper-statefulset-0.zookeeper-headless.default.svc.cluster.local
Address 3: 172.17.0.6 zookeeper-statefulset-2.zookeeper-headless.default.svc.cluster.local

NAME       ENDPOINTS                                               AGE
kube-dns   172.17.0.2:53,172.17.0.3:53,172.17.0.2:53 + 3 more...   34m

NAMESPACE     NAME                             READY   STATUS    RESTARTS           12m
kube-system   coredns-6955765f44-2d8md         1/1     Running   4          34m
kube-system   coredns-6955765f44-n2gcp         1/1     Running   4          34m

1 个答案:

答案 0 :(得分:1)

我在想我理解导致问题的原因,但我不理解为什么会发生。 激活防火墙后,似乎出现了问题。由于某些原因,核心dns容器无法运行并陷入就绪状态。在我通过运行关闭防火墙后-

sudo ufw disable

core-dns pods状态已更改为Running,并且该服务现在具有端点地址。

 kubectl run -i --tty --image busybox:1.28 dns-test --restart=Never --rm
If you don't see a command prompt, try pressing enter.
/ # nslookup  zookeeper-headless.default
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      zookeeper-headless.default
Address 1: 172.17.0.4 zookeeper-statefulset-1.zookeeper-headless.default.svc.cluster.local
Address 2: 172.17.0.5 zookeeper-statefulset-0.zookeeper-headless.default.svc.cluster.local
Address 3: 172.17.0.6 zookeeper-statefulset-2.zookeeper-headless.default.svc.cluster.local

NAME       ENDPOINTS                                               AGE
kube-dns   172.17.0.2:53,172.17.0.3:53,172.17.0.2:53 + 3 more...   34m

NAMESPACE     NAME                             READY   STATUS    RESTARTS           12m
kube-system   coredns-6955765f44-2d8md         1/1     Running   4          34m
kube-system   coredns-6955765f44-n2gcp         1/1     Running   4          34m