目前任酷划在线后端架构师,主要负责后端基础服务搭建及架构优化,主要关注微服务,容器化,缓存等技术
本文简述@ConfigurationProperties注解实现原理源码及源码解析
Pepper Metrics - Spring/Spring Boot应用性能监控利器
背后spring-boot到底做了什么使我们的工作如此简单,它如何将spring、spring-mvc、tomcat整合到一起的呢?接下来我们以项目启动角度来分析整个初始化过程。
实战FlameGraph火焰图分析线上JAVA应用的CPU使用率异常
手把手教你用flamegraph分析java程序性能
手把手教你如何用perf+flamegraph对docker内java程序生成火焰图进行性能分析
公司落地容器化及Kubernetes,既有的监控部署在虚拟机上,需要迁移到K8S集群中来缩减虚拟机的开销,我们基于Prometheus的监控系统搭建近一年,保存数据周期为180填,目前的数据量在800GB左右,下面讲述的是我们的迁移方案及迁移过程。
容器化给我们带来很多好处,比如镜像交付的不可变性,交付物的标准化,使得CICD的能力能够进一步提升。合理的设计好镜像名称更加能够在管理镜像及出问题的时候事半功倍。
前面的实验,我们通过Deployment+PV/PVC,部署了mysql,wordpress,并通过NodePort类型的Service对服务进行暴露,使集群外可以访问,但是当replicas大于1时,Deployment产生的多个POD是共享一个PV的,这样在性能及业务上都有可能是有问题的,这种情况我们就应该考虑StatefulSet,在官网上StatefulSet用了Mysql的主从作为例子,但是笔者认为Mysql主从本身与Mysql的知识有关,并且例子更偏向于实践拓扑结构的有状态服务,所以后面的实验,我基于目前比较流行,也比较简单的监控系统Grafana+Prometheus来进行实验。
上个实验2.3 – PV & PVC,我们将wordpress+mysql的Deployment绑定PVC,并成功将mysql的数据保存才PV存储卷上。 但是mysql作为数据库应用,当水平扩展后,就是多个独立的数据库实例,数据彼此分离,导致应用在多个实例间的状态不一致,那么这个问题如何解决呢?
在实验2.2 – Deployment中,我们将原来基于Pod部署的wordpress+mysql成功改造成基于Deployment部署,基于Deployment部署有很多好处,例如:支持滚动升级(Rolling Update),支持水平扩展。
POD删除,应用进程收不到SIGTERM信号,导致应用注册的JVM关闭钩子失效,问题排查与分析总结
前面的文章,我们使用Pod完成了wordpress+mysql的部署,并将两个容器放在了一个Pod当中,本篇文章,我们将使用Deployment完成前面的部署工作
从本篇开始,作者以一个具体案例wordpress+mysql搭建博客为例,介绍Kubernetes的各项功能在实际应用当中的使用技巧
本文主要描述节点污点及亲和性相关操作
上篇文章我们从零搭建了一个1主2从的集群,实际生产实践中,经常要面对的可能就是节点管理了,本文对节点管理部分常用的功能进行实战操作。 主要包含: - 节点状态 - 节点通信及节点宕机 - 移除节点 - 增加节点
作为学习与实战的记录,笔者计划编写一些列实战系列文章,主要根据实际使用场景选取Kubernetes最常用的功能进行实验,并使用当前最流行的kubeadm安装集群。本文用到的所有实验环境均基于笔者个人工作站虚拟化多个VM而来,如果读者有一台性能尚可的工作站台式机,推荐读者参考本文操作过程实战演练一遍,有助于对Kubernetes各项概念及功能的理解。
本文是我司近期对阿里云容器服务落地实践经验的总结之ingress篇,从原理、实践、到避坑等多方面进行总结。
本文对阿里云容器服务Kubernetes版cni网络插件terway的两种模式(eni,vpc)和宿主机网络通信进行网络性能测试及对比,希望以此得出可行性结论,并为其他选择网络插件的用户提供指导帮助。