Istio
文章平均质量分 90
Istio
BasicLab基础架构实验室
本人深耕基础架构领域,曾在国内500强大厂研发企业级百亿量级吞吐中间件,擅长Java语言、Go语言、Python语言、C语言、NodeJS、Web、Linux、深度学习、大数据、云原生等
展开
-
Istio 运行错误 failed to update resource with server-side apply for obj 问题解决
导致 istio-operator 内部使用了 server side apply 而更新失败,修复的话就直接把这个参数从 api-server 的启动中去掉就可以了。仔细看就可以发现错误日志抛出的内容:failed to update resource with server-side apply for obj。如果是 kubeadm 部署的 k8s,kube-apiserver 配置在下面默认路径中或者更新参数。运行之后 istio-operator 的日志就抛出下面错误,而且会一直重启。原创 2023-10-27 10:35:11 · 364 阅读 · 2 评论 -
Istio 自动注入 sidecar 失败导致无法访问webhook服务
注意:如果是用kubeadm安装的修改内容如果错误,可能会导致k8s集群中的kube-apiserver全部挂掉,导致无法访问集群,这时就需要从官网下载kube-apiserver二进制文件,重新拉起一个进程,再执行删除pod的操作。最近工作中在部署Istio环境的过程中发现官方示例启动的pod不能访问不到Istio的webhook,这个问题也是困扰了我一天,我把他归类到sidecar注入失败的情况下,特此记录,便于日后查阅。安装 Istio 时,设置 autoInject: disabled。原创 2023-10-25 15:58:56 · 899 阅读 · 7 评论 -
Istio1.12.1 Sidecar注入配置
如果两个标签都未设置,不会注入Pod,例如我们新建一个namespace不加任何标签,然后在此namespace下新建一个Pod也不加任何标签,发现创建出来的Pod只有一个容器,由此可以得出默认情况下如果两个标签都未设置,不会注入Pod,此例子比较简单本文就不再测试。查看被注入的 Pod 的细节。机制来限定需要启动自动注入的范围,也可以通过注解的方式针对每个 pod 来单独启用和禁用自动注入功能。机制在 pod 创建的时候将 sidecar 的容器和卷添加到每个 pod 的模版里。通过在 pod 上配置。原创 2022-10-08 15:57:32 · 860 阅读 · 0 评论 -
Istio 使用Spring Boot + GRPC构建部署微服务
作为和云原生技术的忠实拥护者,我却一直没有开发过Service Mesh的应用。正好最近受够了Spring Cloud的“折磨”,对Kubernetes也可以熟练使用了,而且网上几乎没有Spring Boot微服务部署到Istio的案例,我就开始考虑用Spring Boot写个微服务的Demo并且部署到Istio。项目本身不复杂,就是发送一个字符串并且返回一个字符串的最简单的Demo。原创 2022-10-08 15:55:54 · 2159 阅读 · 0 评论 -
基于SpringCloud的微服务架构演变
但是这样做的不稳定之处,就在于git本身是内网开发用的代码管理工具,如果让线上实时服务直接读取,很容易将git仓库拉挂了,所以,我们在实际的运维过程中,是通过git进行配置文件的版本控制,区分线上分支/master与功能开发分支/feature,并且在完成mr后还需要手工(通过发布平台触发)同步一遍配置,过程是将新的master分支的配置同步一份到各个configserver节点所在主机的本地路径,这样configserver服务节点就可以通过其本地目录获取配置文件,而不用多次调用网络获取配置文件了。原创 2022-10-08 15:27:34 · 246 阅读 · 0 评论 -
Istio微服务架构时代
在微服务架构盛行的今天,作为一名互联网技术从业人员,对于微服务的概念相信大家都已经耳熟能详了!而至于像Spring Cloud这样的微服务框架,因为大部分互联网公司都在此基础上构建过第一代微服务体系,所以对于做Java 的同学来说,Spring Cloud微服务体系应该是非常熟悉了!几年前我也写过一篇介绍我当时所在公司——摩拜单车基于Spring Cloud框架构建微服务体系的文章,感兴趣的可以戳下看看。这里并不是说其他语言栈就没有构建微服务体系的框架,原创 2022-10-08 15:24:14 · 1094 阅读 · 0 评论 -
Istio 微服务架构实现服务间gRPC通信
如上所示k8s发布文件,主要是定义了Service服务访问资源及Deployment容器编排资源,这两种资源都是Kubernetes的资源类型,在容器编排资源和服务资源中分别定义了gRPC的访问端口,通过这种设置,后续gRPC客户端通过Service资源访问服务时,就能够进行端口映射了!如上所示配置代码,通过依服务配置文件指定的gRPC服务端地址+端口,实现对gRPC客户端的配置,其中主要包括启动和停止方法,并在启动的过程中初始化gRPC服务客户端的桩代码的实例(可考虑更优雅地实现)。原创 2022-10-08 15:15:26 · 1692 阅读 · 2 评论 -
Istio Grpc框架原理
grpc原理gRPC 是谷歌推出的一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。rpc框架rpc全称是Remote Procedure Call,即远程调用服务器的方法,它将服务器端的请求变成了本地方法调用。其屏蔽底层的传输方式(TCP/UDP)、序列化方式(XML/Json/ 二进制)和通信细节。可以看成是对数据的传输、序列化以及通信做了一层封装。服务调用者可以像调用本地接口一样调用远程的服务,而不需要关心底层通信细节和调用过程。原创 2022-10-08 15:09:39 · 450 阅读 · 0 评论 -
istio 防故障流量控制
Istio容灾比如我们有个桶,桶里有两个开关,一个往外出水,一个网内注水,当出水的速度慢于注水的速度时,到一定时间水就会从桶里溢出。如果我们限制注水速率,就可以防止水从桶里溢出,这就是限流。 具体到软件层面,我们把请求速率看做是注水,把系统cpu,内存等资源看做是放水,当请求速率过快,消耗太多资源时系统就可能崩溃。软件限流就是限制tps或qps指标,以达到保护系统的目的,虽然可能部分用户无法服务,但是系统整体还是健康的,还可以对外部提供服务,不是整体挂掉。就像一个漏斗以下,下面小,上面大。漏桶流出的速率被原创 2022-10-08 15:03:51 · 2333 阅读 · 0 评论 -
Service Mesh对比:Istio与Linkerd
根据CNCF的最新年度调查,很多组织对Service Mesh表现出很高的兴趣,并且有一部分已经在生产环境中使用它们。你可能不知道Linkerd是市场上第一个Service Mesh,但是Istio使Service Mesh更受欢迎。这两个项目都是最前沿的项目,而且竞争非常激烈,因此很难选择一个项目。在本篇文章中,我们将和你一起了解Istio和Linkerd架构,组件,并比较它们的产品以帮助你做出明智的决定。Service Mesh简介在过去的几年中,微服务架构已成为软件设计中流行的样式。在这种原创 2020-10-24 10:10:35 · 3221 阅读 · 0 评论 -
什么是服务网格?
当组织将应用程序分解为多个较小的服务组件时,即称为微服务。与传统的单体应用方式相比,微服务架构将每个微服务视为独立的实体/模块,从根本上有助于简化其代码和相关基础架构的维护。应用程序的每个微服务还可以使用不同的技术编写,还可以独立地部署,优化和管理。尽管从理论上讲,微服务架构特别有利于复杂的大型应用程序的构建,但是,它也被广泛用于小型应用程序的构建(例如,简单的购物车),还能够满足进一步扩展的需求。微服务架构的好处可以通过不同的技术栈来开发和部署应用程序中的各个微服务。 每个微服务都可以独立优原创 2020-10-24 10:06:37 · 1256 阅读 · 0 评论 -
Istio 快速入门部署
本文为 istio 快速入门部署,一般用于演示环境。一、准备工作k8s集群要支持istio自动注入,需要检查api server的启动参数,确保admission control部分按顺序启用MutatingAdmissionWebhook与ValidatingAdmissionWebhook; 通过kube-apiserver -h | grep enable-admission-plugins查看已启用的admission control Which plugins are...原创 2020-10-24 10:01:01 · 1193 阅读 · 2 评论