BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
Istio实战(十三)-SideCar注入
可以看出,istio默认sidecar注入规则是,namespace带有标签才会注入sidecar。默认情况,是没有设置。原创 2023-10-31 09:19:06 · 447 阅读 · 0 评论 -
Istio实战(十二)-Istio 延长自签发证书的有效期
因为历史原因,Istio 的自签发证书只有一年的有效期。如果你选择使用 Istio 的自签发证书,就需要在它们过期之前订好计划进行根证书的更迭。根证书过期可能会导致集群范围内的意外中断。我们认为每年更换根证书和密钥是一个安全方面的最佳实践,我们会在后续内容中介绍如何完成根证书和密钥的轮换过程。为了了解根证书的剩余有效期,请参考下面。我们提供了下面的过程,用于完成根证书更新工作。Envoy 进程不需要进行重启来载入新的根证书,也就不会影响长链接了。原创 2023-10-30 18:07:21 · 418 阅读 · 0 评论 -
Istio实战(十一)-Envoy 请求解析(下)
Envoy也是istio的核心组件之一,以 sidecar 的方式与服务运行在一起,对服务的流量进行拦截转发,具有路由,流量控制等等强大特性。本系列文章,我们将不局限于istio,envoy的官方文档,从源码级别切入,分享Envoy启动、流量劫持、http 请求处理流程的进阶应用实例,深度分析Envoy架构。它与应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络。当基础架构中的所有服务流量都通过 Envoy 网格时,通过一致的可观测性,很容易地查看问题区域,调整整体性能。原创 2023-10-30 13:48:27 · 233 阅读 · 0 评论 -
Istio实战(十)-Envoy 请求解析(上)
本系列文章,我们将不局限于istio,envoy的官方文档,从源码级别切入,分享Envoy启动、流量劫持、http 请求处理流程的进阶应用实例,深度分析Envoy架构。envoy当中基于libevent进行封装了各种文件,定时器事件等操作,以及dispatch对象的分发,和延迟析构,worker启动,worker listener绑定等部分不在这里作解读,后续有空可以单独再进行分析。当基础架构中的所有服务流量都通过 Envoy 网格时,通过一致的可观测性,很容易地查看问题区域,调整整体性能。原创 2023-10-30 13:46:15 · 236 阅读 · 0 评论 -
Istio实战(九)-Envoy 流量劫持
Envoy也是istio的核心组件之一,以sidecar的方式与服务运行在一起,对服务的流量进行拦截转发,具有路由,流量控制等等强大特性。目前 Istio 使用 iptables 实现透明劫持,由于需要借助于 conntrack 模块实现连接跟踪,在连接数较多的情况下,会造成较大的消耗,同时可能会造成 track 表满的情况,为了避免这个问题,业内有 ebpf 的加速方案,报文可以不过内核协议栈进行加速穿越。进入sidecar的网络空间,这里介绍的是iptables redirect模式。原创 2023-10-30 13:44:56 · 405 阅读 · 0 评论 -
Istio实战(八)- Istio 动态准入 Webhook 配置
准入 Webhook 是 HTTP 方式的回调,接收准入请求并对其进行相关操作。可定义两种类型的准入 Webhook,Validating 准入 Webhook 和 Mutating 准入 Webhook。使用 Validating Webhook,可以通过自定义的准入策略来拒绝请求;使用 Mutating Webhook,可以通过自定义默认值来修改请求。Istio 使用验证 Istio 配置,使用自动将 Sidecar 代理注入至用户 Pod。原创 2023-10-25 16:15:41 · 225 阅读 · 0 评论 -
Istio实战(七)- Bookinfo 部署
Istio部署Bookinfo再确认Bookinfo工作已经正常,由于我将Bookinfo放在hr的namespace中,如果使用default命名空间或者其他命名空间,将-n hr部分替换即可原创 2023-10-25 16:08:37 · 259 阅读 · 0 评论 -
Istio实战(六)- Istio 部署
Ingress再根据kiali-virtualservice.yaml的配置将流量转给kiali的service。其他命名空间下可能还有一些由服务网格创建的残余的sidecar.可以单独进行删除.这里就不一一演示了.kiali的service再将流量转给后端的ep,最后根据ep对应的pod进行响应。Ingress的svc将流量转给Ingress的pod的20001。此时只剩下了2个数据平面的gateway和控制平面的istiod。此时在主机的hosts中绑定kiali的域名,进程访问测试。原创 2023-10-25 16:05:43 · 248 阅读 · 0 评论 -
Istio实战(一)-Istio 是什么?
从四年前开始就一直在关注着Kubernetes的技术发展,随着Kubernetes技术的成熟,逐渐衍生出了需要的配套服务,本专栏将要讲的Istio也是其中较为出名的配套服务,Istio被称为服务网格技术,服务网格技术是云原生(Cloud Native)时代的产物,是云原生应用新型架构模式,结合云计算产品发展出的新的制高点。云原生容器技术和微服务应用的出现,推动了人们对服务网格的需求,服务网格作为一种云原生应用结构模式中的重要一环,为全世界上万家企业的微服务弹性云计算保驾护航。还是之前的那句话,我相信原创 2021-05-14 19:41:34 · 545 阅读 · 1 评论 -
Istio实战(四)-非侵入的流量治理
流量治理是一个非常宽泛的话题,例如:动态修改服务间访问的负载均衡策略,比如根据某个请求特征做会话保持;同一个服务有两个版本在线,将一部分流量切到某个版本上;对服务进行保护,例如限制并发连接数、限制请求数、隔离故障服务实例等;动态修改服务中的内容,或者模拟一个服务运行故障等。在Istio中实现这些服务治理功能时无须修改任何应用的代码。较之微服务的SDK方式,Istio以一种更 轻便、透明的方式向用户提供了这些功能。用户可以用自己喜欢的任意语言和框架进行开发,专注于自己的业务,完全不用嵌入任何治理逻原创 2021-05-14 20:37:15 · 420 阅读 · 2 评论 -
Istio实战(三)-Istio 的工作原理和组件
Istio作为一个 Service Mesh 开源项目,其中最重要的功能就是对网格中微服务之间的流量进行管理,包括服务发现,请求路由和服务间的可靠通信。Istio 实现了Service Mesh的控制面,并整合Envoy开源项目作为数据面的sidecar,一起对流量进行控制。Istio 体系中流量管理配置下发以及流量规则如何在数据面生效的机制相对比较复杂,通过官方文档容易管中窥豹,难以了解其实现原理。本文尝试结合系统架构、配置文件和代码对Istio流量管理的架构和实现机制进行分析,以达到从整体上理解 P原创 2021-05-14 20:06:48 · 776 阅读 · 5 评论 -
Istio实战(二)-Istio 与 Kubernetes 行业主流?
Istio最大化地利用了Kubernetes这个基础设施,与之叠加在一起形成了一个更强大的用于进行服务运行和治理的基础设施,并提供了更透明的用户体验。一、Istio 与 Kubernetes关联1、数据面数据面Sidecar运行在Kubernetes的Pod里,作为一个Proxy和业务容器部署在一起。在服务网格的定义中要求应用程序在运行的时候感知不到Sidecar的存在。而基于Kubernetes的一个Pod多个容器的优秀设计使得部署运维对用户透明,用户甚至感知不到部署Sidecar的过程。用户原创 2021-05-14 19:55:39 · 479 阅读 · 5 评论 -
Istio实战(五)-故障熔断机制
在上文中我们提到了 Istio 的熔断机制,本文将带领大家详细了解一下 Istio 都具备哪些熔断方式。一、Hystrix熔断关于熔断,大家比较熟悉的一个落地产品就是Hystrix。Hystrix是Netflix提供的众多服务治理工具集中的一个,在形态上是一个Java库,在2011年出现,后来多在Spring Cloud中配合其他微服务治理工具集一起使用。Hystrix的主要功能包括:阻断级联失败,防止雪崩;提供延迟和失败保护;快速失败并即时恢复;对每个服务调用都进行隔离;对每个服务都原创 2021-05-14 20:38:36 · 891 阅读 · 0 评论