记一次K8S VXLAN Overlay网络8472端口冲突问题的排查

2020-11-10
阅读 2 分钟
3.7k
在20-22三台上安装K8S集群(通过rancher的rke安装),安装完毕后,发现访问各个节点的80端口,只有20服务器能够正常返回,其余的都是Gateway Timeout。使用Rancher的提供的这个办法得知Overlay网络不通。

混合kubebuilder与code generator编写CRD

2020-07-06
阅读 5 分钟
7.9k
使用Kubebuilder+k8s.io/code-generator编写CRD。 本项目代码在 这里。 概览 和k8s.io/code-generator类似,是一个码生成工具,用于为你的CRD生成kubernetes-style API实现。区别在于: Kubebuilder不会生成informers、listers、clientsets,而code-generator会。 Kubebuilder会生成Controller、Admission Webhooks,而c...

Java应用性能调优套路

2020-03-05
阅读 2 分钟
3.2k
一切优化要基于确切的报告,而不是靠猜。 我们只有通过压力测试才能知道程序性能几何。 压测前准备 我们应对单台应用服务器做压力测试,你只有知道了单台能够承受多少才能知道集群能承受多少。 然后要确定单台应用服务器性能目标: 吞吐量,每秒处理多少请求 延迟,平均、P50、P90、P99的请求在多少时间内完成 如果客户...

StatefulSets迁移PV的方法

2019-12-09
阅读 3 分钟
4.4k
先说说场景,你有一个StatefulSets,通过volumeClaimTemplate创建了PVC。现在这些PVC所关联的PV对你来说不够用了,你希望能够使用更大的PVC。

启用IPVS的K8S集群无法从Pod经外部访问自己的排障

2019-10-21
阅读 2 分钟
6.5k
阿里云上的启用IPVS的K8S集群,无法从Pod经外部访问自己的排障流水账。 问题描述: 阿里云上的托管版K8S集群(下面简称ACK),启用了IPVS 集群中有两个应用Foo和Bar,Bar使用Ingress暴露外网地址,bar.xxx.com Foo应用无法访问 bar.xxx.com ,得到的错误是 Connection refused 初步排障 在集群外部测试 curl [链接] 能够...

在阿里云K8S中的如何管理TLS证书?

2019-09-05
阅读 2 分钟
6.5k
本文介绍几种在阿里云K8S中管理TLS证书的方案。 证书申请方案 先看如何申请证书。 cert-manager cert-manager是一个集成在k8s中的工具,它可以做到自动从Let's encrypt申请证书、自动更新证书、与Ingress无缝结合。 大多数情况下建议与Ingress集成的方式使用它,后面会讲。如果你仅需要签发功能,不需要和Ingress集成,...

Redis Cluster配置传播及故障恢复笔记

2019-07-11
阅读 3 分钟
4.3k
每个Node自己有一份Cluster.currentEpoch、MySelf.configEpoch、其他Node.configEpoch,详见文档。

Redis Cluster节点故障探测算法笔记

2019-07-10
阅读 1 分钟
3.6k
修改Node状态表里的Node的状态为GOOD(在文档中称之为Clear Flags)、PFAIL,不需要共识(大多数Master Node同意)。

MySQL Master Slave Docker部署例子

2019-06-18
阅读 4 分钟
3.1k
原文地址:[链接] 本文对应代码:github 用Docker部署基于GTID的MySQL Master-Slave Replication例子。 启动Master 写一个文件mysql-master.cnf: {代码...} 这个配置文件把Master的server_id设置为1,要注意在同一个Master-Slave集群里,server_id不能重复。 启动Master: {代码...} 启动Slave 写一个文件mysql-slave-1...

Spring Boot配置Redis Sentinel的例子

2019-06-14
阅读 4 分钟
11.1k
拓扑(M代表redis-master,S代表redis-sentinel,R代表redis-slave,C代表Spring Boot Application):

X.509、PKCS文件格式介绍

2019-04-27
阅读 6 分钟
5.4k
ASN.1 is a standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way.

理解Spring Cloud Gateway Filters的执行顺序

2019-04-22
阅读 4 分钟
16.4k
在讲SCG的Filter的排序问题之前得先比较一下Spring Cloud Gateway在对待Filter的方面与Zuul2有着哪些不同。

处理Empty Mono的方法

2019-04-19
阅读 2 分钟
9.2k
上面的示例代码里的注释已经写了if (token == null) {}的这个条件是永远成立的,这是因为当Mono<Token>是empty时,它是不会触发flatMap的。诸如flatMap的绝大部分Operator都依赖于Publisher(Mono和Flux都是Pubisher)推送数据(详情请看javadoc),如果Publisher本身无数据可推送,那么就不会触发Operator。换句...

Perf分析CPU性能问题笔记

2019-04-13
阅读 3 分钟
11.1k
本文仅仅是一个笔记。 场景 观察进程的CPU使用情况 观察进程内各个函数的CPU使用情况: {代码...} 同时显示函数调用链: {代码...} 记录采样结果,以供后续分析,加上-g会记录调用链: {代码...} 读取采样结果: {代码...} 观察容器内进程CPU使用情况 容器内的进程实际上可以在host machine上看到,ps -ef | grep <te...

各大API网关性能比较

2019-04-12
阅读 3 分钟
19.9k
用于实现API网关的技术有很多,大致分为这么几类: 通用反向代理:Nginx、Haproxy、…… 网络编程框架:Netty、Servlet、…… API网关框架:Spring Cloud Gateway、Zuul、Zuul2、…… API网关最基本的功能就是反向代理,所以在对API网关做技术选型的时候需要着重考察其性能表现,本文对Nginx、Haproxy、Netty、Spring Cloud Ga...

关于同步/异步、阻塞/非阻塞IO的摘要

2019-04-04
阅读 4 分钟
2.7k
延伸阅读:如何解决C10M问题 The Secret To 10 Million Concurrent Connections -The Kernel Is The Problem, Not The Solution 这个presentation主要讲了如何消除内核network stack的瓶颈,没有特别提到采用哪种模型。

如何在Tomcat中做TLS客户端认证

2019-03-28
阅读 14 分钟
5.5k
常见的https网站做的是服务端认证(server authentication),浏览器通过证书判断你所访问的[链接],而不是其他人伪造的网站。同时还对流量加密,防止别人窃听你的流量。

并行、延迟与吞吐量

2019-03-24
阅读 3 分钟
5k
“性能”这个词过于含糊,更准确的说应该是:延迟(latency)和吞吐量(throughput)。本文举几个简单的例子来解释在固定线程池大小的情况下,不同的并行程度与延迟和吞吐量的关系。

如何估算吞吐量以及线程池大小

2019-03-24
阅读 2 分钟
3.5k
原文:[链接] 估算吞吐量 现在有一个task,它的执行时间分为2部分,第一部分做数学运算,第二部分等待IO。这两部分就是所谓的计算操作与等待操作。 那么现在要求估算在CPU火力全开的情况下,执行这个task能够达到的吞吐量峰值是多少? 那么我们要先知道执行这个task总共需要多少时间,计算部分花费多少时间,等待部分花...

CPU & Memory, Part 4: NUMA support

2019-03-21
阅读 5 分钟
2.6k
Figure 2.3是最简单的NUMA形式,处理器可以有自己的本地内存,访问本地内存和其他处理器的本地内存的开销区别不大,即NUMA factor比较低。

CPU & Memory, Part 3: Virtual Memory

2019-03-20
阅读 5 分钟
2.7k
虚拟内存(virtual memory)是处理器的一个子系统,它给每个进程提供虚拟地址空间(virtual address space)。这让每个进程以为自己在系统中是独自一人。

(笔记)CPU & Memory, Part 2: CPU caches

2019-03-18
阅读 17 分钟
3.4k
关键词:Cache prefetching、TLB cache missing、MESI protocol、Cache types(L1d、L1i、L2、L3)

(笔记)CPU & Memory, Part 1: RAM

2019-03-18
阅读 3 分钟
2.4k
博文:[链接] 原文:What every programmer should know about memory, Part 1, RAM 1 Introduction 如今的计算机架构中CPU和main memory的访问速度的差异是很大的,解决这一瓶颈有这么几种形式: RAM硬件设计的改善(速度和并行) Memory controller设计 CPU caches 给设备用的Direct memory access(DMA) 2 Commodity...

稳定与非稳定版本软件的Docker Image构建策略

2019-02-27
阅读 1 分钟
2k
Docker image的tag是不稳定的,这句话的意思是就算tag不变,其所代表的image并非一成不变,例如openjdk:8在去年代表jdk 8u161今年则代表jdk 8u191。就算你使用openjdk:8u181也不能保证这个image是不变的,为什么这么说?

为何把日志打印到控制台很慢?

2019-02-22
阅读 4 分钟
7.7k
原文 在容器打印日志到控制台阻塞的排障的时候看到一个观点: 把日志打印到控制台要比打印到文件慢,而且是非常慢。 log4j2和logback的两个issue官方也提到了这一点(见LOG4J2-2239、LOGBACK-1422)。 那么为何输出到控制台慢?有何办法加速呢?问题要从三个角度来分别回答: linux的stdout角度 Java程序角度 docker容器...

Docker容器如何获得自己的名字

2019-02-22
阅读 1 分钟
6.8k
原文 本文介绍的方法是通过环境变量把容器自己的名字传递进去,仅支持以下两种部署方式: docker service create docker stack deploy docker service create docker service create -e MY_NAME="{{.Task.Name}}" -d --name abc tomcat:8.5-alpine 这样容器里的MY_NAME环境变量就是容器自己的名字,比如:abc.1.rik8xgc0...

算法 - 最好、最坏、平均复杂度

2019-02-22
阅读 1 分钟
2.3k
注:本文仅为笔记。 原文 极客时间 - 数据结构与算法之美 - 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度 最好、最坏时间复杂度 略,比较容易分析。 平均时间复杂度 需考虑概率来计算。 概率论中的加权平均值,也叫作期望值,所以平均时间复杂度的全称应该叫加权平均时间复杂度或者期望时间复杂度。 均...

Kublet PLEG不健康问题排障

2019-02-22
阅读 1 分钟
11.7k
现象:某个Node频繁出现“PLEG is not healthy: pleg was last seen active 3m46.752815514s ago; threshold is 3m0s”错误,频率在5-10分钟就会出现一次。

算法 - 时间复杂度

2019-02-22
阅读 1 分钟
1.6k
注:本文仅为笔记 原文 极客时间 - 数据结构与算法之美 - 03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗? unit_time 读、运算、写均算作一个unit_time 计算技巧 只关注循环执行次数最多的一段代码。 加法法则:总复杂度等于量级最大的那段代码的复杂度。 乘法法则:嵌套代码的复杂度等于嵌套内外代码...

JVM运行时数据区域

2019-02-22
阅读 1 分钟
1.3k
参考资料 Java Virtual Machine Specification | 2.5. Run-Time Data Areas Java Virtual Machine Specification | 5.3. Creation and Loading 极客时间 | 深入拆解 Java 虚拟机 | 01 | Java代码是怎么运行的?