k8s的常见问题处理一

一:pod时间同步
容器内部的时间点和node节点时间不一致
在这里插入图片描述
解决方案:将物理机的时区文件以hostpath的方式只读挂载到容器当中,只要保证物理机的时间是准确的即可。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
问题二:Pod内部hosts文件问题
默认情况下,k8s会将pod的hostname和ip地址添加到hosts文件里面,实际应用场景下会有手工追加hosts文件记录的需求,而pod的生命周期是不固定的,因此官方提供了hostalias的解决方案。
在这里插入图片描述
通过配置pod内部hosts文件的初衷有两个:
1 有些微服务之间的调用走的是公网解析,效率低且DNS有可能响应超时。
2 目前开发,测试和现网环境,本质上代码是同一套。
我们通过配置hosts记录,可以将程序连接mysql,mongdb,mq这些公共服务的名称固定。不同的环境对应的公共服务的IP地址通过hostalias方式注入(需要保证三套环境的公共服务用户名,密码,端口这些信息是一致的)可以有效避免由于配置的原因导致的问题。
在这里插入图片描述
在这里插入图片描述
问题三:节点上的pod无法创建和删除
原因:systemd的版本较低导致,systemd在大量创建和删除容器持续一段时间后会出现溢出问题,从而使systemd不再响应所有信息,runc一直处于创建的过程,容器无法启动。
现象:1该节点上的pod无法创建,删除。
2 该节点上的docker run 启动的容器一直处于create状态
3 查看该节点上的runc状态一直处于创建的过程,无法创建namespace

排查操作

  1. ps -ef | grep systemd | grep 7d9c7c4
    在这里插入图片描述
    2 )查看当前节点上的systemd日志
    cat /var/log/message | grep systemd | tail -n 1000
    在这里插入图片描述
    3)查看dbus服务有很多runc进程没有推出
    busctl --list
    在这里插入图片描述
    原因:
    systemd版本较低,systemd在大量创建删除容器持续一段时间后会有溢出问题,从而systemd不再响应所有信息,runc一直处于创建的过程,容器无法启动。

解决方法:
1 重启机器或者重启systemd
systemctl daemon-reexec
2 升级所需的安装包
yum -y install intltool gperf glib2-devel libcap-devel xz-devel
下载所需的包后解压
tar -zxvf cmake-3.18.4-Linux-x86_64.tar.gz
cp cmake-3.18.4-Linux-x86_64/bin/cmake /usr/local/bin/
tar -zxvf gperf-3.1 && ./configure && make && make install
这个包执行后需要检查/usr/lib64/pkgconfig目录里的包是否完整
pkg-config --list-all
cp /usr/lib/pkgconfig/uuid.pc /usr/lib64/pkgconfig/
…(等4个包)
tar -zxvf systemd-243.tar.gz
cd systemd-243 && ./configure && make && make install
安装完成后检查
systemctl --version
显示已经更新

备注:
runc的主要作用是使用Linux Kernel提供的诸如namespaces, cgroup等进程隔离机制以及SELinux等security功能,构建供容器运行的隔离环境。

Kubernetes (k8s)是个用于容器编排和管理的开源平台,但在实际使用中可能会遇到些常见的故障。以下是几个常见的k8s故障及其处理方法: 1. Pod无法启动或CrashLoopBackOff:这可能是由于应用程序错误、资源不足或配置问题引起的。您可以通过查看Pod的日志和事件来了解具体原因。修复方法可能包括修复应用程序错误、调整资源配额或修改配置文件。 2. 节点不可用:如果个或多个节点无法正常工作,您可能会遇到服务中断的问题。您可以通过检查节点的状态、重启节点或替换故障节点来解决这个问题。另外,您可以使用副本控制器来确保Pod在其他可用节点上重新启动。 3. 网络问题:如果Pod无法相互通信或与外部服务通信,可能是由于网络配置错误、防火墙规则或网络故障引起的。您可以检查网络配置、检查防火墙规则并确保网络连接正常。 4. 存储问题:如果您使用了持久卷(Persistent Volume)并且无法访问存储,可能是由于存储配置错误、权限问题或存储故障引起的。您可以检查存储配置、修复权限问题或联系存储管理员来解决这个问题。 5. 资源耗尽:如果您的集群资源不足,可能会导致Pod无法启动或运行缓慢。您可以通过添加更多节点、调整资源配额或优化应用程序来解决这个问题。 这些只是些常见的k8s故障和处理方法的示例。实际情况可能因您的环境和配置而异。在遇到故障时,建议您查看相关日志、事件和监控信息,以便更好地诊断和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值