istio
文章平均质量分 83
上官浩仁
简单,快乐。
展开
-
Istio Java SDK API - 路由-流量拆分
案例80% v1版本 20%v2Istio源码配置环境参考 Istio Java SDK API -连接访问博文注意点add:说明该资源是 [ ] 资源with: 说明该资源是 { } 资源源码package com.micro.istiodemo.test;import me.snowdrop.istio.api.networking.v1alpha3.DestinationRule;import me.snowdrop.istio.api.ne...原创 2020-06-17 16:45:10 · 514 阅读 · 0 评论 -
Istio Java SDK API - 资源访问-VirtualService/Gateway/DestinationRule/ServiceEntry
环境参考上一篇文章Java如何连接Istio参考上一篇文章访问Isito资源VirtualService Gateway DestinationRule ServiceEntry项目源码package com.you.micro.istiodemo.test;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.O...原创 2020-05-29 16:10:39 · 949 阅读 · 1 评论 -
Istio Java SDK API - 连接访问
环境kubernetes:1.18 Docker:19.03 Istio:1.4.4 IntelliJ Java:2020 kubernetes-client:4.10.1 istio-client:1.1.1 Java:OpenJDK13 SpringBoot:2.1.14.RELEASE工程说明Java访问Istio和访问Kubernetes一样,通过istio-java-client链接。下面的例子为,链接HTTPS的kubernetes。其他方式类似注意点...原创 2020-05-29 15:50:39 · 3029 阅读 · 0 评论 -
第十八部分 Istio熔断
简述本章节讲述用连接、请求以及外部检测来进行熔断配置的过程。断路器是创建弹性微服务应用程序的重要模式。断路器允许您编写限制故障、延迟峰值以及其他不良网络特性影响的应用程序。前提正确安装Istio。 安装httpbin 示例应用,它是后端服务。kubectl apply -f <(istioctl kube-inject -f samples/httpbin/httpbin....原创 2019-05-14 20:19:48 · 1177 阅读 · 0 评论 -
第十九部分 Istio镜像功能
简述流量镜像,也称为影子流量,是一个以尽可能低的风险为生产带来变化的强大的功能。镜像会将实时流量的副本发送到镜像服务。镜像流量发生在主服务的关键请求路径之外。在此任务中,首先把所有流量路由到 v1 测试服务。然后使用规则将一部分流量镜像到 v2。前提正确部署Istio服务。 安装两个版本httpbin服务。httpbin-v1:cat <<EOF | istioc...原创 2019-05-15 09:22:04 · 590 阅读 · 0 评论 -
第二十部分 Istio HTTP服务的访问控制
概述Istio采用基于角色的访问控制方式,本文内容涵盖了为 HTTP 设置访问控制的各个环节。前提了解访问控制基本概念 Istio启用认证功能 部署Bookinfo实例应用创建Service Account来运行 Bookinfo 中的微服务,为了给不同的微服务赋予不同的访问权限。 创建 Service Account bookinfo-productpage,并用这一身份重新...原创 2019-05-15 17:20:07 · 1660 阅读 · 0 评论 -
第二十一部分 Istio策略检查
简述如何启用 Istio 策略检查功能。初始安装Helm 安装选项,要安装启用策略检查功能的 Istio,请使用 --set global.disablePolicyChecks=false 使用演示配置安装 Istio,默认启用策略检查已经安装Istio检查Istio的策略检查状态。kubectl -n istio-system get cm istio -o json...原创 2019-05-15 17:31:43 · 529 阅读 · 0 评论 -
第二十二部分 Istio速率限制
概述如何使用 Istio 动态的对服务通信进行速率限制。前提正确安装Istio 确保启用Istio策略检查 部署 Bookinfo 示例应用 将所有服务的默认版本设置为 v1kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yamlYAML具体内容如下:apiVersion: ne...原创 2019-05-16 15:15:57 · 812 阅读 · 0 评论 -
第二十三部分 Istio 收集指标和日志
概述本文展示了配置 Istio,对网格内服务的遥测数据进行自动收集的方法。在任务的后一部分,会创建一个新的指标以及新的日志流,并在网格内的服务被调用时触发收集过程。前提正确部署Istio 部署Bookinfo 示例应用 Mixer 使用的是缺省配置(--configDefaultNamespace=istio-system)。如果使用的是不同的值,需要根据实际情况对文中提及的的配置...原创 2019-05-16 15:30:58 · 2201 阅读 · 0 评论 -
第二十四部分 Istio服务可视化
简述本文讲述对Istio 服务进行多角度的可视化。首先要安装 Kiali 插件,然后使用 Web 界面来查看网格内的服务图以及 Istio 配置对象;最后还要通过 Kiali API 用 JSON 格式生成服务图数据。任务中用到Bookinfo 示例应用,它作为本次测试案例。前提安装Kiali安装Istio 时中已经安装Kiali,请参考之前文档,此处省略。安装部署 Bo...原创 2019-05-16 17:20:23 · 1652 阅读 · 0 评论 -
第十三部分 Istio流量转移
简述本部分将介绍如何逐步将流量从一个版本的微服务迁移到另一个版本。例如,将流量从旧版本迁移到新版本。一个常见的用例是将流量从一个版本的微服务逐渐迁移到另一个版本。在 Istio 中,您可以通过配置一系列规则来实现此目标,这些规则将一定百分比的流量路由到一个或另一个服务。在此任务中,您将 50% 的流量发送到 reviews:v1,另外 50% 的流量发送到 reviews:v3。然后将 100...原创 2019-05-13 10:26:01 · 279 阅读 · 0 评论 -
第十四部分 Istio TCP 流量转移
简述本文介绍如何优雅的将微服务中的 TCP 流量从一个版本迁移到另一个版本。例如将 TCP 流量从旧版本迁移到一个新版本。在 Istio 中可以通过定义一组规则,将 TCP 流量在不同服务之间进行分配。此示例首先把 100% 的 TCP 流量发送到 tcp-echo:v1;下一步就是使用 Istio 的路由分配能力,把 20% 的流量分配到 tcp-echo:v2 服务之中。前提正确安...原创 2019-05-13 10:47:06 · 1208 阅读 · 1 评论 -
第十七部分 Istio控制 Egress 流量
简述默认情况下,Istio服务Mesh中的Pod,由于其 iptables 将所有外发流量都透明的转发给了 Sidecar,所以这些集群内的服务无法访问集群之外的 URL,而只能处理集群内部的目标。本文主要介绍如何让Istio 集群中的服务访问外部的服务,即如何通过定义 ServiceEntry 来调用外部服务简单的对 Istio 进行配置,或要求其直接放行对特定 IP 范围的访问。前提...原创 2019-05-14 20:05:36 · 1449 阅读 · 0 评论 -
第十部分 Istio部署Bookinfo示例应用
应用介绍部署一个样例应用,它由四个单独的微服务构成,用来演示多种 Istio 特性。这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。Bookinfo 应用分为四个单独的微服务:productpage :productpage 微服务会调用 details 和 reviews 两个微服务,用来生成页面。...原创 2019-05-07 11:06:16 · 869 阅读 · 0 评论 -
第十六部分 Istion控制 Ingress 流量
简介在 Kubernetes 环境中,Kubernetes Ingress 资源 用于指定应在集群外部公开的服务。在 Istio 服务Mesh中,更好的方法(也适用于 Kubernetes 和其他环境)是使用不同的配置模型,即Istio Gateway 。Gateway允许Istio功能(例如,监控和路由规则)应用于进入集群的流量。本文描述如何配置 Istio Ingress Gatewa...原创 2019-05-13 18:36:56 · 764 阅读 · 1 评论 -
第四部分 Istio安全介绍和架构
概述将单一的应用程序分解成微服务有很多好处,包括更好的灵活性、可伸缩性以及服务复用的能力。但是,微服务也有特殊的安全需求:为了抵御中间人攻击,需要流量加密 为了提供灵活的服务访问控制,需要双向TLS和细粒的访问策略。 要审核谁在什么时候做了什么,需要审计工作Istio Security 尝试提供全面的安全解决方案来解决所有这些问题。Istio 安全性可以缓解针对您的数据、端点、通信和...原创 2019-04-28 11:17:58 · 1332 阅读 · 0 评论 -
第二部分 Istio流量管理概述
流量管理使用 Istio 的流量管理模型,本质上是将流量与基础设施扩容解耦,让运维人员可以通过Pilot指定流量遵循什么规则,而不是指定哪些 pod/VM 应该接收流量。例如,你可以将10%的流量转发到测试版本服务,或根据请求的内容将流量发送到特定版本。如下图所示:将流量从基础设施扩展中解耦,这样就可以让 Istio 提供各种独立于应用程序代码之外的流量管理功能。除了A/B测试的动态路...原创 2019-04-24 15:03:37 · 637 阅读 · 0 评论 -
第五部分 Istio认证和授权策略
认证策略通过上一部分认证架构可以了解到,认证策略是对服务收到的请求生效的。要在双向 TLS 中指定客户端认证策略,需要在 DetinationRule 中设置 TLSSettings。使用者可以通过yaml文件来编写认证策略,然后使用 istioctl 进行部署。例如,要求 reviews 服务必须使用双向 TLS:apiVersion: "authentication.istio....原创 2019-04-29 10:45:11 · 2403 阅读 · 0 评论 -
第六部分 Istio策略与遥测
简述Istio提供灵活的模型来执行授权策略,并收集Istio服务的遥测数据。基础设施后端提供用于构建服务的支持功能。主要包括访问控制系统、遥测捕获系统、配额执行系统以及计费系统等等。Istio 提供统一抽象,使得 Istio 可以与一组开放式基础设施后端进行交互。这样做是为了给运维提供丰富而深入的控制,同时不给服务开发人员带来负担。Istio 旨在改变层与层之间的边界,以减少系统复杂性,消...原创 2019-04-30 09:23:04 · 724 阅读 · 0 评论 -
第十一部分 Istio路由配置
前提在kubernetes正确安装Istio。 部署 Bookinfo 示例应用程序。 了解流量管理基本概念,如destination rule、virtual service和subset等任务Istio Bookinfo 示例包含四个独立的微服务,每个微服务都有多个版本。 其中一个微服务 reviews 的三个不同版本已经部署并同时运行。 为了说明这导致的问题,在浏览器中访问 B...原创 2019-05-08 13:56:24 · 838 阅读 · 0 评论 -
第十二部分 Istio故障注入
说明Istio如何注入延迟并测试应用程序的弹性。前提条件正确安装Istio 部署示例应用程序 Bookinfo,并应用缺省目标规则。 了解故障注入的相关概念。 通过首先执行请求路由任务或运行以下命令来初始化应用程序版本路由:kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yamlkube...原创 2019-05-08 14:15:29 · 1281 阅读 · 0 评论 -
第三部分 Istio流量规则配置
规则配置Istio 提供了一个简单的配置模型,用来控制 API 调用以及应用部署内多个服务之间的四层通信。运维人员可以使用这个模型来配置服务级别的属性,这些属性可以是熔断、超时或重试,以及一些普通的流量管理任务,比如,金丝雀发布、A/B测试、使用流量百分比控制,从而完成应用的逐步发布等。Istio 中包含有四种流量管理配置资源,分别是VirtualService、DestinationRu...原创 2019-04-25 15:49:22 · 1527 阅读 · 3 评论 -
第七部分 Istio性能与可伸缩
简介Istio在不入侵应用代码的情况下,在应用服务之间创建丰富的路由能力、负载均衡、服务间认证和监控功能的网络。Istio 的目标是使用最小资源开销来提供这些能力,并能够为负载大量请求的大规模集群提供低延迟服务。Envoy作为Istio数据层面的组件,在系统中负责数据流的处理。Istio控制层面组件包括Pilot、Galley和Cidadel,负责对数据层面进行控制。数据层面和控制层面在性...原创 2019-05-05 09:19:22 · 533 阅读 · 0 评论 -
第八部分 Istio多集群部署方案
简述Istio 是一个服务Mesh,其基本属性是监控和管理多个服务。服务Mesh的本质就是将一组单独的微服务组合成单个可控的复合应用程序。对于特定大小的应用,组成应用程序的所有的微服务都可以在单个编排平台上运行(例如 Kubernetes 集群)。然而,由于诸如规模、冗余等许多原因,大多数应用程序最终将需要分布式设计并使其中的一些服务能够运行在任何地方。Istio 支持将一个应用程序的服务...原创 2019-05-05 15:36:10 · 1952 阅读 · 0 评论 -
第九部分 Istio 安装之Kubernetes命令方式
注意事项因大部分都是国外资源,时刻做好翻墙的准备。 此文仅是在kubernetes平台命令安装,不涉及任何的云和Helm,适用于测试和体验Istio,生产环境建议使用Helm安装方案。下载Istio安装包1.下载对应目标操作系统的安装文件,建议使用此方法,下载地址如下:https://github.com/istio/istio/releases2.或Linux使用如下的脚本进...原创 2019-05-06 10:46:05 · 915 阅读 · 0 评论 -
第十五部分 Istio设置请求超时
简介如何使用 Istio 在 Envoy 中设置请求超时。前提正确安装Istio 部署的示例应用程序 Bookinfo且应用缺省目标规则。 使用下面的命令初始化应用的版本路由kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yamlapiVersion: networking.istio...原创 2019-05-13 18:11:02 · 1067 阅读 · 0 评论 -
第一部分 Istio简介
Istio简述Istio可以连接、保护、控制和观察服务,降低微服务治理的复杂性,并减轻开发团队的压力。它的多样化功能集使您能够成功高效地运行分布式微服务架构,透明地分层到现有的分布式应用程序上。为什么要使用IstioIstio提供了一种简单的方式为已经部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,只需要对服务的代码进行一点或不需要做任何改动。只需要在您的环...原创 2019-04-23 15:36:05 · 671 阅读 · 0 评论