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集成流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付宝自动扣款如何关闭服务

支付宝作为我们日常生活中常用的支付工具&#xff0c;不仅方便快捷&#xff0c;还提供了自动扣款服务。然而&#xff0c;有时候我们可能会因为不再需要某项服务&#xff0c;或者其他原因&#xff0c;需要关闭这些自动扣款服务。本文将详细介绍如何在支付宝中关闭自动扣款服务。…

Java爬虫:在1688上“照片快递”上传图片

想象一下&#xff0c;你是一名快递小哥&#xff0c;不过你送的不是包裹&#xff0c;而是图片——而且是用Java编写的爬虫作为你的快递车&#xff0c;将图片快速准确地送到1688的服务器上。今天&#xff0c;我们将一起化身为代码界的“照片快递”&#xff0c;使用Java爬虫技术&a…

Windows安装Git最新保姆级教程【附安装包】

一、Git下载: 链接&#xff1a;https://pan.baidu.com/s/1_uH-_-cdBb6GD58oLcxvAA 提取码&#xff1a;m366 二、安装Git 1.右键桌面【此电脑】-【属性】&#xff0c;查看操作系统是32位还是64位。 2.下载好对应64位操作系统版本的Git&#xff0c;解压并打开。 我电脑系统是64位…

vue3父子组件传值,子组件暴漏方法

1.父传子 defineProps 父组件直接通过属性绑定的方式给子组件绑定数据&#xff0c;子组件通过defineProps接收函数接收 其中v-model是完成事件绑定和事件监听的语法糖。v-model算是v-bind和v-on的简洁写法&#xff0c;等价于 <c-input ref"inputRef" :modelValue…

2024年,Rust开发语言,现在怎么样了?

Rust开发语言有着一些其他语言明显的优势&#xff0c;但也充满着争议&#xff0c;难上手、学习陡峭等。 Rust 是由 Mozilla 主导开发的通用、编译型编程语言&#xff0c;2010年首次公开。 在 Stack Overflow 的年度开发者调查报告中&#xff0c;Rust 连续多年被评为“最受喜爱…

【C++动态规划】有效括号的嵌套深度

本文涉及知识点 C动态规划 LeetCode1111. 有效括号的嵌套深度 有效括号字符串 定义&#xff1a;对于每个左括号&#xff0c;都能找到与之对应的右括号&#xff0c;反之亦然。详情参见题末「有效括号字符串」部分。 嵌套深度 depth 定义&#xff1a;即有效括号字符串嵌套的层…

医院信息化与智能化系统(14)

医院信息化与智能化系统(14) 这里只描述对应过程&#xff0c;和可能遇到的问题及解决办法以及对应的参考链接&#xff0c;并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图&#xff0c;可以试试PlantUML&#xff0c;告诉GPT你的文件结构&#xff0c;让他给你对应…

dedecms手机搜索不跳转手机页面模板的解决方法

1.找到文件plus/search.php&#xff0c;添加如下代码并保存 $mobile (isset($mobile) && is_numeric($mobile)) ? $mobile : 0; if ( $mobile1 ) {define(DEDEMOB, Y); } 2.来到网站后台&#xff0c;默认模板管理&#xff0c;新建模板 将手机端列表页面的.html文件&…

臻于智境 安全护航 亚信安全受邀出席新华三智算新品发布会

近日&#xff0c;紫光股份旗下新华三集团在北京隆重举办了主题为“乘势 进化 臻于智境”的新华三智算新品发布会。作为新华三集团的长期战略合作伙伴&#xff0c;亚信安全受邀参会&#xff0c;亚信安全CEO马红军出席发布仪式&#xff0c;并与来自各界的业界伙伴共同探讨智能化…

金和OA-C6 ApproveRemindSetExec.aspx XXE漏洞复现(CNVD-2024-40568)

0x01 产品描述&#xff1a; 金和C6协同管理平台是以"精确管理思想"为灵魂&#xff0c;围绕“企业协同四层次理论”模型&#xff0c;并紧紧抓住现代企业管理的六个核心要素&#xff1a;文化 Culture、 沟通Communication 、 协作Collaboration 、创新 Creation、 控制…

DB-GPT系列(一):DB-GPT能帮你做什么?

DB-GPT是一个开源的AI原生数据应用开发框架(AI Native Data App Development framework with AWEL and Agents)&#xff0c;围绕大模型提供灵活、可拓展的AI原生数据应用管理与开发能力&#xff0c;可以帮助企业快速构建、部署智能AI数据应用&#xff0c;通过智能数据分析、洞察…

Synergy遇见的问题

1.两台设备无法ping通 首先两个设备是在同一个局域网中&#xff0c;但任然是无法ping通 问题所在&#xff1a;防火墙进行了隔离&#xff1b; 解决方法&#xff1a; &#xff08;1&#xff09;关闭防火墙 没有用过&#xff0c;个人感觉不怎么安全就没有使用&#xff1b; &am…

视觉目标检测标注xml格式文件解析可视化 - python 实现

视觉目标检测任务&#xff0c;通常用 labelimage标注&#xff0c;对应的标注文件为xml。 该示例来源于开源项目&#xff1a;https://gitcode.com/DataBall/DataBall-detections-100s/overview 读取 xml 标注文件&#xff0c;并进行可视化示例如下&#xff1a; #-*-coding:ut…

Uniswap/v2-core使用及其交易流程

Uniswap是一个开源的去中心化的交易所&#xff0c;在github上面有以下重要仓库&#xff1a; uniswap-v2-core&#xff1a; 币对池pair的核心智能合约。这个repository包含了Uniswap的币对池pair的所有核心逻辑&#xff0c;增加流动性、减少流动性等。uniswap-v2-periphery&…

萤石私有化设备视频平台EasyCVR视频融合平台如何构建农业综合监控监管系统?

现代农业的迅速发展中&#xff0c;集成监控管理系统已成为提高农业生产效率和优化管理的关键工具。萤石私有化设备视频平台EasyCVR&#xff0c;作为一个具有高度可扩展性、灵活的视频处理能力和便捷的部署方式的视频监控解决方案&#xff0c;为农业监控系统的建设提供了坚实的技…

如何在小红书发布笔记时显示外地IP地址

小红书平台在发布笔记时显示IP地址可能是由于网络爬虫或者某些技术手段抓取数据时所导致的。为了保护用户隐私和安全&#xff0c;显示外地IP地址&#xff0c;可以尝试以下几种方法&#xff1a; 1.检查发布环境&#xff1a; 确保你是在一个安全、可信的网络环境下发布笔记&…

数据结构——单链表详解

博客ID&#xff1a;LanFuRenC系列专栏&#xff1a;C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 声明等级&#xff1a;黑色->蓝色->红色 欢迎新粉加入&#xff0c;会一直努力提供更优质的编程博客&#xff0c;希望大家三连支持一下啦 目录 1.链表的概念…

奥数与C++小学四年级(第十二题 装礼盒)

参考程序代码&#xff1a; #include <iostream> #include <vector> #include <algorithm>using namespace std;int main() {// 各种颜色宝石的数量vector<int> gems {11, 22, 33, 44, 55, 66, 77};int totalBoxes 0;while (true) {// 对宝石数量进行…

Zookeeper 对于 Kafka 的作用是什么?

大家好&#xff0c;我是锋哥。今天分享关于【Zookeeper 对于 Kafka 的作用是什么&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Zookeeper 对于 Kafka 的作用是什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 在 Kafka…