KylinOSv10安装K8S时Coredns容器报错

这篇具有很好参考价值的文章主要介绍了KylinOSv10安装K8S时Coredns容器报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

KylinOSv10安装K8S时Coredns容器报错。使用同一套利用kubeadm工具的安装脚本,相同的参数变量,在操作系统版本不同的两组服务器上安装K8S后,其中一组出现coredns容器持续重启的问题。(报错:applying cgroup configuration for process caused “No such device or address”)

coredns容器的具体报错如下:

Message: failed to create shim task: OCI runtime create failed: container_linux.go:318: starting container process caused "process_linux.go:281: applying cgroup configuration for process caused \"No such device or address\"": unknown

相关环境信息

  • 操作系统

    • 使用相同的kubeadm脚本准备了3套K8S集群,运行安装脚本后,K8S各节点均运行正常。
    • 集群1安装的是 Kylin Linux Advanced Server V10 (Sun) 操作系统。
    • 集群2、集群3安装的是 Kylin Linux Advanced Server V10 (Sword) 操作系统。
  • 3套集群均安装了相同版本的软件,具体如下:

    • docker-scan-plugin-0.23.0-3.el7.x86_64
    • docker-ce-rootless-extras-20.10.23-3.el7.x86_64
    • docker-ce-20.10.21-3.el7.x86_64
    • docker-runc-1.0.0.rc3-103.ky10.x86_64
    • docker-ce-cli-20.10.21-3.el7.x86_64
    • kubeadm-1.25.5-0.x86_64
    • kubernetes-cni-1.1.1-0.x86_64
    • kubectl-1.25.5-0.x86_64
    • kubelet-1.25.5-0.x86_64
集群 服务器IP K8S版本 操作系统 操作系统安装介质
集群1 10.20.3.49
10.20.3.50
10.20.3.51
kubelet-1.25.5-0.x86_64 Kylin Linux Advanced Server V10 (Sun) Kylin-Server-10-8.2-Release-Build09-20211104-X86_64.iso
集群2 10.20.3.13
10.20.3.14
10.20.3.15
kubelet-1.25.5-0.x86_64 Kylin Linux Advanced Server V10 (Sword) Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso
集群3 10.20.3.11
10.20.3.16
10.20.3.17
10.20.3.18
kubelet-1.25.5-0.x86_64 Kylin Linux Advanced Server V10 (Sword) Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso

环境检查

使用以下命令对集群的相关配置进行检查:

[root@localhost ~]# docker info | grep -E "Cgroup Driver|Runtimes"
 Cgroup Driver: systemd
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
[root@localhost ~]# cat /var/lib/kubelet/config.yaml |grep cgroupDriver
cgroupDriver: systemd
[root@localhost ~]# cat /etc/docker/daemon.json |grep native.cgroupdriver
  "exec-opts": ["native.cgroupdriver=systemd"],

解决

将docker和kubelet二者使用的cgroup-driver配置改为相同的值,即可解决问题。

结果验证

当二者的cgroup-driver看似相同时

集群 Docker的cgroup-driver kubelet使用的cgroup-driver 操作系统版本 coredns运行情况 操作及对应结果
集群1 systemd systemd Kylin Linux Advanced Server V10 (Sun) 正常 重建pod正常
集群2 systemd systemd Kylin Linux Advanced Server V10 (Sword) 持续重启 重建pod、重启docker、重启kubelet后,coredns容器仍然报错,持续重启
集群3 systemd systemd Kylin Linux Advanced Server V10 (Sword) 持续重启 重建pod、重启docker、重启kubelet后,coredns容器仍然报错,持续重启

当修改二者的cgroup-driver配置后

集群 Docker的cgroup-driver kubelet使用的cgroup-driver 操作系统版本 coredns运行情况 操作及对应结果
集群1 systemd systemd Kylin Linux Advanced Server V10 (Sun) 正常 首次部署,即正常。
集群2 cgroupfs systemd Kylin Linux Advanced Server V10 (Sword) 正常 修改docker配置重启生效后,重建coredns容器,此时正常。
集群3 cgroupfs cgroupfs Kylin Linux Advanced Server V10 (Sword) 正常 修改部署参数统一为cgroupfs后,首次部署即正常。

进一步得出的结论

Kylin Linux Advanced Server V10 (Sword)版本的麒麟操作系统有bug:安装docker后,其native.cgroupdriver值为systemd时,并不代表cgroupfs。
注意:已测试麒麟Linux V10 SP3中没有此bug。

相关截图

failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes
failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes
failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes

failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes

failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes
failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes
failed to create shim task: oci runtime create failed: container_linux.go:31,运维,linux,运维,kubernetes文章来源地址https://www.toymoban.com/news/detail-765171.html

到了这里,关于KylinOSv10安装K8S时Coredns容器报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s 系列之 CoreDNS 解读

    kuberntes 中的 pod 基于 service 域名解析后,再负载均衡分发到 service 后端的各个 pod 服务中,如果没有 DNS 解析,则无法查到各个服务对应的 service 服务 基于环境变量的方式 基于内部域名的方式 DNS策略,在Pod,Deployment RC等资源设置 dnsPolicy None 用于想要自定义 DNS 配置的场景,

    2024年02月06日
    浏览(33)
  • k8s coredns 添加静态解析

    修改 coredns configmap,添加 hosts { 120.241.21.12 api.mch.weixin.qq.com 36.155.207.147 yun.tim.qq.com fallthrough }

    2024年02月09日
    浏览(28)
  • 19-k8s的附加组件-coreDNS组件

            coreDNS组件:就是将svc资源的名称解析成ClusterIP;         kubeadm部署的k8s集群自带coreDNS组件,二进制部署需要自己手动部署; [root@k8s231 ~]# kubectl get pods -o wide -A     k8s系统中安装了coreDNS组件后,会有一个coreDNS开头的pod资源;         查看kubelet的配置文件中,可以

    2024年02月21日
    浏览(31)
  • 定制k8s域名解析------CoreDns配置实验

    k8s集群内通过CoreDns互相解析service名. 同时pana.cn域为外部dns解析,需要通过指定dns服务器进行解析 再有3个服务器,需要使用A记录进行解析 查看解析文件 解析内容 测试 admin-deploy.yaml 部署容器 显然现在没有办法解析到集群外dns中的内容 在Corefile下追加以下内容 将coredns相关pod删

    2024年04月17日
    浏览(30)
  • k8s的coreDNS添加自定义hosts

    1.ack的hosts不会继承宿主机的hosts,而工作中有一个域名默认是走内网解析,内网被限制访问了,只能在coreDNS中加一个hosts解析域名 2.编辑configmap (coredns) kubectl edit configmap -n kube-system coredns 增加hosts节点 3.使用命令行添加过程中一直报错无法添加,后来通过图形界面添加了

    2024年04月12日
    浏览(24)
  • K8s服务发现组件之CoreDNS/NodeLocalDNS /kubeDNS

    1.1.1 什么是CoreDNS CoreDNS 是一个灵活可扩展的 DNS 服务器 ,可以作为 Kubernetes 集群 DNS,在Kubernetes1.12版本之后成为了默认的DNS服务。 与 Kubernetes 一样,CoreDNS 项目由 CNCF 托管。 coredns在K8S中的用途,主要是用作服务发现,也就是服务(应用)之间相互定位的过程。 在k8s中,用serv

    2024年02月19日
    浏览(58)
  • k8s coredns 一直是pending状态的解决办法

    使用kubectl get pods -n kube-system 查看如下  coredns 一直是pending 。 经查阅资料发现coredns 最大可能是缺少网络插件导致,本文选择kube-flannel.yml方式来安装 创建文件 kube-flannel.yml,将下面内容复制并保存 执行  kubectl apply -f kube-flannel.yml 再次运行 kubectl  get pods -n kube-system 查看 

    2024年02月15日
    浏览(34)
  • k8s kubelet coredns ubuntu修改dns配置文件读取路径

    coredns 服务默认使用节点上的dns配置,由于在 Ubuntu18 及以上版本,默认是启用 systemd-resolved 服务的,且配置nameserver配置文件默认为 /run/systemd/resolve/resolv.conf , 且kubelet默认的dns文件读取也是该文件。因不习惯使用该服务来管理dns配置,所以需要修改kubelet的默认读取dns的文件

    2024年02月15日
    浏览(38)
  • K8S 集群应用配置coredns实现访问内网域名 —— 筑梦之路

    问题: 在内网环境中,服务器不能连接互联网,某些服务直接使用ip访问又不方便,于是直接在hosts中配置域名解析,而K8S集群中的应用需要访问这些服务,pod容器内却不能解析,此时该怎么解决呢? 解决方法: 第一种方法:内网自建DNS服务,每台主机DNS都指向该dnsf服务器

    2024年02月15日
    浏览(30)
  • 云原生之深入解析如何在K8S环境中使用Prometheus来监控CoreDNS指标

    CoreDNS 是 Kubernetes 环境的DNS add-on 组件,它是在控制平面节点中运行的组件之一,使其正常运行和响应是 Kubernetes 集群正常运行的关键。 DNS 是每个体系结构中最敏感和最重要的服务之一。应用程序、微服务、服务、主机……如今,万物互联,并不一定意味着只用于内部服务,

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包