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...

阅读全文

k8s中CRI、OCI、CRI-O、RUNC和containerd介绍

CRI(ContainerRuntimeInterface,容器运行时接口)是kubernetes定义的接口,定义了如何操作容器和镜像的统一规范,它主要包含ImageService和ContainerService。因为它已经是一个标准,所以你可以选择任何一个CRI的实现(containerd和CRI-O)来使用。CRI-O也是一个CRI的实现,它来自于RedHat/IBM等OCI(OpenContainerInitialtive)提供了容器镜像和运行容器的规范。runc是OCI的一个实现,它是一个创建和运行容器进程的工具。RUNC实际上是...

阅读全文

k8s组件kubelet功能和模块详解

kubelet是运行在每个节点上的主要的"节点代理",每个节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,按照PodSpec描述来管理Pod和其中的容器(PodSpec是用来描述一个pod的YAML或者JSON对象)。kubelet通过各种机制(主要通过apiserver)获取一组PodSpec并保证在这些PodSpec中描述的容器健康运行。kubelet默认监听四个端口,分别为10250、10255、10248、4194。LISTEN 0&...

阅读全文

k8s资源中的resourcequotas

k8s中可以对namespace来做资源限制,主要通过ResourceQuota对象来定义资源配额限制,它可以限制命名空间中某种类型的对象的总数目上限,也可以限制命令空间中的Pod可以使用的计算资源的总上限。首先我们可以检查是否本集群开启了资源配额kubectl api-resources | grep quota#返回resourcequotas             ...

阅读全文

linux下僵尸进程的查找和处理方法

在Linux系统中,一个进程结束了,但是他的父进程没有等待(调用wait/waitpid)他,那么他将变成一个僵尸进程。当用ps命令观察进程的执行状态时,看到这些进程的状态栏为defunct。僵尸进程是一个早已死亡的进程,但在进程表(processstable)中仍占了一个位置(slot)。如果父进程不调用wait/waitpid的话,那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统的进程表容量是有限的,所能使用的进程号也是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程。所以,defunct进...

阅读全文

MongoDB日志以及配置说明

MongoDB的日志可以完成的记录mongodb的健康状态和运行情况,有助于我们在出现故障的时候对MongoDB的故障进行有效的分析。在MongoDB4.4以前和以后的版本日志记录的格式是不一样的,4.4以前的格式是<timestamp> <severity> <component> [<context>] <message>例如:2014-11-03T18:28:32.450-0500 I NETWORK [initandl...

阅读全文

linux下vmstat命令介绍

vmstat命令是监控linux内存的常用工具,可以对操作系统的虚拟内存、进程、CPU等的整体情况进行监视,通常对Linux系统来说,虚拟内存就是swap分区。用法参数Usage: vmstat [options] [delay [count]]Options: -a, --active           active/inactive memory ...

阅读全文