一个IP包的旅行 —— K8s 网络之 Calico 浅度解构
· ☕ 6 åˆ†é’Ÿ
前言 学习 Kubernetes 就像玩动作游戏,当我高高兴兴地打败了一关的 BOSS 后总以为是大结局了,谁知道后面还有更大的BOSS 出现。 当我以为学习完容器化、Linux

Java 容器化的历史坑(史坑) - 资源限制篇
· ☕ 5 åˆ†é’Ÿ
由来 时间回到 2017 年,老东家要上 Kubernetes 了,有幸参与和学习(主要是学习)。当时遇到的一了所有 Java 容器化者都遇到的坑:JDK8 不为容器化设计综合症。最简单

记一次 Istio 冲刺调优
· ☕ 5 åˆ†é’Ÿ
为何要调优 如果说,引入一个技术需要兴趣和冲劲,那么,让这个技术上线需要的是坚持和执着。 Cloud Native 如是, Istio 如是。 在上线前的性能测试中,Istio 的使

你的 Istio Mesh 性能及格吗?
· ☕ 4 åˆ†é’Ÿ
前言 话说,一年前项目响应时代的号召,引入了 Istio,从此如刘备得卧龙、凤雏,走上了 Service Mesh 的光辉大道。现到准备益州之战(上线)之时。上线前,还

Benchmark Tools
· ☕ 1 åˆ†é’Ÿ
CPU Benchmark The SysBench system benchmark suite has a simple CPU benchmark tool that calculates prime numbers. For example: # sysbench --num-threads=8 --test=cpu --cpu-max-prime=100000 run sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 8 Doing CPU performance benchmark Threads started! Done. Maximum prime number checked in CPU test: 100000 Test execution summary: total time: 30.4125s total number of events: 10000 total time taken by event execution: 243.

tty
· ☕ 3 åˆ†é’Ÿ
Jobs SIGHUP 默认动作:Terminate 可能动作:Terminate, Ignore, Function call 当检测到 hangup 时,UART 驱动会向整个 session 发送 SIGHUP 信号。 正常情况下,这会 kill 掉所有

Awesome load test tools
· ☕ 1 åˆ†é’Ÿ
k6 https://github.com/k6io/k6 Locust https://docs.locust.io/en/stable/what-is-locust.html gatling https://gatling.io/docs/current/http/http_request/ artillery https://artillery.io/docs/guides/overview/welcome.html wrk https://github.com/wg/wrk

Netfilter and IPTable and conntrack
· ☕ 1 åˆ†é’Ÿ
Tables↓/Chains→ PREROUTING INPUT FORWARD OUTPUT POSTROUTING (routing decision) ✓ raw ✓ ✓ (connection tracking enabled) ✓ ✓ mangle ✓ ✓ ✓ ✓ ✓ nat (DNAT) ✓ ✓ (routing decision) ✓ ✓ filter ✓ ✓ ✓ security ✓ ✓ ✓ nat (SNAT) ✓ ✓ Incoming packets destined for the local system: PREROUTING -> INPUT Incoming packets destined to another host: PREROUTING -> FORWARD -> POSTROUTING Locally generated packets: OUTPUT -> POSTROUTING Connection Tracking https://arthurchiao.

Java 内置 Class Loader
· ☕ 1 åˆ†é’Ÿ
内置 Classloader Bootstrap Class Loader Java classes are loaded by an instance of java.lang.ClassLoader. However, class loaders are classes themselves. Hence, the question is, who loads the java.lang.ClassLoader itself*?* This is where the bootstrap or primordial class loader comes into the picture. It’s mainly responsible for loading JDK internal classes, typically rt.jar and other core libraries located in $JAVA_HOME/jre/lib directory. Additionally, Bootstrap class loader serves as a parent of

Opentelemetry Java Agent 浅度解构
· ☕ 2 åˆ†é’Ÿ
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/contributing/javaagent-jar-components.md Conf Creating spans around methods with otel.instrumentation.methods.include Ref: https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/manual-instrumentation.md Format is "java -Dotel.instrumentation.methods.include=my.package.MyClass1[method1,method2];my.package.MyClass2[method3]" Classloader [arthas@16908]$ classloader -t +-BootstrapClassLoader +-io.opentelemetry.javaagent.bootstrap.AgentClassLoader@379619aa +-sun.misc.Launcher$ExtClassLoader@41fa769c +-com.taobao.arthas.agent.ArthasClassloader@3697b340 +-sun.misc.Launcher$AppClassLoader@18b4aac2 +-java.net.URLClassLoader@71b2d611 +-java.net.URLClassLoader@69cd1085 | +-WebAppClassLoader=266661735@fe4ef67 | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@573f7aae | +-WebAppClassLoader=Server Initiated@1ccb04b3 | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@4b3b9a06 | | +-jnr.ffi.provider.jffi.AsmClassLoader@73cb9ccb | | +-jnr.ffi.provider.jffi.AsmClassLoader@7c380e94 | | +-jnr.ffi.provider.jffi.AsmClassLoader@69ec5d1f | +-WebAppClassLoader=OAuth Server@10d98940 | | +-com.mycom.ece.common.svcfinder.ExtendedClassLoader@3528968e | | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@2919aff3 | | +-jnr.ffi.provider.jffi.AsmClassLoader@1b0e6bac | | +-jnr.ffi.provider.jffi.AsmClassLoader@2f12d8d1 | | +-jnr.ffi.provider.jffi.AsmClassLoader@73123f21 | +-WebAppClassLoader=1133988396@43974a2c | +-com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader@39d87c5f +-java.net.URLClassLoader@1b4c457c +-java.net.URLClassLoader@3a477cf5 Affect(row-cnt:24)

K8s Custom Resources(CR)
· ☕ 2 åˆ†é’Ÿ
Custom Resource 的入口 请求是这样分发到 api 扩展点的: 例如我们有 (Custom Resource)CR 1 2 3 4 5 6 7 8 apiVersion:cnat.programming-kubernetes.info/v1alpha1kind:Atmetadata:name:example-atspec:schedule:"2019-07-03T02:00:00Z"status:phase:"pending" 相应的 CustomResourceDefinition (CRD) 会是这样: 1 2 3 4 5 6 7 8 9