一:背景 1. 讲故事 上个月有位朋友加wx告知他的程序有挂死现象,询问如何进一步分析,截图如下: 看这位朋友还是有一定的分析基础,可能玩的少,缺乏一定的分析经验,当我简单分析之后,我发现这个dump挺有意思的, CPU,内存,挂死 三样全占,程序悲惨莫过于此... 既然找到我,我得想办法化解他的痛苦,由易到难我们逐一分析这三样都是因为什么原因所致? 二:三高分析 1. 挂死原因 根据 40+ 的dump分析经验,挂死大多是由于某种情况导致线程卡死,导致后续请求堆积在 threadpool 中,…
[k8s]k8s pod的4种网络模式最佳实战(externalIPs )       hostPort相当于docker run -p 8081:8080,不用创建svc,因此端口只在容器运行的vm上监听 缺点: 没法多pod负载 $ cat pod-hostport.yaml apiVersion: v1 kind: Pod metadata: name: webapp labels: app: webapp spec: containers: - name: webapp image: t…
一.k8s pod 在节点间调度控制 k8s起pod时,会通过调度器scheduler选择某个节点完成调度,选择在某个节点上完成pod创建.当需要在指定pod运行在某个节点上时,可以通过以下几种方式: 1. 在部署pod的yaml中,指定nodeName 指定了nodeName的Pod会直接跳过Scheduler的调度逻辑,直接写入PodList列表,该匹配规则是强制匹配.eg:apiVersion: extensions/v1beta1kind: Deploymentmetadata: nam…
#Pod生命周期,健康检查 pod创建过程 Init容器 就绪探测 存活探测 生命周期钩子 #Pod创建过程 master节点:kubectl -> kube-api -> kubenlet -> CRI容器环境初始化 Node节点: pause容器(网络和数据卷) -> Init容器(若有) -> 主容器(start,容器探针,top) #Init容器 Init容器用来阻塞或延迟应用容器的启动,直到满足决条件,成功退出 在所有的 Init 容器没有成功之前,Pod不会变成…
请查看官方的说明 kubectl cp --help 官方说使用cp , pod里需要有tar命令 从k8s pod 中 拷贝 文件到本地 这是我使用的命令 kubectl exec redis-6c98cb5b5f-nxb59 -- tar cPf - /data/dump_redis.rdb | sudo tar xf - -C . 出现这个报错,tar: Removing leading /' from member names` 可以忽略 会在当前目录产生 data/dump_redis…
Kubernetes K8S之CPU和内存资源限制详解 Pod资源限制 备注:CPU单位换算:100m CPU,100 milliCPU 和 0.1 CPU 都相同:精度不能超过 1m.1000m CPU = 1 CPU. 官网地址: 1 https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-cpu-resource/ 2 https://kubernetes.io/zh/docs/tasks/configure-p…
关键词:k8s.jvm.高可用 1.背景 最近有运维反馈某个微服务频繁重启,客户映像特别不好,需要我们尽快看一下. 听他说完我立马到监控平台去看这个服务的运行情况,确实重启了很多次.对于技术人员来说,这既是压力也是动力,大多数时候我们都是沉浸在单调的业务开发中,对自我的提升有限,久而久之可能会陷入一种舒适区,遇到这种救火案例一时间会有点无所适从,但是没关系,毕竟...... "我只是收了火,但没有熄炉",借用电影中的一句话表达一下此时的心情. 2.初看日志 我当即就看这个服务的运行日志…
非常非常抱歉,新年上班第一天, 在今天阿里云上气候突变情况下,由于我们开船技术差,在今天 10:15~12:00 左右的访问高峰,我们竟然把船给开翻了,造成近2个小时整个博客站点无法访问,由此给您带来很大很大的麻烦,恳请您的谅解. 翻船经过如下. 翻墙前的船只情况 博客站点正在使用的 k8s 集群一共用了 9 台 worker 节点服务器,在访问低峰时用 5 台,另外 4 台处于关机状态,在进入访问高峰前启动.所以我们用 cron 定时任务在工作日每天早上启动 4 台服务器,每天晚上关闭 4 台…
今天我们来玩一下混沌工程的开源工具chaostoolkit . 它的目标是提供一个免费,开放,社区驱动的工具集以及api. 官方源码链接:https://github.com/chaostoolkit/chaostoolkit 要想了解这个工具就必须知道混沌工程原则中提到的要点.如下所示: 记往这里提到的第一个要点,建立稳态假设. 在运行这个工具之前,我们先来看一下它的架构. 简单来解释一下,就是ChaosToolkit通过Drivers来操作你的被测系统. 它的功能点包括如下部分: 下面我们把…
我们知道,当访问量或资源需求过高时,使用:kubectl scale命令可以实现对pod的快速伸缩功能 但是我们平时工作中我们并不能提前预知访问量有多少,资源需求多少. 这就很麻烦了,总不能为了需求总是把pod设置为最多状态,这样太浪费资源:也不能当请求量上来以后再去伸缩pod,这样会有好多请求不成功. k8s既然是云原生时代的产品,当然得有智能,自动这些特性. 所以现在引入一个新的概念: HPA(Horizontal Pod Autoscaler ) pod的自动水平伸缩 有了HPA,我们就不…