当前位置: 首页 > news >正文

k8s问题汇总

作者前言

本文章为记录使用k8s遇到的问题和解决方法,文章持续更新中…


目录

    • 作者前言
    • 正常配置ingress,但是访问错误
    • 添加工作节点报错
    • 安装k8s报错
    • 使用kubectl命令报错
    • container没有运行
    • 安装会出现kubelet异常,无法识别
    • 删除k8s集群
    • 访问dashboard报错
    • k8s服务器重启后kubectl命令使用不了
    • k8s手动卸载不干净
    • kubectl get pods 失败
    • 安装k8s加载内核模块报错

正常配置ingress,但是访问错误

curl: (7) Failed connect to test.com:8080; Connection refused

在/etc/hosts加下记录
ip 域名

添加工作节点报错

error execution phase kubelet-start: error uploading crisocket: Unauthorized To see the stack trace

rm -rf $HOME/.kube/config
kubeadm reset

安装k8s报错

情况一:
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[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先删除文件
rm -rf  /etc/kubernetes/kubelet.conf
rm -rf /etc/kubernetes/pki/ca.crt
lsof -i :10250 
kill -9 进程号情况2:
[ERROR DirAvailable–var-lib-etcd]: /var/lib/etcd is not empty
rm -rf /var/lib/etcd

使用kubectl命令报错

The connection to the server 本机ip:6443 was refused - did you specify the right host or port?排错思路
1、集群硬件时间和系统时间不同步
hwclock和data查看后修改2、查看端口是否被占用或被防火墙拦截
netstat -antup | grep 端口号
firewalld --list-zones
iptables -nL3、更改主机名了、重启服务器了
hostnamectl set-hostname 原名
重启kubelet服务4、查看服务是否正常,重启服务
kubelet、containerd、docker等

container没有运行

container runtime is not running: output: time="2023-08-11T15:37:57+08:00" l解决:
vim /etc/containerd/config.toml
#disabled_plugins = ["cri"]

安装会出现kubelet异常,无法识别

--node-labels 字段问题,原因如下。
将 --node-labels=node.kubernetes.io/node='' 替换为 --node-labels=node.kubernetes.io/node='' 删除

删除k8s集群

先停服
systemctl stop kubelet etcd docker containerd卸载k8s
kubeadm reset -f删除k8s相关目录
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd卸载k8s软件包
yum -y remove kubeadm-1.xxx kubelet-1.xxx kubectl-1.xxx 更新yum源
yum clean all
yum -y update
yum makecache

访问dashboard报错

网页提示信息Client sent an HTTP request to an HTTPS server.

原因:
因为直接使用ip:端口的方式是http协议

解决方法:
访问需要加上https
https://ip:端口

如果还是无法访问提示此报错
在这里插入图片描述
原因:被浏览器安全阻拦了
点击页面空白处,键盘输入thisunsafe就可以正常连接了


k8s服务器重启后kubectl命令使用不了

重启前需要配置自启动
systemctl enable docker &&systemctl start docker 
systemctl enable kubelet && sytemctl start kubelet
systemctl enable containerd && sytemctl start containerd
systemctl daemon-reload重启后kubectl命令不了,一般重启器kubelet服务就可以了
sytemctl restart kubelet

k8s手动卸载不干净

使用以下命令进行操作
kubeadm reset -f

kubectl get pods 失败


E0816 23:01:08.370695    3256 memcache.go:265] couldn't get current server API group list: Get "https://ip/api?timeout=32s": dial tcp ip:6443: connect: connection refused查看kubelet服务状态
systemctl status kubelet
$KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS网上查阅后是k8s集群的版本问题,因为不小心升级了yum update
kubelet --version查看版本是1.28的,之前安装是1.25的#解决方法,降级
查看包
rpm -qa | grep kube 
删除包
yum remove -y kubeadm-1.28.0-0.x86_64 kubernetes-cni-1.2.0-0.x86_64 kubectl-1.28.0-0.x86_64 kubelet-1.28.0-0.x86_64yum install -y kubelet-1.25.0 kubeadm-1.25.0 kubectl-1.25.0
systemctl enable kubelet再次kubectl get pods显示正常了

安装k8s加载内核模块报错

加载内核参数net.bridge.bridge-nf-call-ip6tables和net.bridge.bridge-nf-call-iptables
报错cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directoryfcannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory#解决方法
modeprobe br_netfilter

http://www.lryc.cn/news/127337.html

相关文章:

  • 打造专属照片分享平台:快速上手Piwigo网页搭建
  • OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己
  • 船舶法兰盘法兰管件3D扫描尺寸测量|三维扫描检测|CAV测量-CASAIM
  • 每天一道leetcode:1218. 最长定差子序列(动态规划中等)
  • C#的 Settings.Settings配置文件的使用方法
  • 神经网络基础-神经网络补充概念-35-为什么正则化可以减少过拟合
  • Glide 的超时控制相关处理
  • 使用requests如何实现自动登录
  • 【代码随想录-Leetcode第六题:209. 长度最小的子数组】
  • 部署LVS-DR群集
  • 建库、建表、修改表、复制表、字符类型、数值类型、枚举类型、日期时间类型、检索目录、数据导入命令、数据导入步骤、数据导出命令、非空、默认值、唯一索
  • iview默认样式覆盖
  • System.Text.Encoding不同字符编码之间进行转换
  • 计组 | DMA
  • 在服务器开jupyter notebook server
  • Jetpack 中的 databinding - 使用篇
  • C++之signal信号应用实例(一百七十六)
  • 【数据分析入门】Numpy进阶
  • 数据结构的图存储结构
  • 爬虫IP时效问题:优化爬虫IP使用效果实用技巧
  • 【uniapp】picker mode=“region“ 最简单的省市区 三级联动
  • 解决Java中的“Unchecked cast: java.lang.Object to java.util.List”问题
  • 我的创作纪念日(128天)
  • 30W IP网络有源音箱 校园广播音箱
  • 什么是DNS服务器的层次化和分布式?
  • Django图书商城系统实战开发-部署上线操作
  • Springboot 实践(1)MyEclipse2019创建maven工程
  • 41 | 京东商家书籍评论数据分析
  • 【数据挖掘】如何保证数据一致性?
  • 深度学习AIGC问答