随笔分类 - k8s
摘要:HPA = HorizontalPodAutoscaler 也就是k8s中的pod自动扩缩容的管理器,那么,HPA究竟是如何工作的? 下面的内容,就为你进行详细的讲解...... 上面的这张图,是HPA工作的整个流程。 概括来说,HPA主要是“检查,更新,再次检查”,这样的一个循环的流程。 HPA基
阅读全文
摘要:deployment在部署时,会创建RS(replica set)对象,rs对象用于创建具体的pod. 所以,回滚deployment到某个历史的版本,就是回滚到具体的RS版本即可。 具体怎么来做呢? 1、查看目前deployment所有的RS [root@nccztsjb-node-23 ~]#
阅读全文
摘要:在一个k8s节点上,默认的最大运行的pod数量是:110个 如何对这个最大的pod数量进行修改呢? 修改kubelet的设置config.yaml maxPods: 120 修改后,重启kubelet服务 再次查看节点的信息(kubectl describe node) 已经修改为:120了。
阅读全文
摘要:0、核心要点 如果要对k8s中的node节点进行停机维护,比如升级内核,硬件升级,修理,怎么样的操作是最安全的? 接下的部分,将会告诉你如何去做······ 1、将主机上所有的pod进行驱逐 查看要驱逐的节点的名称 [root@nccztsjb-node-23 ~]# kubectl get nod
阅读全文
摘要:ingress-nginx-controller中的配置是通过什么方式来设置的呢? 没有! configmap. 那要修改access.log和error.log日志的路径,该如何设置?下面一起看下。 1、首先,查看当前ingress-nginx-controller中的日志配置 bash-5.1$
阅读全文
摘要:在部署完ingress-nginx-controller服务之后,如何来清理应用生成的access.log和error.log? 经过几天的摸索,存在以下的2种情况: (1)ingress-nginx-controller默认的将日志写入到标准输出和标准错误输出 通过主机上的清理脚本 logrota
阅读全文
摘要:1、概述 在容器生态系统中充斥着各种各样的术语,今天就来为你,一一解码! Docker开启了容器的时代,但不久之后,工具、标准和首字母缩略词似乎在这一领域爆发。那么,“docker”到底是什么,“CRI”和“OCI”这些术语又是什么意思呢?你为什么要在乎呢?继续往下读,找出答案。 2、关于Docke
阅读全文
摘要:说说这个前提,就是k8s宣布将dockershim给移除了这么个点 为什么要移除 说白了,就是k8s是想建立标准的,通过的CRI,容器运行的接口,不仅仅可以支持docker,还可以支持其他的容器运行时,真正的实现插件化的 从哪里移除 就是将dockershim的代码,从kubelet中移除,不再有k
阅读全文
摘要:在k8s中,所有的容器,工作负载,最终都是要运行到节点上的,以容器的方式运行 那么,如果要在节点上,查看该节点上运行的容器的pod的名字,pod的信息,该怎么查看? 方法非常的简单。 1、登录到任意的工作节点 2、查看容器的ID 4f5de6bafde3就是容器的ID root@nccztsjb-n
阅读全文
摘要:在对pod的钩子脚本进行调试,尤其是,对exec类型的命令进行调试的时候,重要的就是观察这些脚本是否正确的执行了,我们知道,执行钩子命令时,如果没有特殊的处理,很容器pod就退出了,无法看到命令具体的执行过程,这个时候,我们使用如下的方法来解决: 1、创建一个数据卷 volumes: - name:
阅读全文
摘要:在k8s中label selector表达式有2种: 1、基于等式的(equality-based)表达式 如:等于(=),不等于(!=) 2、基于集合的(set-based)表达式 如:in,notin,exists
阅读全文
摘要:1、概述 在k8s中,有一个非常核心的概念,就是label(标签),以及对label的使用,label selector。 本文档中,我们就来看看:1、什么是标签,2、如何定义标签,3、什么是标签选择器,4、如何使用标签选择器 2、label(标签) 2.1、定义 标签这个概念和现实生活中的标签也没
阅读全文
摘要:1、概述 本文档,我们主要来说明,在创建ingress的时候呢,里面会有个字段叫做,path type,这个字段都可以设置为哪些的值,设置为不同的值,对我们设置的path有什么影响。 OK,话不多说,我们开始。 2、路径类型(pathType)介绍 在ingress中的每个path都需要一个对应的p
阅读全文
摘要:1、概述 本文当介绍,如果创建一个ingress,里面包括多个path,也就是实际情况的location,要怎么进行配置。 接下去的这个文档,就会介绍基本的配置的过程 2、配置过程 2.1、创建一个常规的ingress(包含一个path) kubectl apply -f - <<EOF apiVe
阅读全文
摘要:1、概述 我们在现实的环境中,会有这些的场景,比如,需要根据节点上运行的pod来决定,这个pod是否要被调度到该节点上。 这,就涉及到了k8s中的一个概念,pod亲和性、pod反亲和性,这个和节点亲和性很相似,就是根据节点上运行的标签,而部是节点的标签进行判断和调度。 更重要的是,pod亲和性,主要
阅读全文
摘要:在k8s发布的时候,默认携带了如下的优先级级别配置: system-cluster-critical system-node-critical 可以通过如下的命令进行查询 [root@nccztsjb-node-23 ~]# kubectl get priorityclass NAME VALUE
阅读全文
摘要:当pod的所在的主机出现资源压力的时候,比如我们模拟了一个磁盘使用率超过90%的场景 在pod正常运行时,pod的状态是Running [root@nccztsjb-node-23 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-ds
阅读全文
摘要:1、概述 本文介绍如何为pod分配特定的QoS等级。 我们知道,在k8s的环境中,通过使用QoS等级来做决定,在资源紧张的时候,将哪些的pod进行驱逐,或者说如何对pod进行调度。 OK,话不多说,让我们来一一的介绍和说明。 2、如何为pod定义QoS等级 在k8s中,通过为pod中的容器设置资源(
阅读全文
摘要:1、概述 在pod进行调度的时候,如果使用了节点的亲和性,那么就会在调度的时候,调度到具有某些标签的节点上,这个是从pod的角度来说的,同时呢,也可以从节点node的角度出发来定义什么样的pod可以被调度到这个节点上。 在k8s中,可以通过taints和toleration的一起使用来达到这个目的。
阅读全文
摘要:1、概述 在k8s集群的使用场景中有这样的一种情况,某些机器只给某些特殊的应用来使用。那么,这个时候,需要有以下的2个条件来进行保障: 节点不允许其他的pod来使用 应用只允许被调度到该节点上 2、实现方法 我们如果要实现上述的目标,节点不被其他的pod应用来使用,那么将节点增加taints就可以,
阅读全文