pynvml模块使用方法

最近有需要使用nvml调用底层显卡信息的需求,所以查了下python有相关的模块pynvml可以使用,下面就直接看看一些基本使用的方法首先我们安装这个模块pip install nvidia-ml-py3然后使用时我们需要初始化该方法import pynvmlpynvml.nvmlInit()使用外以后也需要进行关闭,类似于析构方法pynvml.nvmlShutdown()然后下面是收集的一些常用方法模块#!/usr/bin/python3#pip install nvidia-ml-py3i...

阅读全文

k8s使用local pv配置本地盘作为数据存储

当前项目中遇到一个问题,就是sts资源类型在使用本地hostpath存储时,在某些极端情况下会导致sts资源调度到其它节点,导致本地hostpath存储的资源不存在sts资源新调度的节点,这样就会出现没有数据,数据丢失的情况。那么这种场景下我们需要将sts的资源和pv进行绑定,然后找到了localpv这种方案,使用localpv以后生产的pvc会绑定sts资源,这样在任何情况下sts资源都会和pv绑定到同一个节点,同时再配合nodeAffinity将pv固定到指定的节点,这样就实现了sts资源固定到某一节点的需求。接下来就是我测试的方案,实际场景是一...

阅读全文

ubuntu20.04配置JDK8和JDK11

目前主要使用java8和java11,可以在以下地址下载JDK的包https://www.oracle.com/java/technologies/downloads/#java8https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u351-b10/10e8cce67c7843478f41411b7003171c/jdk-8u351-linux-x64.tar.gzhttps://www.oracle.co...

阅读全文

ubuntu20.04安装tensorrt

目前从tensorrt官网上只能找到ubuntu18.04的版本,但是我的操作系统是ubuntu20.04,实际上直接尝试直接安装ubuntu18.04的版本,这边测试是没有问题官网下载地址:https://developer.nvidia.com/nvidia-tensorrt-download我下载的是TensorRT7这个版本,根据自己需要选择cuda、tensorrt对应的版本,我下载的是这个版本https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.2.3...

阅读全文

apiserver报错failed with: failed to retrieve openAPI spec, http error: ResponseCode: 503

今天上k8s集群,kubectl命令操作卡顿,执行kubectlgetnode命令返回有时很快,有时能卡好几十秒。然后检查apiserver日志,发现了以下信息v1beta1.metrics.k8s.io failed with: failing or missing response from https://10.106.18.58:443/apis/metrics.k8s.io/v1beta1: Get https://10.106.18.58...

阅读全文

apiserver报http: TLS handshake error from xxx:xxx: remote error: tls: bad certificate

检查k8s中发现coredns起不来,后面查看apiserver,里面有如下报错信息http: TLS handshake error from xxx:xxx: remote error: tls: bad certificate后面怀疑是之前添加的apiserver中端口范围影响的,然后去修改kube-apiserver.yaml文件apiVersion: v1kind: Podmetadata:  ...

阅读全文

kubelet报错nable to connect to the server: x509: certificate is valid for xxx, not xxx

我当前k8s环境是多master节点,前几天刚续费k8s证书,今天查看所有工作节点均notready,但是master节点正常,查看工作节点kubelet报错日志如下:k8s.io/kubernetes/pkg/kubelet/kubelet.go:450: Failed to list *v1.Service: Get https://192.168.1.220:16443/api/v1/services?limit=500&resourceVersion=0: x509:&...

阅读全文

k8s无头服务headless介绍

我们在k8s中访问POD提供的业务服务时通常都是通过Servicename的负载来访问,其中负载的原理和CoreDNS有关,它是将Servicename解析成ClusterIP,这样我们就可以通过ClusterIP作负载均衡,把流量分布到各个POD上面。ClusterIP的原理一个service可能代理多个endpoint,每个endpoint实际就是一个POD提供,client访问的就是service的ClusterIP,从而通过iptable规则转发到到后端的某一个POD服务。从而达到负载均衡的效果。当servicetype类型设置为Clu...

阅读全文

xorg进程占用GPU的解决方法

我们在安装linux图像化界面时,开机启动以后Xorg运行起来后自动占用英伟达显卡,在某些使用GPU的情况下会让程序运行失败所以我们需要关闭Xorg对GPU的占用,具体操作如下我们首选需要关闭图形化界面,使用如下命令init 3然后生成Xorg置文件Xorg -configure然后修改/usr/share/X11/xorg.conf.d/nvidia-drm-outputclass.conf文件该文件会让Xserver自动加载nvidia驱动,所以我们我们需要删除或者改名该文件即可cd /usr/share/X11/xo...

阅读全文

k8s健康检查Liveness/Readiness/Startup探针介绍

k8s健康检测主要分为以下三种存活性探测(Livenessprobes):主要是探测应用是否还活着。如果检测到应用没有存活就杀掉当前pod并重启。就绪性探测(Readinessprobes):只要是探测应用是否准备好接受请求访问,如果检测应用准备好了,就把请求流量放进来;反之,则把应用节点从注册中心拿掉。启动探测(StartupProbes):对于旧应用需要更长的启动时间,这时候既不想重启应用也不想让请求访问进来,可以设置启动探测给足够的启动时间保证应用启动成功。k8s中ReadinessProbes示例readinessProbe:&nb...

阅读全文