k8s基于role创建指定命名空间下的账户和config管理文件

之前我们学习了创建基于集群级别的账号和管理配置的方法,具体可以查看这个笔记:https://sulao.cn/post/939.html。实际在k8s的使用过程中,我们通常以命名空间来隔离项目或者团队,那么这个时候就有一些需求,就是通过k8sRBAC创建的账户只用于某一个命名空间下,那么这样的账户创建和之前基于集群的创建是稍有区别的,那么我们一起来看看创建过程和创建方法前面的操作也是一样,需要创建一个私钥和证书签名请求openssl genrsa -out sulao.key 2048openssl ...

阅读全文

k8s基于clusterrole创建集群级别只读账户和config管理文件

有时k8s我们需要给一些人员进行查询使用,并不希望该账户又太多权限,这个时候我们需要创建一个只读权限的CLusterRole,并重新生一个对应权限的config文件,然后将这个config文件分发下,这样就能让其它用户可以查看k8s集群,但是只有只读权限。在创建账户之前,我们现了解下config文件构成kubectl config view apiVersion: v1clusters:- cluster:    certificate-author...

阅读全文

linux下core文件分析的方法

当程序出错或者异常退出的时候,满足一定条件会产生coredump,并产生core文件,当然有时也不会生成,会提示coredump,这时我们需要对环境进行配置才会产生core文件。首先我们需要通过ulimit敏玲查看core文件大小限制,需要生成core文件限制不能太小,所以我们一般都设置不限制ulimit -a查看到corefilesize是0,我们使用命令修改下ulimit -c unlimited再次使用ulimit命令查看就已经被改为unlimited了,除此之外还需要修改core_pattern文件echo&nb...

阅读全文

k8s磁盘容量限制的方法

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

阅读全文

CUDA库的安装和samples的使用方法

我们的环境是centos7,可以去官网下载指定版本的cuda库:https://developer.nvidia.com/cuda-toolkit-archive,我们这里以12.0的cuda库为例。wget https://developer.download.nvidia.com/compute/cuda/11.0.1/local_installers/cuda_11.0.1_450.36.06_linux.runsudo sh cuda_11.0.1_450.36.06_linux.run安装的时候我们就不再勾选D...

阅读全文

Tensorflow运行报错'Could not load dynamic library libcudnn.so.8'

Tensorflow运行报错'Couldnotloaddynamiclibrarylibcudnn.so.8',该报错是由于没有cudnn导致,可以在https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html这个页面找到安装方法。cudnn文件可以在https://developer.nvidia.com/rdp/cudnn-archive去下载,注意需要下载对应cuda版本的cudnn我们如果cuda版本是12.0,则下载12.0下对应系统架构的tar...

阅读全文

评估AI性能的python库ai-benchmark

AIBenchmarkAlpha是一个开源的python库,用于评估各种硬件平台的AI性能,包括cpu,gpu和tpu。该基准依赖于TensorFlow机器学习库,并为评估关键深度学习模型的推理和训练速度提供了一个轻量级和准确的解决方案。我们来看下如何使用pip install tensorflow-gpu pip install ai-benchmark需要安装上述两个包,安装完成以后我们需要,给ai-benchmark执行权限chmod + /usr/local/bin/...

阅读全文

k8s中添加外部域名解析的两种方式

我们有时需要添加一些自定义域名在k8s集群环境中使用,那么这时候域名解析需要依赖K8s内部的dns域名服务器来解析。例如我们提供了一个nfs服务器,但是提供的nfs服务器不是IP,而是域名,这个时候这个域名是外部的,而不是k8s内部域名,所以我们需要通过一些手段在k8s内部解析这个域名,常用的有两种方式,一种是在coredns中添加解析记录,另一种则是在需要使用这个域名的pod资源中直接解析。1.使用hostAliases解析,这种方式就是直接在POD中添加解析,具体使用如下:      hos...

阅读全文

Docker查看镜像构造和层次

我们使用docker时也会遇到镜像commit超过最大层数的问题,所以解决这个问题的前提是我们需要了解怎么样查看镜像构造和层级目前docker构建镜像最大是127层,在dockerbuild时基本每行命令都是一层,再构建好使用时我们也会去再次commit镜像,那么这样也算是新的层级。查看docker构造和层级主要有两个命令,一个是inspcect,另一个是history我们使用inspect查看一个镜像的构造docker inspect aedb33724815这里面展示了整个镜像构建的命令结果和层级,具体层级可以使用下面命令进行...

阅读全文

ubuntu20.04安装英伟达GPU驱动

在ubuntu上安装显卡驱动有几种方式,可以使用图形界面的方式安装,也可以使用命令行来安装,我们这里主要来讲使用命令行的方式安装,安装的方式也有两种,分为在线安装和离线安装。安装的时候推荐关掉图形化界面,进入终端模式进行安装sudo telinit 3 # 使用sudo telinit 5命令可以重新进入图形化界面1.使用命令行在线安装的方式如下更新所有的软件包和加入官方的ppa源sudo add-apt-repository ppa:graphics-drivers/ppa...

阅读全文