- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 k8s组件详解之为什么需要pod
pod详解1. 容器的本质隔离(namespace)**简述:**指定该进程需要启动的一组Namespace,容器只能看到当前Namespace限定的资源、文件、设备等,而宿主机以及其他进程透明了。**举例:**如PID namespace(隔离进程号,只能看到本身及子进程),mount namespace(挂载点信息),network Namespace(隔离网络设备及配置)。**存在的问题:**隔离不彻底,在容器中做操作linux内核相关的操作,会对宿主机及其他容器造成影响,如settim
2022-03-11 08:58:02
1817
原创 k8s service详解之南北向网络ingress详解
南北向网络ingress详解1. 为什么需要ingress上一节讲了对外暴露service的方式,但无论哪种方案,每个service都需要有一个负载均衡服务,这样既浪费资源又难以管理。因此需要一个全局的负载均衡器,做南北向流量的入口,转发流量给后端的service2. ingress的实现方式k8s在ingress这层做了一个统一的抽象,实际使用中,需要从社区选择一个具体的ingress controller,把它部署到k8s集群里。这里以常用的nginx ingress controller来说明
2022-03-09 13:46:25
3744
原创 k8s service详解之对外暴露service详解
对外暴露service详解1. 外界连通service说明上一节说明了service机制的相关原理,但service的服务发现机制是在k8s集群内部的,外部访问是无效的。所以我们需要额外的手段解决外部访问k8s创建的service。k8s在1.18中主要提供了3种方式:NodePort,LoadBalancer,ExternalName。2. NodePort详解以hostnames为例,修改其service的yaml配置如下,此时访问这个service只需要访问,k8s集群任一节点ip:303
2022-03-09 13:45:19
1275
原创 k8s service详解之东西向网络service详解
东西向网络service详解1. service介绍service主要解决两个问题,一个是pod的ip不固定,一个是pod的负载均衡需求,某种意义上类似微服务的注册中心,用于pod之间的注册与发现。2. hostnames样例实践因consul使用的是head less,没有负载均衡相关能力,故此处的示例通过官方的hostname样例进行说明。#定义serviceapiVersion: v1kind: Servicemetadata: name: hostnamesspec: se
2022-03-09 13:39:30
770
原创 容器跨主机网络-host-gw解析
容器跨主机网络-host-gw解析1. host-gw介绍host-gw是纯三层的网络方案,目前典型的方案有FLannel的host-gw与Calico。2. host-gw的实现方式flannel的host-gw工作原理比较简单,flannel会在宿主机将每个FLannel子网(比如10.44.2.0/24)的下一跳设置成该子网对应的宿主机IP地址。而子网与主机的信息保存在etcd当中。flanneld只需要watch这些数据,实时更新路由表即可。该模式下,容器通信免除了额外的封包和解包带来的性能
2022-03-09 13:35:10
519
原创 容器跨主机网络-VXLAN解析
容器跨主机网络-VXLAN解析1. VXLAN与UDP的差异前面提到UDP的主要问题在于用户态跟内核态不断转换导致的性能较差,而VXLAN是linux内核支持的网络虚拟化技术,故,VXLAN可以在内核态完成UDP做的封装与解封装工作。2. VXLAN与的实现方式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2G6lTRKH-1646803888800)(/reg/resources/upload/yangkai8_cloud_native/756879408474.
2022-03-09 13:34:12
2562
原创 跨主机网络-UDP解析
容器跨主机网络-UDP解析1. 容器跨主机网络的问题上一节描述了同一宿主机下容器访问宿主机或其他容器的方式,默认docker配置下,不同宿主机之间的容器网络没有任何关联,所以无法做到跨主通信。要解决跨主通信的问题,就需要在已有的主机网络通过软件再构建一个可以把所有容器连通起来的虚拟网络,这个技术就是我们常聊到的overlay network。容器跨主机的访问常用的主流方法有UDP、VXLAN、host-gw2.UDP模式UDP因为性能原因目前基本被弃用,但作为最直接也是最容易的实现,其他方案也基本在
2022-03-09 13:30:45
3033
原创 zuul源码深度解析之四:zuul请求流程
1. ZuulController,ZuulHanlderMapping集成1.1 ZuulHanlderMappingZuulHanlderMapping的初始化情况如下,在spring mvc的DispatcherServelet的initHandlerMapping方法会初始化ZuulHanlderMapping,BeanFactoryUtils.beansOfTypeIncludingAncestors会找type类型为HandlerMapping.class的所有类注入到handlerMapp
2021-02-09 13:52:21
519
原创 zuul源码深度解析之三:RouteLocation路由规则加载
1.RouteLocation详解1.1 RouteLocation关系继承、组合关系见下图1.1.1 SimpleRouteLocator详解SimpleRouteLocator代码相对比较简单,主要看下LocateRoutes方法,根据配置文件(application.yaml)注入到zuulProperties,转换成LinkedHashMap<String, ZuulRoute>,所以SimpleRouteLocator的路由数据是读取配置文件中的数据。protected M
2021-02-08 17:19:00
1163
原创 zuul源码深度解析之二:EnableZuulProxy的初始化
1.EnableZuulProxy的初始化1.1 EnableZuulProxy源码分析跟EnableZuulServer类似,引入了ZuulProxyMarkerConfiguration类@EnableCircuitBreaker@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Import(ZuulProxyMarkerConfiguration.class)public @interface EnableZuulP
2021-02-08 15:55:00
858
原创 zuul源码深度解析之一:enableZuulServer的初始化
zuul源码深度解析(一)- enableZuulServer的初始化前言1、zuul的初始化1.1、@的初始化1.1.1、EnableZuulServer源码分析1.1.2、ZuulServerMarkerConfiguration源码分析1.1.3、ZuulServerAutoConfiguration源码分析前言基于spring cloud分析,对应pom文件如下:<dependency> <groupId>org.springframework.cloud<
2021-02-05 16:32:21
385
java实现验证码
2012-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人