Kubernetes V1.11.0 HA群集CoreDNS PODS未出现

时间:2018-07-17 14:15:26

标签: docker kubernetes kubeadm coredns

我正在尝试在Centos 7服务器中创建Kubernetes V1.11.0 HA集群。我在主机上禁用了IPV6。

https://kubernetes.io/docs/setup/independent/high-availability/

基于这些步骤,添加了所有三个主服务器,coreDNS POD不会出现,其将日志记录在/ var / log / messages文件中的错误下方。

    // Seek last key-frame.
    avcodec_flush_buffers(stream._codecContext);
    av_seek_frame(_context, stream._idx, stream.frameToPts(1<<29), AVSEEK_FLAG_BACKWARD);

    // Read up to last frame, extending max PTS for every valid PTS value found for the video stream.
    av_init_packet(&_avPacket);

    while (av_read_frame(_context, &_avPacket) >= 0) {
      if (_avPacket.stream_index == stream._idx && _avPacket.pts != int64_t(AV_NOPTS_VALUE) && _avPacket.pts > maxPts)
        maxPts = _avPacket.pts;
      av_free_packet(&_avPacket);
    }

错误消息:

kubectl get pods -n kube-system
NAME                                READY     STATUS              RESTARTS   AGE
coredns-78fcdf6894-8t7bt            0/1       ContainerCreating   0          53m
coredns-78fcdf6894-plmll            0/1       ContainerCreating   0          53m

如何解决此错误消息并携带coreDNS POD?

谢谢

4 个答案:

答案 0 :(得分:0)

Coreos Github上有一个问题可以准确描述您的情况。解决该问题的建议是:

  

squeed:您使用的是旧版本的CNI,该版本不起作用   在禁用ipv6的系统上。请重新启用ipv6或升级CNI。

关于CNI Github的相关问题,他还提到:

  

squeed:正如我已经解释的那样,此问题已修复6个月。   请升级您的CNI插件。

jellonek评论:

  

这是您的部署软件提供商所面临的问题,   您的情况可能是https://github.com/kubernetes/kubeadm

但是,如果出于某些原因需要关闭ipv6,则可以使用addon使用CoreDNS KubeDNS而不是kubeadm安装群集:

kubeadm初始化--pod-network-cidr = 192.168.0.0 / 16 --feature-gates = CoreDNS = false

或者您可以删除CoreDNS部署和服务,然后应用KubeDNS yaml,应将generated或调整为您的实际群集配置。

这是deployAddons.sh文件中的一个函数,用于部署kube-dns插件:

function deploy_dns {
  echo "Deploying DNS on Kubernetes"
  cp "${KUBE_ROOT}/cluster/addons/dns/kube-dns/kube-dns.yaml.sed" kube-dns.yaml
  sed -i -e "s/\\\$DNS_DOMAIN/${DNS_DOMAIN}/g" kube-dns.yaml
  sed -i -e "s/\\\$DNS_SERVER_IP/${DNS_SERVER_IP}/g" kube-dns.yaml

  KUBEDNS=`eval "${KUBECTL} get services --namespace=kube-system | grep kube-dns | cat"`

  if [ ! "$KUBEDNS" ]; then
    # use kubectl to create kube-dns addon
    ${KUBECTL} --namespace=kube-system create -f kube-dns.yaml

    echo "Kube-dns addon is successfully deployed."
  else
    echo "Kube-dns addon is already deployed. Skipping."
  fi

  echo
}

答案 1 :(得分:0)

我必须为我的CoreDNS pod启用IPv6才能运行。

这是我遵循的步骤:

https://www.thegeekdiary.com/how-to-enable-ipv6-on-centos-rhel-7/

编辑/etc/default/grub并在行中将内核参数ipv6.disable的值从1更改为0:

# grub2-mkconfig -o /boot/grub2/grub.cfg

# shutdown -r now

答案 2 :(得分:0)

我解决了没有启用IPv6的问题 (在https://www.facebook.com/groups/k8skr的帮助下)

因此,原因是Ubuntu的默认Kubernetes CNI为0.6.0。 但是问题已通过Kubernetes CNI 0.7.0解决 因此,您可以通过从以下站点下载进行更新,并将bin文件替换为/opt/cni/bin/

https://github.com/containernetworking/plugins/releases/tag/v0.7.1

至少对我有用:)

答案 3 :(得分:0)

我通过参考这些链接解决了这个问题

查看kubernates故障排除指南和您使用过的网络插件插件

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/#coredns-or-kube-dns-is-stuck-in-the-pending-state

https://kubernetes.io/docs/concepts/cluster-administration/addons/

并在其中安装以下内容并检查

kubectl get pods -n kube-system