pod修改共享内存shm大小的方法

默认的Linux发行版中的内核配置都会开启tmpfs,映射到了/dev/下的shm目录,这个就是共享内存目录,可以通过df命令查看,例如在pod中我们查看默认就是64M。/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里,直接使用/dev/shm/就可达到很好的优化效果。默认系统就会加载/dev/shm,它就是所谓的tmpfs,像虚拟磁盘一样,tmpfs可以使用您的RAM,但它也可以使用您的交换分区来存储,tmpfs是一个文件系统,而不是块设备,只是安装它,它就可以使用了。动态文件系统的大小,/dev/sh...

阅读全文

centos7删除POD一直Terminating无法销毁

目前我的k8s环境容器是使用的containerd,删除POD以后一直terminating,无法销毁,然后查看terminating的POD有以下事件报错  Normal   Killing        8m16s                 &nbs...

阅读全文

k8s磁盘容量限制的方法

容器在运行中产生的日志和临时如果没有限制,会很快占满宿主的磁盘空间,导致磁盘写爆,今天就介绍下常见的限制POD使用容量的方法。POD容器的临时存储如果在kubelet的配置没有更改的情况下默认存储在/var/lib/kubelet/pods目录下,容器的日志存放在/var/log/pods目录下。docker容器rootfs默认位于/var/lib/docker目录下当节点磁盘存储资源不足,kubelet会驱逐掉一些POD来释放存储资源,这种检测磁盘资源不足的信息主要来源于imagesfs和nodefs,他们分别的作用是:imagefs:容器运行时用作存...

阅读全文

Docker清理数据和目录结构介绍

今天上集群查看有POD状态不正常,然后describePOD事件提示docker: Error response from daemon: open /var/lib/docker/overlay2/***: no such file or directory出现这个提示的意思是overlay2下面的这个文件没有了,出现这个问题的原因是dockerrootdir目录已经写满了,rootdir的默认路径就是/var/lib/docker,...

阅读全文

通过进程PID查询POD的几种方法

通过进程PID查询POD的几种方法1.通过mountinfo获取容器IDcat /proc/14890/mountinfo | grep "etc-hosts"1332 1310 253:2 /var/lib/kubelet/pods/ad9a35fb-dd31-4551-b267-9e2ff340ac0b/etc-hosts /etc/hosts rw,relatime - xfs /dev/vda2 ...

阅读全文

k8s创建POD的具体流程原理

在用户使用kubectl命令提交yaml时,其实在整个k8s中很多组件都协调运作最终直观的展示生成的POD,那么这中间经历了很多流程,我们来看看这其中流程和原理具体是什么样的。当用户kubectl提交yaml文件以后,kubectl会将yaml文件转成符合resfulAPI规范的json数据提交到apiserver接口,apiserver接口有鉴权认证的功能,如果有做鉴权和认证那么在这一步就会进行认证,认证通过后就会将yaml提交的信息存储到etcd,这里我们可能会想到这就直接提交到etcd中存储,其它组件是如何之前用户新建了一个POD呢?api...

阅读全文

k8s设置pod特权privileged的方法

k8s部署es的时候需要初始化很多linux的内核参数。但是文件系统挂载到pod容器中就会变成read-only,难以进行操作实现需求。所以需要给PODprivileged权限,然后在容器的初始化脚本或代码中去修改sysctl参数。创建POD/deployment/daemonset等对象时,给容器的spec指定securityContext.privileged=true即可设置到containers同级即可    securityContext:     ...

阅读全文

pod报错no space left on device的解决方法

查看k8s上有一些POD日志中提示Error:failedtocreateFSwatcher:nospaceleftondevice看到这个错误提示第一时间想到的是是不是磁盘用满了,然后我开始检查机器上的资源,包含CPU,内存,硬盘发现上面检查项均为正常的然后describenode发现节点上的配额还有很多,实际使用已分配的资源都不高,然后我翻找资料,有提示相关的内核方面的问题,需要优化调整fs.inotify.max_user_watches的值sysctl fs.inotify.max_user_watches用上述命...

阅读全文

Pod常见状态以及相关问题排查的方式

我们在K8S环境中常见的一些POD状态这里进行罗列,然后根据每种状态来看看对应的解决方案有哪些POD常见有以下几种状态1、PendingPod创建已经提交给k8s,但是因为某种原因不能顺利创建,例如下载镜像慢,调度不成功等故障分析:Pending说明Pod还没有调度到某个Node上面。可以通过kubectldescribepod<pod-name>命令查看到当前Pod的事件,进而判断为什么没有调度。可能的原因包括资源不足,集群内所有的Node都不满足该Pod请求的CPU、内存、GPU等资源2、RunningPod已经绑...

阅读全文

K8S工作负载和POD详解

1.POD容器组在Kubernetes中,pods是能够创建、调度、和管理的最小部署单元,是一组容器的集合,而不是单独的应用容器同一个Pod里的容器共享同一个网络命名空间,IP地址及端口空间。从生命周期来说,Pod是短暂的而不是长久的应用。Pods被调度到节点,保持在这个节点上直到被销毁。1)容器分类InfrastructureContainer:基础容器   用户不可见,无需感知   维护整个Pod网络空间InitContainers:初始化容器,一般用于服务等待处理以及注册P...

阅读全文