一个IP包的旅行 —— K8s 网络之 Calico 浅度解构
· ☕ 6 分钟
前言
学习 Kubernetes 就像玩动作游戏,当我高高兴兴地打败了一关的 BOSS 后总以为是大结局了,谁知道后面还有更大的BOSS 出现。 当我以为学习完容器化、Linux cgoup / namespace / docker 后,就可以大结局了,谁知道后面还有 CNI。
学习 Kubernetes 就像玩动作游戏,当我高高兴兴地打败了一关的 BOSS 后总以为是大结局了,谁知道后面还有更大的BOSS 出现。 当我以为学习完容器化、Linux cgoup / namespace / docker 后,就可以大结局了,谁知道后面还有 CNI。
Format is "java -Dotel.instrumentation.methods.include=my.package.MyClass1[method1,method2];my.package.MyClass2[method3]"
[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) cost in 31 ms.
[arthas@16908]$ classloader
 name                                                              numberOfInstances  loadedCountTotal                 
 org.eclipse.jetty.webapp.WebAppClassLoader                        4                  24687                            
 BootstrapClassLoader                                              1                  4341                             
 io.opentelemetry.javaagent.bootstrap.AgentClassLoader             1                  3502                             
 com.taobao.arthas.agent.ArthasClassloader                         1                  1430                             
 java.net.URLClassLoader                                           4                  1252                             
 sun.misc.Launcher$AppClassLoader                                  1                  570                              
 sun.reflect.DelegatingClassLoader                                 378                378                              
 sun.misc.Launcher$ExtClassLoader                                  1                  56                               
 jnr.ffi.provider.jffi.AsmClassLoader                              6                  8                                
 com.mycom.sig.foundation.servicediscovery.ExtendedClassLoader  4                  6                                
 com.mycom.ece.common.svcfinder.ExtendedClassLoader             1                  1  
 | 
 | 
[arthas@16908]$ sc io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumentationModule
io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumentationModule
Affect(row-cnt:1) cost in 54 ms.
[arthas@16908]$ sc -d io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumentationModule
 class-info        io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumentationModule                      
 code-source       /                                                                                                   
 name              io.opentelemetry.javaagent.instrumentation.methods.MethodInstrumentationModule                      
 isInterface       false                                                                                               
 isAnnotation      false                                                                                               
 isEnum            false                                                                                               
 isAnonymousClass  false                                                                                               
 isArray           false                                                                                               
 isLocalClass      false                                                                                               
 isMemberClass     false                                                                                               
 isPrimitive       false                                                                                               
 isSynthetic       false                                                                                               
 simple-name       MethodInstrumentationModule                                                                         
 modifier          public                                                                                              
 annotation                                                                                                            
 interfaces                                                                                                            
 super-class       +-io.opentelemetry.javaagent.tooling.InstrumentationModule                                          
                     +-java.lang.Object                                                                                
 class-loader      +-io.opentelemetry.javaagent.bootstrap.AgentClassLoader@379619aa                                    
 classLoaderHash   379619aa 
[arthas@16908]$ sc -d io.opentelemetry.javaagent.instrumentation.methods.MethodTracer
 class-info        io.opentelemetry.javaagent.instrumentation.methods.MethodTracer                                     
 code-source                                                                                                           
 name              io.opentelemetry.javaagent.instrumentation.methods.MethodTracer                                     
 isInterface       false                                                                                               
 isAnnotation      false                                                                                               
 isEnum            false                                                                                               
 isAnonymousClass  false                                                                                               
 isArray           false                                                                                               
 isLocalClass      false                                                                                               
 isMemberClass     false                                                                                               
 isPrimitive       false                                                                                               
 isSynthetic       false                                                                                               
 simple-name       MethodTracer                                                                                        
 modifier          public                                                                                              
 annotation                                                                                                            
 interfaces                                                                                                            
 super-class       +-io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.BaseTracer                           
                     +-java.lang.Object                                                                                
 class-loader      +-WebAppClassLoader=Server Initiated@1ccb04b3                                                       
                     +-java.net.URLClassLoader@69cd1085                                                                
                       +-sun.misc.Launcher$AppClassLoader@18b4aac2                                                     
                         +-sun.misc.Launcher$ExtClassLoader@41fa769c                                                   
 classLoaderHash   1ccb04b3                                                                                            
 class-info        io.opentelemetry.javaagent.instrumentation.methods.MethodTracer                                     
 code-source                                                                                                           
 name              io.opentelemetry.javaagent.instrumentation.methods.MethodTracer                                     
 isInterface       false                                                                                               
 isAnnotation      false                                                                                               
 isEnum            false                                                                                               
 isAnonymousClass  false                                                                                               
 isArray           false                                                                                               
 isLocalClass      false                                                                                               
 isMemberClass     false                                                                                               
 isPrimitive       false                                                                                               
 isSynthetic       false                                                                                               
 simple-name       MethodTracer                                                                                        
 modifier          public                                                                                              
 annotation                                                                                                            
 interfaces                                                                                                            
 super-class       +-io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.BaseTracer                           
                     +-java.lang.Object                                                                                
 class-loader      +-WebAppClassLoader=OAuth Server@10d98940                                                           
                     +-java.net.URLClassLoader@69cd1085                                                                
                       +-sun.misc.Launcher$AppClassLoader@18b4aac2                                                     
                         +-sun.misc.Launcher$ExtClassLoader@41fa769c                                                   
 classLoaderHash   10d98940                                                                                            
io.opentelemetry.instrumentation.api.config.Config
->
sc -d io.opentelemetry.javaagent.shaded.instrumentation.api.config.Config
[arthas@16908]$ sc -d io.opentelemetry.javaagent.shaded.instrumentation.api.config.Config                                                                                            
 class-info        io.opentelemetry.javaagent.shaded.instrumentation.api.config.Config                                 
 code-source                                                                                                           
 name              io.opentelemetry.javaagent.shaded.instrumentation.api.config.Config                                 
 isInterface       false                                                                                               
 isAnnotation      false                                                                                               
 isEnum            false                                                                                               
 isAnonymousClass  false                                                                                               
 isArray           false                                                                                               
 isLocalClass      false                                                                                               
 isMemberClass     false                                                                                               
 isPrimitive       false                                                                                               
 isSynthetic       false                                                                                               
 simple-name       Config                                                                                              
 modifier          abstract,public                                                                                     
 annotation                                                                                                            
 interfaces                                                                                                            
 super-class       +-java.lang.Object                                                                                  
 class-loader                                                                                                          
 classLoaderHash   null