k8s-kubernetes错误集锦总结-环境搭建篇

2023-10-27

k8s-kubernetes错误集锦


随笔,学习总结,写给以后的自己看的,所以文章会比较随意

[root@centos7 k8s-auto]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
上述错误,检查一下环境变量是否设置好了,检查步骤如下

env | grep  -i kube

在这里插入图片描述
如果没有、为空或者路径不对,文件有误等等对正修正错误就可以了,添加方式如下
临时方式

export KUBECONFIG=/etc/kubernetes/admin.conf

永久修改方式

 echo "export KUBECONFIG=/etc/kubernetes/admin.conf" > /etc/profile.d/kubeconfig.sh
 source /etc/profile.d/kubeconfig.sh

改为之后再试就可以了
在这里插入图片描述
②节点NotReady的原因
排查步骤,检查pods的状态如下,coredns处于pending(挂起状态),describe看看详细信息
在这里插入图片描述

kubectl describe pods coredns-546565776c-bkhvx -n kube-system

最下面是这样说的,这里先加个节点上去再看日志排错,因为我这里只有一个master节点
问题②先跳过,下文再解析,现在去另一台主机加入新的节点

kubeadm join 192.168.40.130:6443 --token hdp0kg.ac73i5ms09kuvqbx --discovery-token-ca-cert-hash sha256:5026d0d1673e55ae99bdbf74d6633988d3e9d76a70903adae9e5b9a8582bdf1a
这个tocken值每个人设的都不一样,自己替换下,报如下错,不方,拉到最后看看
在这里插入图片描述在这里插入图片描述ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info
, error: exit status 1
[ERROR Service-Docker]: docker service is not active, please run ‘systemctl start docker.service’
[ERROR IsDockerSystemdCheck]: cannot execute ‘docker info -f {{.CgroupDriver}}’: exit status 2
[ERROR FileContent–proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[ERROR SystemVerification]: error verifying Docker info: “Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...
To see the stack trace of this error execute with --v=5 or higher
图上说docker服务没起,确实没起,启起来再试就成功了,而且启动命令也给了,就是那么的方便_

systemctl start docker.service

在这里插入图片描述成功
④回到master主机
在这里插入图片描述
ok,现在解决②中的错误,查看下系统日志
在这里插入图片描述可以看到一直在刷这个错误:
Unable to update cni config: no networks found in /etc/cni/net.d
Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
由此可见是网络问题,这个是需要部署一个网络规划服务,我这里因为用的是coredns这个pod,所以我这里部署的是flannel,步骤如下
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
下载,这里我的另一篇文档也有写,文件也提供到csdn的资源处
这个yaml里面可以修改一个配置,绑定网卡,防止双网卡的机器部署时报错;
检索关键词masq,在图中位置加入–iface,其中我这里的ens33是对应我的网卡名,你们对应修改即可;
在这里插入图片描述
在master上部署

kubectl apply -f kube-flannel.yml

在这里插入图片描述正在初始化,describe看看细节
在这里插入图片描述正在拉取镜像,有时会报ImagePullBackOff,大多数是镜像拉取超时的原因
导致的有网速(更换镜像源),还有可能是systemd服务不正常,或者磁盘内存等等,具体要看报错信息对应解决;
如果是systemd1服务超时问题,需要手动kill掉kubelet的进程,根据系统日志(message和dmesg)的报错修正错误,然后重启电脑;
如下图
在这里插入图片描述在这里插入图片描述修正错误后,如下图显示

在这里插入图片描述在这里插入图片描述还有一个节点的这个pod正在初始化中
在这里插入图片描述

ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1597805286
[root@k8s-node2 ~]# abrt-cli list --since 1597805286
id 0770fc07826bfb4326df323a5bc3e3bdc9c54cc8
reason:         NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [flannel:6611]
time:           2020年08月19日 星期三 15时49分39秒
cmdline:        BOOT_IMAGE=/vmlinuz-3.10.0-1062.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8
package:        kernel
uid:            0 (root)
count:          1
Directory:      /var/spool/abrt/oops-2020-08-19-15:49:39-6633-0
已报告:    无法报告

已禁用自动报告功能。请考虑启用该功能,方法是
作为有 root 特权的用户使用命令 'abrt-auto-reporting enabled'

这个cpu占用率过高,导致单核发生软锁("死锁”),这个会经常发生,具体原因要具体分析,下文会慢慢举例分析
在这里插入图片描述完成了,但是coredns仍未ready状态,查看系统日志发现

Aug 19 15:55:39 k8s-master flanneld-start: E0819 15:55:39.713690    8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout
Aug 19 15:55:41 k8s-master flanneld-start: E0819 15:55:41.714940    8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout
Aug 19 15:55:43 k8s-master flanneld-start: E0819 15:55:43.717839    8277 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.131:2379: i/o timeout

上述错误,在这里是因为原来我在这三台机器上装了etcd和flannel(搭建docker-swarm时所需),etcd加入集群时就报错,我就把存储的东西已经删除了,但是没想起flannel还启着;并且这个ip我还更改过,所以他连接的是根本不在线的ip当然会报错;检查/etc/hosts发现。
192.168.161.131 etcd #这个要移除,三台机器都要
作为这些还是会报错的,总结下message里面的日志

Aug 19 16:33:55 k8s-master flanneld-start: E0819 16:33:55.743196   15589 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp: lookup etcd on 114.114.114.114:53: no such host
Aug 19 16:32:03 k8s-master flanneld-start: E0819 16:32:03.592101   15556 network.go:102] failed to retrieve network config: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 192.168.161.127:2379: getsockopt: connection refused

下图是我查看集群的日志

Events:
  Type     Reason            Age                 From                Message
  ----     ------            ----                ----                -------
  Warning  FailedScheduling  <unknown>           default-scheduler   0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
  Warning  FailedScheduling  <unknown>           default-scheduler   0/2 nodes are available: 2 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
  Warning  FailedScheduling  <unknown>           default-scheduler   0/3 nodes are available: 3 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
  Normal   Scheduled         <unknown>           default-scheduler   Successfully assigned kube-system/coredns-546565776c-6mvpj to k8s-node2
  Normal   Pulling           10m                 kubelet, k8s-node2  Pulling image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7"
  Normal   Pulled            10m                 kubelet, k8s-node2  Successfully pulled image "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7"
  Normal   Created           10m                 kubelet, k8s-node2  Created container coredns
  Normal   Started           10m                 kubelet, k8s-node2  Started container coredns
  Warning  Unhealthy         8m34s               kubelet, k8s-node2  Readiness probe failed: Get http://10.18.1.2:8181/ready: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Unhealthy         10s (x55 over 10m)  kubelet, k8s-node2  Readiness probe failed: HTTP probe failed with statuscode: 503

在这里插入图片描述可以看到,因为这个原因,又造成线程堵塞,cpu占用过高,此时可以先停止k8s集群环境(仅测试学习时如此操作),不过即时你把kubelet和docker停止,也不会停止报错,因为根本原因不是出在集群里;
直接把三台机子里的etcd和flannel卸载后,错误日志就停止不刷了;
在这里插入图片描述卸载步骤
在这里插入图片描述
在这里插入图片描述今天先到这

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s-kubernetes错误集锦总结-环境搭建篇 的相关文章

随机推荐

  • 数据结构 算法 进阶篇

    如果说计算机的出现推动了现代科技的发展 那么算法的出现则扩大了现代计算机的应用范围 硬件是计算机的基础 而算法则是计算机的灵魂 作为一名计算机爱好者 程序员抑或计算机科学家 如果不了解算法 就不能更好地理解和使用计算机 著名的计算机科学家尼
  • 一个XSS靶场练习记录

    首先 传送门 http xss fbisb com yx level1 php name test 其次 挑选合适的浏览器 我用的火狐 Chrome会阻断掉你的XSS注入 level1 产看下源码 ctrl u
  • 近期学习7.17

    操作平台 九天毕昇九天 毕昇 10086 cn 创建实例 try 配置 NVIDIA V100 虚拟化 CPU 2核 内存 16G 创建虚拟环境 conda create n try python 3 8 默认3 8 17 部署chatgl
  • #pragma预处理命令

    pragma可以说是C 中最复杂的预处理指令了 下面是最常用的几个 pragma指令 pragma comment lib XXX lib 表示链接XXX lib这个库 和在工程设置里写上XXX lib的效果一样 pragma commen
  • 用 Python+AI 让小朋友的手绘图跳起来(附完整源码)

    大家好 今天给大家介绍一个非常有趣的项目 基于AI识别 制作儿童手绘图舞蹈图 只需几分钟 就能自动生成儿童手绘人物或类人角色 即具有双臂 两条腿等的角色 的动画 而且生成的动画还能做到栩栩如生 不仅可以跳舞 还能打跆拳道 空中飞踢 模拟人的
  • 几种生成验证码的方式以及计算表达式的计算

    kaptcha 数字字母形式验证码 google kaptcha验证码生成器且可以配置生成的验证码格式 引入依赖
  • 指针的介绍及应用

    一 指针 什么是指针 指针是一种特殊的数据类型 使用它可以定义指针变量 指针变量存储的是整形数据 代表了内存的编号 通过这个编号可以访问对应的内存 为什么要用指针 必须要用才用 函数之间是共享变量 传参是单向值传递 全局变量容易命名冲突 使
  • js两数组是否相交_JavaScript判断两个数组是否相等

    首先判断两个数组是否相等时不能直接使用 var array1 var array2 console log array1 array2 输出false 对于对象来说 比较的是两个对象是否为同一个对象 数组属于对象类型 尽管数组元素是相同的
  • 【总结】C++ 基础数据结构 —— STL之集合(set)用法详解

    文章目录 一 set 的概念 二 set 的基本操作 三 set 的用法 一 set 的概念 set 的含义是集合 它是一个有序的容器 里面的元素都是排序好的 支持插入 删除 查找等操作 就像一个集合一样 所有的操作的都是严格在logn时间
  • 【STM32介绍(入门)】

    STM32介绍 入门 作为学习笔记记录 有错误希望指点出来 初识STM32 STM32 从字面上来理解 ST 是意法半导体 M 是 Microelectronics 的缩写 32 表示 32 位 合起来理解 STM32 就是指 ST 公司开
  • Spring-Security 实现黑白名单功能

    添加该功能是在原有功能上新增功能 SpringBoot SpringSecurity mysql 实现用户数据权限管理 本文仅做重点代码的和相关依赖说明 SpringBoot SpringSecurity mysql 实现用户数据权限管理
  • 2 RocketMQ Server安装

    RocketMQ依赖Java环境 要求有JDK 1 8以上版本 支持Windows和Linux平台 支持源码方式安装和使用已经编译好的安装包安装 我们用windows平台安装RocketMQ Server编译好的安装包 来讲解RocketM
  • 【Python打印图形问题】利用print打印一些规则的图形(通过特殊符号比如*和空格组成)

    目录 1 输出菱形 2 打印空心三角形 n 3 打印如下的空心菱形 n为边长 4 九九乘法表 1 输出菱形 描述 输入n 输出2 n 1行的菱形图形 输入 输出 示例1 2
  • 总结:常见的攻击服务器的手段

    一 拒绝服务 这是常见的一种方式 即DOS攻击或DDOS攻击 通过向某个站点服务器反复发送请求 导致无法承载大量的请求而 拒绝服务 被攻击的原因 服务器带宽不足 不能挡住攻击者的攻击流量 案例 SYN Flood 简单说一下tcp三次握手
  • matlab中查找y1与y2相近点,matlab – 寻找附近的邻居

    您可以通过使用 DelaunayTri class及其 edges和 nearestNeighbor方法来实现您的第一个想法 即选择其中点落在与Voronoi线交点的边 这里有一个x和y值的10个随机对的例子 x rand 10 1 Ran
  • tshark查看、指定网卡

    查看网卡 sudo tshark D 或是使用 ifconfig a 可以查看网卡与数据包的情况 指定网卡 sudo tshark i 网卡 例 sudo tshark i ens33
  • 05-ResultMap

    当我们在使用 MyBatis 进行数据库查询的时候 查询结果往往是以单个数据对象或一个对象列表的形式呈现的 这时候 我们可以使用 ResultMap 来告诉 MyBatis 如何将数据库查询结果映射成 Java 对象 ResultMap 是
  • C/C++中计算程序运行时间

    参考博客 C C 计算程序运行时间的代码 蔚蓝星辰mic的博客 CSDN博客 c计算程序运行时间 include
  • mysql修改表操作(DDL)

    1 修改表名 alter table 表名 rename 新表名 2 添加表字段 1 默认加到最后 alter table 表名 add 新字段 类型 字段完整性约束条件 2 指定加到某个字段之后 alter table 表名 add 新字
  • k8s-kubernetes错误集锦总结-环境搭建篇

    k8s kubernetes错误集锦 随笔 学习总结 写给以后的自己看的 所以文章会比较随意 root centos7 k8s auto kubectl get nodes The connection to the server loca