容器内执行nvidia-smi报错提示Failed to initialize NVML

使用GPU的容器运行了一个训练任务,一段时间以后查看训练任务失败,进POD容器内执行nvidia-smi返回"FailedtoinitializeNVML:UnknownError"。目前该问题是一个已知问题,是由于在docker环境中daemon.json文件中配置了"exec-opts": ["native.cgroupdriver=systemd"]同时通过systemctldaemon-reload等命令守护进程重载命令,导致容器化的GPU工作负载可能会突然失去对G...

阅读全文

k8s使用nfs报错selfLink was empty, can't make reference

我们重新部署了k8s环境,centos7环境下使用的k8s1.27.0这个版本,今天在部署k8s上使用storageclass资源资源部署nfs使用时,POD挂载nfs资源报错提示“unexpectederrorgettingclaimreference:selfLinkwasempty,can'tmakereference”出现上述这个问题是因为在k8s1.21之后的版本移除了selfLink机制,kube-apiserver的解决方法是作为–feature-gates=RemoveSelfLink=false参数传递,这种...

阅读全文

centos7使用haproxy部署k8s高可用集群

之前我们部署k8s多master高可用集群中使用的代理均衡器是nginx,这次我们使用haproxy来做负载均衡器,之前的笔记也会用到,可以查看之前的笔记:https://sulao.cn/post/953.html直接从之前笔记中的安装nginx处开始,由于此处是使用haproxy替代原来的nginx,所以我们直接安装haproxy,本次笔记和上述笔记基本一致,只有nginx/haproxy和keepalived处略有不同yum install haproxy -y安装完成以后我们现手工添加VIPip addr&...

阅读全文

k8s多master集群更新证书

我本地环境是三个master的k8s集群192.168.1.72   master1192.168.1.73   master2192.168.1.74   master3首先第一个master节点更新证书,我们首先需要导出资源清单kubectl get cm kubeadm-config -n kube-system -o yaml >/etc/kubernetes/ku...

阅读全文

nginx四层负载均衡配置解析以及卡顿问题的处理

通常我们在使用nginx做代理时,不使用http协议的场景下,我们需要使用四层的负载均衡,例如在mysql和k8s场景在都是使用4层负载均衡来做代理,通常在大并发的场景下也会在七层负载前面增加四层的负载均衡然而在nginx四层负载均衡的配置上和七层是稍有一些差别,例如在代理配置中不能在添加http协议,日志中的字段也和七层有一些区别,七层上的有些字段不能直接套用在四层上我们接下来看下四层的配置实例,首先还是从安装开始,要使用stream模块需要安装nginx-mod-stream模块yum install nginx ngi...

阅读全文

prometheus数据备份和恢复

prometheus将采集到的样本以时间序列的方式保存在内存(TSDB时序数据库)中,并定时保存到硬盘中。prometheus默认本地会存储15天的数据,如果超过15天会自动删除,如果需要调整这个时间,需要修改prometheus的配置参数storage.tsdb.retention.timeprometheus分为三个部分,分别是:抓取数据、存储数据和查询数据。prometheus按照block块的方式来存储数据,每2小时为一个时间单位,首先会存储到内存中,当到达2小时后,会自动写入磁盘中。block的目录结构如下:chunks #是个目...

阅读全文

centos7删除POD一直Terminating无法销毁

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

阅读全文

containerd镜像仓库相关配置

之前使用docker配置的可以查看这个笔记https://sulao.cn/post/786.html进行配置现在使用containerd以后需要在config.toml中配置仓库的相关信息修改/etc/containerd/config.toml文件找到[plugins."io.containerd.grpc.v1.cri".registry]的配置然后添加的下面这样的[plugins."io.containerd.grpc.v1.cri".registry]  [plugins.&quo...

阅读全文

python使用toml模块生成containerd下nvidia-container-runtime配置脚本

之前在ubuntu和centos下docker环境配置nvidia-container-runtime可以查看之前笔记centos7:https://sulao.cn/post/942.htmlubuntu:https://sulao.cn/post/919.htmlcontainerd下配置nvidia-container-runtime可以查看这个笔记:https://sulao.cn/post/947.html由于containerd下配置nvidia-container-runtime比较繁琐,所以写了脚本去自动修改使用python修改confi...

阅读全文

centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)

集群部署k8s1.23.0版本,容器使用的是containerd1.7.10版本规划的集群信息如下192.168.1.72   master1192.168.1.73   master2192.168.1.74   master3192.168.1.75   node1192.168.1.78   VIP然后在上述三个master分别部署nginx,keepalive,其中nginx代理后端...

阅读全文