Istio基本概念及部署
一、Istio架构及组件
Istio服务网格在逻辑上分为数据平面和控制平面。
- 控制平面:使用全新的部署模式:Istiod,这个组件负责处理Sidecar注入,证书颁发,配置管理等功能,替代原有组件,降低复杂度,提高易用性。
- Polit:策略组件,为proxy提供服务发现、智能路由、错误处理等
- Citadel:安全组件,提供证书下发、加密通信、控制访问
- Galley:配置管理、验证、分发
- 数据平面: 有一组proxy组成,这些proxy 负责所有微服务网络通信,实现高效转发和策略。使用envoy实现,envoy是一个基于C++实现的L4/L7proxy转发器,是Istio在数据平面唯一的组件。
二、Istio基本概念
istio有四个配置资源,落地所有流量管理需求:
- VirtualService(虚拟服务):实现服务请求路由规则的功能
- DestinationRule(目标规则):实现目标服务的负载均衡、服务发现、故障处理和故障注入的功能。
- Gateway(网关):让服务网格内的服务,可以被全世界看到。
- ServiceEntry(服务入口):允许管理网格外的服务流量
三、 Istioctl下载
Istio 1.23 支持以下这些 Kubernetes 版本: 1.27, 1.28, 1.29, 1.30。
1.21-1.23.2之间貌似有bug,Sidercar创建pod会失败:

官网地址:Istio
下载地址:https://github.com/istio/istio/releases
经过测试:k8s-1.28.1 匹配istio1.20.0最合适。

最新版下载:
# curl -L https://istio.io/downloadIstio | sh -
下载指定版本:
# curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.20.0 TARGET_ARCH=x86_64 sh -


# cp /opt/istio-1.20.0/bin/istioctl /usr/bin
也可以设置变量:
# export PATH="$PATH:/opt/istio-1.20.0/bin"
四、查看配置文件使用的名称

#Ambient 配置文件旨在帮助您开始使用 Ambient 模式。ambient
#根据 IstioOperator API 的默认设置来启用组件。 建议用于生产部署和多集群网格 中的主集群。default
#这一配置具有适度的资源需求,旨在展示 Istio 的功能。 它适合运行 Bookinfo 应用程序和相关任务demo
#不部署任何内容。可以作为自定义配置的基本配置文件。empty
#与默认配置文件相同,但只安装了控制平面组件。 它允许您使用单独的配置文件 配置控制平面和数据平面组件minimalopenshift
#预览文件包含的功能都属于实验性阶段。该配置文件是为了探索 Istio 的新功能。 确保稳定性、安全性和性能(使用风险需自负)。preview
#用于配置一个从集群, 这个从集群由外部控制平面管理, 或者由多集群网格的 主集群中的控制平面管理remotestable#说明
https://istio.io/latest/zh/docs/setup/additional-setup/config-profiles/#:~:text=%E6%9C%AC%E9%A1%B5%E9%9D%A2%E6%8F%8F%E8%BF%B0%E4%BA%86%E5%9C%A8%20%E5%AE%89%E8%A3%85%20Istio%20%E6%97%B6%E6%89%80%E8%83%BD%E5%A4%9F%E4%BD%BF%E7%94%A8%E7%9A%84%E5%86%85%E7%BD%AE%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E3%80%82%20%E8%BF%99%E4%BA%9B%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%8F%90%E4%BE%9B%E4%BA%86%E5%AF%B9%20Istio%20%E6%8E%A7%E5%88%B6%E5%B9%B3%E9%9D%A2%E5%92%8C%20Istio,%E6%95%B0%E6%8D%AE%E5%B9%B3%E9%9D%A2%20Sidecar%20%E7%9A%84%E5%AE%9A%E5%88%B6%E5%86%85%E5%AE%B9%E3%80%82%20%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BB%8E%E5%85%B6%E4%B8%AD%E4%B8%80%E4%B8%AA%20Istio%20%E5%86%85%E7%BD%AE%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%BC%80%E5%A7%8B%E5%85%A5%E6%89%8B%EF%BC%8C%20%E7%84%B6%E5%90%8E%E6%A0%B9%E6%8D%AE%E6%82%A8%E7%9A%84%E7%89%B9%E5%AE%9A%E9%9C%80%E6%B1%82%E8%BF%9B%E4%B8%80%E6%AD%A5%20%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E3%80%82
五、部署
自定义参数使用--set:
此 API 中的配置参数能用命令行选项 --set 独立设置。 例如,要在 default 配置档中启动调试日志特性,使用这个命令:
$ istioctl install --set values.global.logging.level=debug
其他方法参见:
Istio / 定制安装配置
安装命令:
# /istio-1.20.0/bin/istioctl install
这里使用默认安装:
# istioctl install

这里是镜像下载不下来,可以手动下载,然后tag成需要的镜像即可:
# docker pull dhub.kubesre.xyz/istio/pilot:1.20.0
# docker tag dhub.kubesre.xyz/istio/pilot:1.20.0 docker.io/istio/pilot:1.20.0
# docker pull dhub.kubesre.xyz/istio/proxyv2:1.20.0
# docker tag dhub.kubesre.xyz/istio/proxyv2:1.20.0

# #生成部署清单:
# istioctl manifest generate > generate.yaml
## 卸载
# istioctl manifest generate | kubectl delete -f -
六、Sidercar注入

手动注入《默认命名空间》:

或者;
# istioctl kube-inject -f httpbin-nodeport.yaml |kubectl apply -f -
自动注入:
# kubectl label namespace crm istio-injection=enabled 关闭:enabled改成disabled
# kubectl apply -f httpbin-gateway.yaml
IngressGateway NodePort访问地址:http://x.x.x.x:port
示例:
# kubectl label namespace crm istio-injection=enabled

如果是现有应用的容器,要么删除重建,要么重新部署。就会生效。
# kubectl apply -f httpbin-gateway.yaml
从gateway访问:


从httpbin进行访问:


访问流程图:
用户-->NodePort-->IngressGateway-->istio-proxy<-->httpbin
查看:

七、istio与k8s集成流程

相关文章:
Istio基本概念及部署
一、Istio架构及组件 Istio服务网格在逻辑上分为数据平面和控制平面。 控制平面:使用全新的部署模式:Istiod,这个组件负责处理Sidecar注入,证书颁发,配置管理等功能,替代原有组件,降低复杂度&…...
基于 Python 的 Django 框架开发的电影推荐系统
项目简介:本项目是基于 Python 的 Django 框架开发的电影推荐系统,主要功能包括: 电影信息爬取:获取并更新电影数据。数据展示:提供电影数据的列表展示。推荐系统:基于协同过滤算法实现个性化推荐。用户系…...
离线数仓开发SQL编写和调试的最佳实践(如何又快又好完成任务,学会几条就不用当很辛苦的牛马)
目录 在开发阶段对数据进行抽样 理论基础 实践应用 使用Hive进行数据采样 使用Spark进行数据采样 采用CTE模块化设计 逐步验证 逐步验证案例实践: 验证sales_data CTE: 验证ranked_sales CTE: 验证top_sales CTE: 结论 用Doris或Impala等更快查询的代替Hive …...
PostgreSQL 增量备份:保护你的数据资产
全文目录: 开篇语📜 前言📚 增量备份概述🔑 增量备份的优势 🛠️ PostgreSQL 增量备份实施步骤🌟 环境准备🚀 第一步:全量备份⏳ 第二步:定期增量备份🔄 第三…...
字节青训-寻找最大葫芦
问题描述 在一场经典的德州扑克游戏中,有一种牌型叫做“葫芦”。“葫芦”由五张牌组成,其中包括三张相同牌面值的牌 aa 和另外两张相同牌面值的牌 bb。如果两个人同时拥有“葫芦”,我们会优先比较牌 aa 的大小,若牌 aa 相同则再比…...
el-checkbox勾选一个变成了勾选所有
问题: el-checkbox完成后勾选一个选项变成了所有选项都勾选了。非model值不正确,我的model值绑定的是数组,但是还是勾选一个变成了勾选多个。 解决 因为勾选的内容比较简单,且值不需要入库,所以我最开始定义的option为…...
ExpandingCard扩展卡片
文章目录 演示效果分析思路核心代码总结 源码 演示效果 分析思路 使用flex布局,每个卡片的宽度都由flex进行灵活调整交互可以增加和删除active,来实现宽度扩增和恢复还需要使用transition进行动画过渡,使得平滑切换 核心代码 首先创建一个…...
移远通信推出八款天线新品,覆盖5G、4G、Wi-Fi和LoRa领域
近日,全球领先的物联网整体解决方案供应商移远通信宣布,再次推出八款高性能天线新品,进一步丰富其天线产品阵容,更好地满足全球客户对高品质天线的更多需求。具体包括5G超宽带天线YECT005W1A和YECT004W1A、5G天线YECT028W1A、4G天…...
MySQL 9从入门到性能优化-创建触发器
【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...
UE5 第三人称学习之动画 control rig
这个东西和建模软件里有的是一个东西,然后IK就是你动脚,他帮你算出小腿大腿该怎么动,FK就是你自己动了大腿,摆小腿,然后再摆脚 就是给每一根骨骼搞一个控制器,给他一个容易选中和操作更明显的图形作为控制…...
C++之--初见模板初阶
一、泛型编程 为了实现一个通用的函数,在此之前,我们学过函数重载,使用函数重载虽然可以实现,但是有一下几个不好的地方: 1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时&a…...
Nature|用于无线监测颅内信号的植入式柔性超声波传感器(柔性传感/健康监测/植入式电子/水凝胶)
华中科技大学臧剑锋(Jianfeng Zang)、华中科技大学同济医学院附属协和医院姜晓兵(Xiaobing Jiang)和新加坡南洋理工大学陈晓东(Xiaodong Chen)团队,在《Nature》上发布了一篇题为“Injectable ultrasonic sensor for wireless monitoring of intracranial signals”的论…...
【和AI的《趣味》聊天】01 AI:你找茬是吧(
我: 以下哪个选项是中文? A.Chinese B.英文 AI: 我: 这不对吧,我说的是那个选项的语言是中文 AI: 非常抱歉,我之前的回答有误。您问的是哪个选项的语言是中文,那么答案应该是…...
“发放父作业单”是“过数”用例里面的内容吗
刘京城 2020-4-14 23:01 。。。。(注:这是一个人的昵称,不是省略号) 首先,执行者是同一个,那么思考焦点要关注“过数”用例是不是“发放父作业单”用例的一个步骤,和行为操作的频率无关,而是和责任有关&am…...
Linux补基础之:网络配置
目录 一、检查主机与虚拟机是否能正常通信 二、网络的连接模式 桥接模式 流程 特点 NAT模式 流程 特点 仅主机 流程 特点 三、修改静态IP 四、可能遇到的问题 防火墙 DNS 五、主机名更改 六、登录服务器 实际的大数据管理中,会有由很多服务器构成的…...
【flink】之kafka到kafka
一、概述 本文档旨在介绍如何使用Apache Flink从Kafka接收数据流,并将处理后的数据写入到另一个Kafka Topic中。Apache Flink是一个开源的流处理框架,能够处理无界和有界数据流,并且支持高吞吐量和低延迟的数据处理。通过Flink与Kafka的集成…...
微信小程序时间弹窗——年月日时分
需求 1、默认当前时间2、选择时间弹窗限制最大值、最小值3、每次弹起更新最大值为当前时间,默认值为上次选中时间4、 minDate: new Date(2023, 10, 1).getTime(),也可以传入时间字符串new Date(2023-10-1 12:22).getTime() html <view class"flex bb ptb…...
杂货 | 每日资讯 | 2024.11.1
注意:以下内容皆为AI总结 2024年11月1日,人工智能(AI)领域发生了多项重要事件,标志着技术发展的新阶段。本文将详细探讨以下三大事件: OpenAI为ChatGPT新增搜索功能IEEE发布《2025年及以后的技术影响》报…...
Genmoai-smol:专为单 GPU 优化的开源 AI 视频生成模型,低显存生成高质量视频
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号ÿ…...
RHCE8
一、防火墙 防火墙:防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出。防火墙又可以分为硬件防火墙与软件防火墙。 硬件防火墙是由厂商设计好的主机硬件,这台硬件防火墙的操作系统主要以提供数据…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
