热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:istio1.5安装较之前版本有重大改进

篇首语:本文由编程笔记#小编为大家整理,主要介绍了istio1.5安装-较之前版本有重大改进相关的知识,希望对你有一定的参考价值。istio是什么?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了istio1.5安装-较之前版本有重大改进相关的知识,希望对你有一定的参考价值。



istio是什么?

istio是一个用来连接、管理和保护微服务的开源的服务网格,服务网格是用于描述构成应用程序的微服务网络以及应用之间的交互,随着规模和复杂性的增长,服务网格越来越难以理解和管理,它的功能包括服务发现、负载均衡、故障恢复、指标和监控以及更加复杂的运维工作,例如 A/B 测试、金丝雀发布、限流、访问控制和端到端身份验证等,istio解决了开发和运维人员从部署单个应用程序向分布式微服务架构过渡时所面临的挑战,Istio作为微服务网格中的佼佼者,它提供了洞察和操作控制微服务网格的能力,提供完整的解决方案以满足微服务应用程序的各种要求,从较高的层面来说,Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力,它是一个完全开源的服务网格,作为透明的一层接入到现有的分布式应用程序里,它也是一个平台,拥有可以集成任何日志、遥测和策略系统的 API 接口,Istio 多样化的特性使大家能够成功且高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。istio目前仅支持在Kubernetes上的服务部署,但未来版本中将支持其他环境。


一、istio1.5较之前版本的重大更新


istiod 介绍

通过“拥抱单体”升级了 istio,将控制平面整合为一个新的二进制文件——istiod,极大地简化了安装、运行和升级 istio 的流程,更少的组件让运维人员的调试和理解也变得更简单,对于网格用户,istiod 不会改变他们的任何体验,所有 API 和运行时特性均与以前的组件一致。


新的可扩展性模型

Istio一直都是可扩展性最好的服务网格,其 Mixer 插件允许自定义策略和遥测,而 Envoy 扩展则允许数据平面自定义。在Istio1.5中,我们发布了一个新模型,该模型使用WebAssembly(Wasm)将Istio的可扩展性模型与Envoy统一。Wasm将使开发人员能够安全地分发和执行 Envoy 代理中的代码,以便与遥测系统、策略系统、路由控制甚至是消息体转换(transformthe body of a message)进行集成,它将更加灵活和高效,不再需要单独运行 Mixer 组件(这也简化了部署)。


更简单

使用istioctl的Istio命令行安装是安装的测试版,这适用于大多数用户,通过 Operator管理安装的Istio仍处于Alpha状态,关于istioctl,它有十几项改进,可以分析新项、更好的验证规则、更好的与CI系统集成,现在,它是了解正在运行 Istio 系统的状态、确保配置安全更改的必要工具。我们对 Istio 安全性进行了许多增强,使其更易于使用,通过自动 mTLS 的 beat 版 launch,现在配置mTLS 非常简单, 通过 Istio 1.4 中授权策略的beta 版 launch,我们移除了间接访问,并将其合并到单个 CRD,使得访问控制也得到了简化。


更好的可观察性

Telemetry v2 现在会报告原生 TCP 连接(除了HTTP)的度量标准,并且通过在遥测和日志中添加响应状态代码来增强了对 gRPC 工作负载的支持,现在默认使用 Telemetry v2。新的遥测系统将等待时间缩短了一半,90% 的等待时间从 7 毫秒 降低至3.3 毫秒。不仅如此,移除 Mixer 还使总的 CPU 消耗减少了 50%(0.55 vCPU,1000 个请求/每秒)。


二、istio控制面的核心组件


1.Pilot

Pilot为Envoy sidecar提供服务发现、用于智能路由的流量管理功能(例如,A/B 测试、金丝雀发布等)以及弹性伸缩功能(超时、重试、熔断器等),Pilot将控制流量行为的高级路由规则转换为特定于环境的配置,并在运行时将它们传播到sidecar,Pilot 将特定于平台的服务发现机制抽象出来,并将它们合成为任何符合EnvoyAPI的sidecar都可以使用的标准格式。


2.Galley

Galley是Istio的配置验证、提取、处理和分发组件,为更好的解耦职责,它在lstio 1.1 后由仅负责配置验证升级成了控制面的配置管理中心,可以对接不同注册中心,用于为服务网格提供配置输入能力,它负责将其余的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节隔离开来。


3.Injector

在 K8s 体系里负责数据面的初始化相关工作,其中 lstio 的核心特性之一 Sidecar 自动注入正是依赖该组件;


4.Mixer

是 ilstio 里负责提供策略控制和遥测收集的组件,内部包含两个子组件 —— Telemetry 和 Policy,其中 Telemetry 负责监控相关的采集信息的数据聚合以用于对接各种监控后端,而Policy 负责在服务相互调用过程中对请求进行策略检查,例如鉴权等


5.Citadel

负责服务网格里安全相关功能,为服务和用户提供认证和鉴权、管理凭据和 RBAC 等相关能力;服务网格控制面各个组件被定义得清楚了然,设计之初就已经考虑到各种组件职责解耦、扩展性、安全性等,架构上看起来也非常清晰优雅。


三、istio架构图

技术图片


四、istio为什么回归单体?

简化运维和开发人员的维护成本,之前的Istio按功能整理成如下表格
技术图片

回归单体之后按功能整理成表格如下
技术图片

经过对比可以看到,Istiod是将原有的的其它组件统统塞入了pilot,而架构调整后的新pilot,即Istiod肩负了相比pilot更多的职责,单个二进制文件在部署方式上变得更加简单。


五、搭建istio的前提条件

在正式安装istio之前,请看下面的前提条件


1.在安装istio之前,需要有一个kubernetes集群

istio1.5已经在Kubernetes版本 1.14, 1.15, 1.16 中测试过。

假如没有kubernetes集群,可按如下链接参考安装:

http://mp.weixin.qq.com/s?__biz=MzU0NjEwMTg4Mg==&mid=2247483938&idx=1&sn=ee88518233ef902651e39b9e6a322c9d&chksm=fb638d37cc1404214209da89028b11cffe35a4d062dfaff51d7b66148c0aed140f14f4851471&token=65296373&lang=zh_CN#rd


2.检查pod和service的要求

官方的一个前提条件,此处理解即可,不需要做任何操作,作为 Istio 服务网格中的一部分,Kubernetes集群中的Pod和Service必须满足以下要求:


命名的服务端口:

Service 的端口必须命名。端口名键值对必须按以下格式:name: [-]。


Service 关联:

每个 Pod 必须至少属于一个Kubernetes Service,不管这个Pod是否对外暴露端口。如果一个Pod同时属于多个Kubernetes Service,那么这些Service不能同时在一个端口号上使用不同的协议(比如:HTTP 和 TCP)。带有app和version标签(label)的Deployment:建议给Deployment加上app和version标签,给使用 Kubernetes Deployment部署的Pod部署配置中增加这些标签,可以给 Istio 收集的指标和遥测信息中增加上下文信息。
app标签:每个部署配置应该有一个不同的app标签并且该标签的值应该有一定意义。app label用于在分布式追踪中添加上下文信息。

version标签:这个标签用于在特定方式部署的应用中表示版本。


应用UID:

确保你的 Pod 不会以用户 ID(UID)为 1337 的用户运行应用。


NET_ADMIN功能:

如果你的集群执行 Pod 安全策略,必须给 Pod 配置NET_ADMIN功能。如果你使用Istio CNI 插件可以不配置。


六、下载 Istio1.5-在k8s集群的master节点操作


1.下载 Istio

下载内容将包含:安装文件、示例和istioctl命令行工具,访问Istio release页面下载与操作系统对应的安装文件,在macOS或Linux 系统中,也可以通过以下命令下载最新版本的 Istio:

curl -L https://istio.io/downloadIstio | sh -


2.切换到Istio包所在目录下

cd istio-1.5.1


3.安装目录包含如下内容:

install/kubernetes目录下,有Kubernetes相关的YAML安装文件

samples/目录下,有示例应用程序

bin/目录下,包含istioctl的客户端文件,istioctl工具用于手动注入 Envoy sidecar 代理。


4.将istioctl客户端路径增加到path环境变量中,macOS或Linux系统的增加方式如下:

export PATH=$PWD/bin:$PATH


七、安装istio-在k8s集群的master节点操作

如果访问不了docker hub,可以手动把镜像上传到kubernetes机器的各个节点上,或者把镜像传到harbor私有镜像仓库,然后

docker load-i istio_pilot_1_5_1.tar.gz

docker load-i istio_pilot_1_5_1.tar.gz

docker load-i istio_proxyv2_1_5_1.tar.gz

解压镜像即可

镜像所在的百度网盘链接如下:

链接:https://pan.baidu.com/s/1U9osuypeUx6ILjYs3K-04g
提取码:a3sm

1.使用istioctl安装istio,官方建议用此方法,此方法安装可用于生产环境

cd /root/istio-1.5.1

使用默认的配置文件安装istio,最简单的安装是使用istio默认的配置文件

istioctl manifest apply

查看是否安装成功

kubectl get pods -n istio-system

显示如下,说明istio安装成功

技术图片

技术图片

想要了解更多istio的更多生产案例,获取k8s、devops免费视频,可按如下方式进入技术交流群获取哈~~
技术图片

技术图片


推荐阅读
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • 微服务下的几个难点问题及常见的解决方案
    原文链接:https:cloud.tencent.comdevelopernews1362051背景介绍1.1幂等性定义数学定义在数学里,幂等有 ... [详细]
  • 分布式服务框架和原理简章
    应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 物联网应用介绍
    •物联网的研究背景(概念|本质|特征|发展现状)       物联网是新一代信息技术的高度集成和综合运用,已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发 ... [详细]
author-avatar
v88v的秋天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有