Docker CoreDNS无法在Kubernetes群集中运行

Docker CoreDNS无法在Kubernetes群集中运行,docker,kubernetes,ubuntu-16.04,coredns,Docker,Kubernetes,Ubuntu 16.04,Coredns,我正在尝试设置Kubernetes群集,但无法运行CoreDNS。我已运行以下命令来启动群集: sudo swapoff -a sudo sysctl net.bridge.bridge-nf-call-iptables=1 sudo kubeadm init mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube

我正在尝试设置Kubernetes群集,但无法运行CoreDNS。我已运行以下命令来启动群集:

sudo swapoff -a
sudo sysctl net.bridge.bridge-nf-call-iptables=1
sudo kubeadm init

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s- version=$(kubectl version | base64 | tr -d '\n')"
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
要使用
kubectl get PODs检查PODs——所有名称空间
,我需要

NAMESPACE     NAME                                    READY   STATUS             RESTARTS   AGE
kube-system   coredns-68fb79bcf6-6s5bp                0/1     CrashLoopBackOff   6          10m
kube-system   coredns-68fb79bcf6-hckxq                0/1     CrashLoopBackOff   6          10m
kube-system   etcd-myserver                           1/1     Running            0          79m
kube-system   kube-apiserver-myserver                 1/1     Running            0          79m
kube-system   kube-controller-manager-myserver        1/1     Running            0          79m
kube-system   kube-proxy-9ls64                        1/1     Running            0          80m
kube-system   kube-scheduler-myserver                 1/1     Running            0          79m
kube-system   kubernetes-dashboard-77fd78f978-tqt8m   1/1     Running            0          80m
kube-system   weave-net-zmhwg                         2/2     Running            0          80m
所以CoreDNS不断崩溃。我能找到的唯一错误消息来自
/var/log/syslog

Oct  4 18:06:44 myserver kubelet[16397]: E1004 18:06:44.961409   16397 pod_workers.go:186] Error syncing pod c456a48b-c7c3-11e8-bf23-02426706c77f ("coredns-68fb79bcf6-6s5bp_kube-system(c456a48b-c7c3-11e8-bf23-02426706c77f)"), skipping: failed to "StartContainer" for "coredns" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=coredns pod=coredns-68fb79bcf6-6s5bp_kube-system(c456a48b-c7c3-11e8-bf23-02426706c77f)"
从kubectl日志coredns-68fb79bcf6-6s5bp-n kube系统:

.:53
2018/10/04 11:04:55 [INFO] CoreDNS-1.2.2
2018/10/04 11:04:55 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/10/04 11:04:55 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
2018/10/04 11:04:55 [FATAL] plugin/loop: Seen "HINFO IN 3256902131464476443.1309143030470211725." more than twice, loop detected
我发现了一些解决问题的方法

kubectl -n kube-system get deployment coredns -o yaml | \
sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' | \
kubectl apply -f -
并修改
/etc/resolv.conf
以指向实际的DNS,而不是本地主机,我也尝试过

这个问题在中有描述,我尝试了许多不同的Pod网络,但没有任何帮助

我已经多次运行了
sudokubeadm重置和&rm-rf~/.kube/&&sudokubeadm init


我正在运行Ubuntu 16.04、Kubernetes 1.12和Docker 17.03。有什么想法吗?

是的,你是对的。对这一问题进行了描述和讨论。解决方案是升级Docker、禁用SElinux或将
allowPrivilegeEscalation
修改为
true
。 然而,今天我试图重现您的问题,但未能做到这一点。 为您提供命令和输出,可能会帮助您从一开始就创建一个工作版本

Docker版本17.03.2-ce,Kubernetes v1.12.0,Ubuntu 16.04,CoreDNS-1.2.2,在GCP中创建的实例

再过一分钟:

$kubectl get pods --all-namespaces
NAMESPACE     NAME                                              READY   STATUS    RESTARTS   AGE
kube-system   pod/coredns-576cbf47c7-6qbtq                      1/1     Running   0          98s
kube-system   pod/coredns-576cbf47c7-jr6hb                      1/1     Running   0          98s
kube-system   pod/etcd-kube-weave-master-1                      1/1     Running   0          57s
kube-system   pod/kube-apiserver-kube-weave-master-1            1/1     Running   0          47s
kube-system   pod/kube-controller-manager-kube-weave-master-1   1/1     Running   0          49s
kube-system   pod/kube-proxy-4p9l5                              1/1     Running   0          98s
kube-system   pod/kube-scheduler-kube-weave-master-1            1/1     Running   0          53s
kube-system   pod/weave-net-z6mhw                               2/2     Running   0          27s
Coredns吊舱说明:

kubectl describe pod/coredns-576cbf47c7-6qbtq -n kube-system
Name:               coredns-576cbf47c7-6qbtq
Namespace:          kube-system
Priority:           0
PriorityClassName:  <none>
Node:               kube-weave-master-1/10.154.0.8
Start Time:         Fri, 05 Oct 2018 11:06:54 +0000
Labels:             k8s-app=kube-dns
                    pod-template-hash=576cbf47c7
Annotations:        <none>
Status:             Running
IP:                 10.32.0.3
Controlled By:      ReplicaSet/coredns-576cbf47c7
Containers:
  coredns:
    Container ID:  docker://db1712600b4c927b99063fa41bc36c3346c55572bd63730fc993f03379fa457b
    Image:         k8s.gcr.io/coredns:1.2.2
    Image ID:      docker-pullable://k8s.gcr.io/coredns@sha256:3e2be1cec87aca0b74b7668bbe8c02964a95a402e45ceb51b2252629d608d03a
    Ports:         53/UDP, 53/TCP, 9153/TCP
    Host Ports:    0/UDP, 0/TCP, 0/TCP
    Args:
      -conf
      /etc/coredns/Corefile
    State:          Running
      Started:      Fri, 05 Oct 2018 11:06:57 +0000
    Ready:          True
    Restart Count:  0
    Limits:
      memory:  170Mi
    Requests:
      cpu:        100m
      memory:     70Mi
    Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
    Environment:  <none>
    Mounts:
      /etc/coredns from config-volume (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from coredns-token-wp7tm (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      coredns
    Optional:  false
  coredns-token-wp7tm:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  coredns-token-wp7tm
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     CriticalAddonsOnly
                 node-role.kubernetes.io/master:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age                 From                          Message
  ----     ------            ----                ----                          -------
  Warning  FailedScheduling  23m (x12 over 24m)  default-scheduler             0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled         23m                 default-scheduler             Successfully assigned kube-system/coredns-576cbf47c7-6qbtq to kube-weave-master-1
  Normal   Pulled            23m                 kubelet, kube-weave-master-1  Container image "k8s.gcr.io/coredns:1.2.2" already present on machine
  Normal   Created           23m                 kubelet, kube-weave-master-1  Created container
  Normal   Started           23m                 kubelet, kube-weave-master-1  Started container
kubectl描述pod/coredns-576cbf47c7-6qbtq-n kube系统
名称:coredns-576cbf47c7-6qbtq
名称空间:kube系统
优先级:0
PriorityClassName:
节点:kube-weave-master-1/10.154.0.8
开始时间:2018年10月5日星期五11:06:54+0000
标签:k8s app=kube dns
pod模板哈希=576cbf47c7
注释:
状态:正在运行
IP:10.32.0.3
控制人:ReplicaSet/coredns-576cbf47c7
容器:
coredns:
容器ID:docker://db1712600b4c927b99063fa41bc36c3346c55572bd63730fc993f03379fa457b
图片:k8s.gcr.io/coredns:1.2.2
图像ID:docker-pullable://k8s.gcr.io/coredns@sha256:3E2BE1CEC87ACA0B74B7668BBE8C02964A95A402E45CEB51B22629D608D03A
端口:53/UDP、53/TCP、9153/TCP
主机端口:0/UDP、0/TCP、0/TCP
Args:
-形态
/etc/coredns/Corefile
状态:正在运行
开始时间:2018年10月5日星期五11:06:57+0000
准备好了吗
重新启动计数:0
限制:
内存:170英里
请求:
中央处理器:100米
内存:70英里
活跃度:http get http://:8080/运行状况延迟=60s超时=5s周期=10s#成功=1#失败=5
环境:
挂载:
/来自配置卷(ro)的etc/coredns
/coredns-token-wp7tm(ro)中的var/run/secrets/kubernetes.io/servicecount
条件:
类型状态
初始化为True
准备好了吗
集装箱准备好了吗
播客预定为真
卷数:
配置卷:
类型:ConfigMap(由ConfigMap填充的卷)
名称:coredns
可选:false
coredns-token-wp7tm:
类型:Secret(由Secret填充的卷)
SecretName:coredns-token-wp7tm
可选:false
QoS等级:Burstable
节点选择器:
容忍:关键的
节点角色.kubernetes.io/master:NoSchedule
node.kubernetes.io/not ready:NoExecute持续300秒
node.kubernetes.io/不可访问:不执行300秒
活动:
从消息中键入原因年龄
----     ------            ----                ----                          -------
警告失败调度23m(x12超过24m)默认调度程序0/1节点可用:1个节点具有pod无法容忍的污染。
正常调度的23m默认调度程序已成功将kube system/coredns-576cbf47c7-6qbtq分配给kube-weave-master-1
正常拉动23m kubelet,kube-weave-master-1容器映像“k8s.gcr.io/coredns:1.2.2”已出现在机器上
普通创建23m kubelet,kube-weave-master-1创建容器
正常启动23m kubelet,kube-weave-master-1启动容器

另外,请提供kubeadm init--config config config.yaml使用的
config.yaml
,以便更好地理解指定配置文件位置的问题。

我也有同样的问题

我通过删除coredns cm中的插件“循环”解决了这个问题。 但我不知道这云是否会引发其他问题

1、 kubectl编辑cm coredns-n kube系统

二,


3、 通过以下方式重新启动coredns吊舱:
kubectl删除吊舱coredns-n kube系统

通过使用以下方式进行了一定程度的解决:

  • 打开并编辑coredns的configmap。
    kubectl编辑cm coredns-n kube系统

  • “将proxy./etc/resolv.conf替换为上游DNS的ip地址,例如proxy.8.8.8。”根据(在页面末尾)
  • 保存并退出
  • kubectl get pods-n kube系统-oname | grep coredns | xargs kubectl delete-n kube系统

  • 问题的原因已在中解释。 你可以在这个命令的输出中找到这个链接

    kubectl日志coredns-7d9cd4f75b-cpwxp-n kube系统

    此链接位于CoreDNS-1.2.4的输出中

    我使用此cmd升级CoreDNS

    kubectl补丁部署-n=kube系统coredns-p'{“规范”:{“模板”:{“规范”:{“容器”:[{“图像”:“k8s.gcr.io/coredns:1.2.4”,“名称”:“coredns”,“资源”:{“限制”:{“内存”:“1Gi”},“请求”:{“cpu”:“100m”,“内存”:“70Mi”}}}}}}}}}


    我认为简单地从Kubernetes中删除
    循环
    函数并不是一种干净的方法。实际上为解决此问题提供了一些指导原则

    $kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system pod/coredns-576cbf47c7-6qbtq 1/1 Running 0 98s kube-system pod/coredns-576cbf47c7-jr6hb 1/1 Running 0 98s kube-system pod/etcd-kube-weave-master-1 1/1 Running 0 57s kube-system pod/kube-apiserver-kube-weave-master-1 1/1 Running 0 47s kube-system pod/kube-controller-manager-kube-weave-master-1 1/1 Running 0 49s kube-system pod/kube-proxy-4p9l5 1/1 Running 0 98s kube-system pod/kube-scheduler-kube-weave-master-1 1/1 Running 0 53s kube-system pod/weave-net-z6mhw 2/2 Running 0 27s
    kubectl describe pod/coredns-576cbf47c7-6qbtq -n kube-system
    Name:               coredns-576cbf47c7-6qbtq
    Namespace:          kube-system
    Priority:           0
    PriorityClassName:  <none>
    Node:               kube-weave-master-1/10.154.0.8
    Start Time:         Fri, 05 Oct 2018 11:06:54 +0000
    Labels:             k8s-app=kube-dns
                        pod-template-hash=576cbf47c7
    Annotations:        <none>
    Status:             Running
    IP:                 10.32.0.3
    Controlled By:      ReplicaSet/coredns-576cbf47c7
    Containers:
      coredns:
        Container ID:  docker://db1712600b4c927b99063fa41bc36c3346c55572bd63730fc993f03379fa457b
        Image:         k8s.gcr.io/coredns:1.2.2
        Image ID:      docker-pullable://k8s.gcr.io/coredns@sha256:3e2be1cec87aca0b74b7668bbe8c02964a95a402e45ceb51b2252629d608d03a
        Ports:         53/UDP, 53/TCP, 9153/TCP
        Host Ports:    0/UDP, 0/TCP, 0/TCP
        Args:
          -conf
          /etc/coredns/Corefile
        State:          Running
          Started:      Fri, 05 Oct 2018 11:06:57 +0000
        Ready:          True
        Restart Count:  0
        Limits:
          memory:  170Mi
        Requests:
          cpu:        100m
          memory:     70Mi
        Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
        Environment:  <none>
        Mounts:
          /etc/coredns from config-volume (ro)
          /var/run/secrets/kubernetes.io/serviceaccount from coredns-token-wp7tm (ro)
    Conditions:
      Type              Status
      Initialized       True 
      Ready             True 
      ContainersReady   True 
      PodScheduled      True 
    Volumes:
      config-volume:
        Type:      ConfigMap (a volume populated by a ConfigMap)
        Name:      coredns
        Optional:  false
      coredns-token-wp7tm:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  coredns-token-wp7tm
        Optional:    false
    QoS Class:       Burstable
    Node-Selectors:  <none>
    Tolerations:     CriticalAddonsOnly
                     node-role.kubernetes.io/master:NoSchedule
                     node.kubernetes.io/not-ready:NoExecute for 300s
                     node.kubernetes.io/unreachable:NoExecute for 300s
    Events:
      Type     Reason            Age                 From                          Message
      ----     ------            ----                ----                          -------
      Warning  FailedScheduling  23m (x12 over 24m)  default-scheduler             0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
      Normal   Scheduled         23m                 default-scheduler             Successfully assigned kube-system/coredns-576cbf47c7-6qbtq to kube-weave-master-1
      Normal   Pulled            23m                 kubelet, kube-weave-master-1  Container image "k8s.gcr.io/coredns:1.2.2" already present on machine
      Normal   Created           23m                 kubelet, kube-weave-master-1  Created container
      Normal   Started           23m                 kubelet, kube-weave-master-1  Started container