在高可用的k8s集群中,当Node节点挂掉,kubelet无法提供工作的时候,pod将会自动调度到其他的节点上去,而调度到节点上的时间需要我们慎重考量,因为它决定了生产的稳定性.可靠性,更快的迁移可以减少我们业务的影响性,但是有可能会对集群造成一定的压力,从而造成集群崩溃. Kubelet 状态更新的基本流程: 1.kubelet 自身会定期更新状态到 apiserver,通过参数--node-status-update-frequency指定上报频率,默认是 10s 上报一次. 2.kube-…
前文我们了解了k8s上的kube-scheduler的工作方式,以及pod调度策略的定义:回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14243312.html:今天我们来聊一下k8s上的节点污点和pod容忍度相关话题: 节点污点是什么呢? 节点污点有点类似节点上的标签或注解信息,它们都是用来描述对应节点的元数据信息:污点定义的格式和标签.注解的定义方式很类似,都是用一个kv数据来表示,不同于节点标签,污点的键值数据中包含对应污点的effect,污点的…
容器(Container)常被用来解决比如微服务的单个问题,但在实际场景中,问题的解决往往需要多容器方案.本文会讨论将多个容器整合进单个Kubernetes Pod 中,以及Pod中的容器之间是如何通信的. Kubernetes Pod 是什么? 首先我们来探讨下什么是Pod.Pod是Kubernetes中最小的可部署和管理单元.换句话讲,如果需要在Kubernetes中运行单个容器,那么你就得为这个容器创建一个Pod.同时,一个Pod可以包含多个容器,这些容器往往是紧耦合的.怎么样个紧耦合法呢…
1.先删除pod 2.再删除对应的deployment 否则只是删除pod是不管用的,还会看到pod,因为deployment.yaml文件中定义了副本数量 实例如下: 删除pod [root@test2 ~]# kubectl get pod -n jenkins NAME READY STATUS RESTARTS AGE jenkins2-8698b5449c-grbdm 1/1 Running 0 8s [root@test2 ~]# kubectl delete pod jenkins…
#!/bin/bash pod01=`kubectl get pod -o wide -n weifeng-system|grep official-ui-node-prod|awk -F : 'NR==1'|awk -F " " '{print $1}'` pod02=`kubectl get pod -o wide -n weifeng-system|grep official-ui-node-prod|awk -F : 'NR==2'|awk -F " " '…
容器化应用程序写入到 stdout 和 stderr 中的任何信息,都将被容器引擎重定向到某个地方.例如,Docker 容器引擎将 stdout 和 stderr 这两个输出流重定向到 logging driver ,Kubernetes的默认配置中,最终 logging driver 最终把日志写入了一个 json 格式的文件. Docker 的 json logging driver 将每一行日志都当做一个单独的消息处理(即 json 文件中的一个对象),它并不直接支持多行的日志消息(mul…
1.概述 本文介绍如何为pod分配特定的QoS等级. 我们知道,在k8s的环境中,通过使用QoS等级来做决定,在资源紧张的时候,将哪些的pod进行驱逐,或者说如何对pod进行调度. OK,话不多说,让我们来一一的介绍和说明. 2.如何为pod定义QoS等级 在k8s中,通过为pod中的容器设置资源(cpu.内存的requests和limits)来决定pod的QoS等级. 3.QoS等级 当在k8s的集群中创建一个pod的时候,就会将下面中的一个QoS等级分配给POD: Guaranteed Bu…
问题现象 在TKE控制台上新建版本为v1.18.4(详细版本号 < v1.18.4-tke.5)的独立集群,其中,集群的节点信息如下: 有3个master node和1个worker node,并且worker 和 master在不同的可用区. node 角色 label信息 ss-stg-ma-01 master label[failure-domain.beta.kubernetes.io/region=sh,failure-domain.beta.kubernetes.io/zone=20…
背景介绍 最近的docker容器经常被kill掉,k8s中该节点的pod也被驱赶. 我有一个在主机中运行的Docker容器(也有在同一主机中运行的其他容器).该Docker容器中的应用程序将会计算数据和流式处理,这可能会消耗大量内存. 该容器会不时退出.我怀疑这是由于内存不足,但不是很确定.我需要找到根本原因的方法.那么有什么方法可以知道这个集装箱的死亡发生了什么? 容器层级判断检测 提到docker logs $container_id查看该应用程序的输出.这永远是我要检查的第一件事.接下来,…
k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1.自主式 Pod 2.控制器管理的 Pod 静态 Pod Pod的生命周期 Pod 如何直接暴露服务 hostNetwork hostPort hostNetwork 和 hostPort 的对比 Label 亲和性调度 什么是亲和(affinity)与反亲和(anti-affinity)调度 Node 亲和性调度策略 Pod 亲和性调度 NodeSelector 定向调度 资源限制 Pod 的持…