<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[soonyigkka的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/soonyigkka</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; soonyigkka]]></copyright><item><title><![CDATA[k8s组件详解之为什么需要pod]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123416148</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123416148</guid><author>soonyigkka</author><pubDate>Fri, 11 Mar 2022 08:58:02 +0800</pubDate><description><![CDATA[pod详解
1. 容器的本质


隔离（namespace）
**简述：**指定该进程需要启动的一组Namespace，容器只能看到当前Namespace限定的资源、文件、设备等，而宿主机以及其他进程透明了。
**举例：**如PID namespace（隔离进程号，只能看到本身及子进程），mount namespace（挂载点信息），network Namespace（隔离网络设备及配置）。
**存在的问题：**隔离不彻底，在容器中做操作linux内核相关的操作，会对宿主机及其他容器造成影响，如settim]]></description><category></category></item><item><title><![CDATA[k8s service详解之南北向网络ingress详解]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375700</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375700</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:46:25 +0800</pubDate><description><![CDATA[南北向网络ingress详解
1. 为什么需要ingress
上一节讲了对外暴露service的方式，但无论哪种方案，每个service都需要有一个负载均衡服务，这样既浪费资源又难以管理。因此需要一个全局的负载均衡器，做南北向流量的入口，转发流量给后端的service
2. ingress的实现方式
k8s在ingress这层做了一个统一的抽象，实际使用中，需要从社区选择一个具体的ingress controller，把它部署到k8s集群里。这里以常用的nginx ingress controller来说明]]></description><category></category></item><item><title><![CDATA[k8s service详解之对外暴露service详解]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375668</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375668</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:45:19 +0800</pubDate><description><![CDATA[对外暴露service详解
1. 外界连通service说明
上一节说明了service机制的相关原理，但service的服务发现机制是在k8s集群内部的，外部访问是无效的。所以我们需要额外的手段解决外部访问k8s创建的service。k8s在1.18中主要提供了3种方式：NodePort，LoadBalancer，ExternalName。
2. NodePort详解


以hostnames为例，修改其service的yaml配置如下,此时访问这个service只需要访问，k8s集群任一节点ip:303]]></description><category></category></item><item><title><![CDATA[k8s service详解之东西向网络service详解]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375493</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375493</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:39:30 +0800</pubDate><description><![CDATA[东西向网络service详解
1. service介绍
service主要解决两个问题，一个是pod的ip不固定，一个是pod的负载均衡需求，某种意义上类似微服务的注册中心，用于pod之间的注册与发现。
2. hostnames样例实践
因consul使用的是head less，没有负载均衡相关能力，故此处的示例通过官方的hostname样例进行说明。
#定义service
apiVersion: v1
kind: Service
metadata:
  name: hostnames
spec:
  se]]></description><category></category></item><item><title><![CDATA[容器跨主机网络-host-gw解析]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375424</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375424</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:35:10 +0800</pubDate><description><![CDATA[容器跨主机网络-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这些数据，实时更新路由表即可。该模式下，容器通信免除了额外的封包和解包带来的性能]]></description><category></category></item><item><title><![CDATA[容器跨主机网络-VXLAN解析]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375367</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375367</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:34:12 +0800</pubDate><description><![CDATA[容器跨主机网络-VXLAN解析
1. VXLAN与UDP的差异
前面提到UDP的主要问题在于用户态跟内核态不断转换导致的性能较差，而VXLAN是linux内核支持的网络虚拟化技术，故，VXLAN可以在内核态完成UDP做的封装与解封装工作。
2. VXLAN与的实现方式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2G6lTRKH-1646803888800)(/reg/resources/upload/yangkai8_cloud_native/756879408474.]]></description><category></category></item><item><title><![CDATA[跨主机网络-UDP解析]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375328</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375328</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:30:45 +0800</pubDate><description><![CDATA[容器跨主机网络-UDP解析
1. 容器跨主机网络的问题
上一节描述了同一宿主机下容器访问宿主机或其他容器的方式，默认docker配置下，不同宿主机之间的容器网络没有任何关联，所以无法做到跨主通信。要解决跨主通信的问题，就需要在已有的主机网络通过软件再构建一个可以把所有容器连通起来的虚拟网络，这个技术就是我们常聊到的overlay network。容器跨主机的访问常用的主流方法有UDP、VXLAN、host-gw
2.UDP模式
UDP因为性能原因目前基本被弃用，但作为最直接也是最容易的实现，其他方案也基本在]]></description><category></category></item><item><title><![CDATA[宿主机下容器的网络访问解析]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123375183</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123375183</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 13:23:56 +0800</pubDate><description><![CDATA[宿主机上容器的互访]]></description><category></category></item><item><title><![CDATA[k8s搭建有状态应用consul]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/123370134</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/123370134</guid><author>soonyigkka</author><pubDate>Wed, 09 Mar 2022 10:05:36 +0800</pubDate><description><![CDATA[k8s搭建有状态应用consul]]></description><category></category></item><item><title><![CDATA[zuul源码深度解析之四：zuul请求流程]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/113767056</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/113767056</guid><author>soonyigkka</author><pubDate>Tue, 09 Feb 2021 13:52:21 +0800</pubDate><description><![CDATA[1. ZuulController，ZuulHanlderMapping集成
1.1 ZuulHanlderMapping
ZuulHanlderMapping的初始化情况如下，在spring mvc的DispatcherServelet的initHandlerMapping方法会初始化ZuulHanlderMapping，BeanFactoryUtils.beansOfTypeIncludingAncestors会找type类型为HandlerMapping.class的所有类注入到handlerMapp]]></description><category></category></item><item><title><![CDATA[zuul源码深度解析之三：RouteLocation路由规则加载]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/113759188</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/113759188</guid><author>soonyigkka</author><pubDate>Mon, 08 Feb 2021 17:19:00 +0800</pubDate><description><![CDATA[1.RouteLocation详解
1.1 RouteLocation关系
继承、组合关系见下图

1.1.1 SimpleRouteLocator详解
SimpleRouteLocator代码相对比较简单，主要看下LocateRoutes方法，根据配置文件（application.yaml）注入到zuulProperties，转换成LinkedHashMap&lt;String, ZuulRoute&gt;,所以SimpleRouteLocator的路由数据是读取配置文件中的数据。
protected M]]></description><category></category></item><item><title><![CDATA[zuul源码深度解析之二：EnableZuulProxy的初始化]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/113757686</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/113757686</guid><author>soonyigkka</author><pubDate>Mon, 08 Feb 2021 15:55:00 +0800</pubDate><description><![CDATA[1.EnableZuulProxy的初始化
1.1 EnableZuulProxy源码分析
跟EnableZuulServer类似，引入了ZuulProxyMarkerConfiguration类
@EnableCircuitBreaker
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ZuulProxyMarkerConfiguration.class)
public @interface EnableZuulP]]></description><category></category></item><item><title><![CDATA[zuul源码深度解析之一：enableZuulServer的初始化]]></title><link>https://blog.youkuaiyun.com/soonyigkka/article/details/113650983</link><guid>https://blog.youkuaiyun.com/soonyigkka/article/details/113650983</guid><author>soonyigkka</author><pubDate>Fri, 05 Feb 2021 16:32:21 +0800</pubDate><description><![CDATA[zuul源码深度解析（一）- enableZuulServer的初始化前言1、zuul的初始化1.1、@的初始化1.1.1、EnableZuulServer源码分析1.1.2、ZuulServerMarkerConfiguration源码分析1.1.3、ZuulServerAutoConfiguration源码分析
前言
基于spring cloud分析，对应pom文件如下：
&lt;dependency&gt;
			&lt;groupId&gt;org.springframework.cloud&lt;]]></description><category></category></item></channel></rss>