手摸手带你 在Windows系统中安装Istio

news2024/11/25 20:23:46

Istio简介

通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。

通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio,包括:

  • 为 HTTP、gRPC、WebSocket 和 TCP 流量自动负载均衡。
  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。
  • 可插拔的策略层和配置 API,支持访问控制、速率限制和配额。
  • 集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪。
  • 在具有强大的基于身份验证和授权的集群中实现安全的服务间通信。

在Istio官方文档中,安装Istio是以Linux或MacOS系统为例的,对于Windows用户不是很友好,不过真难不倒我们。

安装 Hyper-V

Hyper-V是微软提出的一种系统管理程序虚拟化技术,能够实现桌面虚拟化。Hyper-V 可用于 64 位 Windows 10 专业版、企业版和教育版。 它无法用于家庭版。

点击“小窗户”,然后再点击“设置”,如下图:

设置

在搜索框中输入“启用或关闭Windows功能”,如下图:

启用或关闭Windows功能

点击“启用或关闭Windows功能”后,勾选“Hyper-V”所有选项,如下图:

Hyper-V

点击“确定”,等一会儿就安装好了。(可能需要重启电脑)

安装 Docker Desktop

访问https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe下载,双击Docker Desktop Installer.exe运行安装程序。按照安装向导上的说明授权安装程序并继续进行安装。

安装完成后,启动Docker Desktop,等一会儿初始化完成后,将启动入门教程:

Docker Desktop

这个教程包括一个简单的练习,以构建示例Docker镜像,将其作为容器运行,将映像推送并保存到Docker Hub。

开启 Kubernetes

在Docker Desktop的设置中,为 Kubernetes 配置 CPU 和 内存资源,建议分配4核或更多CPU,8GB或更多内存,如下图:

在Docker Desktop的设置中,勾选开启 Kubernetes 和 显示系统容器,如下:

重启Docker Desktop后,等待Kubernetes启动,启动成功后,可以看到Kubernetes的标签变成绿色,并且在容器列表中可以看到Kubernetes相关的容器,如下图:

安装

到Istio的官方网站(https://github.com/istio/istio/releases)下载windows系统的安装包,如下图:

把压缩包解压到你觉得安逸的目录里,然后把istio-1.14.0\bin目录添加到环境变量中。

打开命令提示符,执行istioctl version命令可以看到IIstio的版本信息,说明环境变量设置成功,如下图:

执行如下命令,安装Istio:

istioctl install --set profile=demo -y

本次安装采用 demo 配置组合。 选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。

稍等片刻,我们就可以看到:

C:\万猫学社> istioctl install --set profile=demo -y
 ✔ Istio core installed 
 ✔ Istiod installed 
 ✔ Egress gateways installed 
 ✔ Ingress gateways installed 
 ✔ Installation complete

执行如下命令,查看Istio是否安装成功:

kubectl get pods -n istio-system

可以看到 Istio 相关的 Pod 都处于 Running 状态,如下图:

kubectl get pods -n istio-system

给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:

kubectl label namespace default istio-injection=enabled

至此,Istio已经在在Windows上安装完成了。如果你还想进行一些学习或者测试Istio的功能,可以部署示例应用。

部署示例应用

进入istio-1.14.0目录中,执行一下命令,部署 Bookinfo 示例应用:

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

如下图:

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

稍等几分钟后,执行kubectl get pods命令我们就可以看到Bookinfo 示例应用相关的 Pod 都处于 Running 状态,如下图:

kubectl get pods

最后,我们通过检查返回的页面标题,来验证应用是否已在集群中运行,并已提供网页服务:

# 获取ratings的Pod名称
kubectl get pod -l app=ratings -o jsonpath={.items[0].metadata.name}
# 替换掉ratings的Pod名称
kubectl exec ratings的Pod名称 -c ratings -- curl -s productpage:9080/productpage | findstr /r "<title>.*</title>"

具体操作如下图:

返回的页面标题为:<title>Simple Bookstore App</title>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】string 之 find、rfind、replace、compare函数的学习

前言 上篇文章&#xff0c;我们学习了assign、at、append这三个函数 今天&#xff0c;我们来学习find、 函数 find函数 引入 我们都知道&#xff0c;find函数可以是string类中&#xff0c;用于查找字符或者字符串的函数 也可以是&#xff0c;<algorithm>头文件中&am…

帝国CMS插件-最全免费帝国CMS插件大全

在如今的数字时代&#xff0c;网站管理员和内容创作者面临着一个共同的挑战&#xff1a;如何快速而有效地生成并发布大量内容&#xff0c;以吸引更多的用户和读者。帝国CMS&#xff08;Empire CMS&#xff09;是一个备受欢迎的内容管理系统&#xff0c;许多网站使用它来创建和管…

3.物联网射频识别,RFID

一。ISO14443-2协议简介 1.ISO14443协议组成及部分缩略语 &#xff08;1&#xff09;14443协议组成 14443-1 物理特性 14443-2 射频功率和信号接口 14443-3 初始化和防冲突 14443-4 传输协议 &#xff08;2&#xff09;针对前两节的名词&#xff0c;对应的英语缩略语 PCD&…

解决webpack报错:You forgot to add ‘mini-css-extract-plugin‘ plugin

现象&#xff1a; 原因&#xff1a; webpack5.72跟mini-css-extract-plugin有兼容性问题 解决办法&#xff1a;把 new MiniCssExtractPlugin()放在webpack配置文件中plugins数组的第一项&#xff1a; plugins: [ // 此处解决报错&#xff1a;You forgot to add mini-css-extra…

Lua表公共操作

--表的公共操作 t1 {{age 1,name "123"},{age 2,name "456"}} t2 {name "Holens" , sex true} --插入 print(#t1) table.insert(t1,t2) print(#t1) print(t1[3].sex) print("*************************************")--删除 -…

媒体编解码器MediaCodec

目录 1.介绍MediaCodec类 2.创建MediaCodec的方式 3.MediaCodec流程 &#xff08;1&#xff09;配置编码参数 &#xff08;2&#xff09;创建编码器 &#xff08;3&#xff09;创建混合器 &#xff08;4&#xff09;开始编码 4.MediaCodec编码的工作方式 5.MediaCodec…

整型提升——(巩固提高——字符截取oneNote笔记详解)

文章目录 前言一、整型提升是什么&#xff1f;二、详细图解1.图解展示 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 整型提升是数据存储的重要题型&#xff0c;也是计算机组成原理的核心知识点。学习c语言进阶的时候,了解内存中数据怎么存&#…

Lua表实现类

--类 Student { name "Holens",age 1,sex true,Say1 function()print(Student.name.."说话了")end,Say2 function(t)print(t.name.."说话了2")end } Student.Say1() print("*************************************")--声明后添加…

Python大数据之pandas快速入门(一)

文章目录 pandas快速入门学习目标1. DataFrame 和 Series 简介2. 加载数据集(csv和tsv)2.1 csv和tsv文件格式简介2.2 加载数据集(tsv和csv) pandas快速入门 学习目标 能够知道 DataFrame 和 Series 数据结构能够加载 csv 和 tsv 数据集能够区分 DataFrame 的行列标签和行列位…

Windows11安装MySQL8.1

安装过程中遇到任何问题均可以参考(这个博客只是单纯升级个版本和简化流程) Windows安装MySQL8教程-CSDN博客 到官网下载mysql8数据库软件 MySQL :: Download MySQL Community Server 下载完后,解压到你需要安装的文件夹 其中的配置文件内容了如下 [mysqld]# 设置3306端口po…

设计模式4、建造者模式 Builder

解释说明&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示 UML 结构图&#xff1a; 抽象建造者&#xff08;Builder&#xff09;&#xff1a;这个接口规定要实现复杂对象的那些部分的创建&#xff0c;并不设计具体部件对象的创…

【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载

文章目录 前言一、什么是 Ribbon二、Ribbon 实现负载均衡的原理2.1 负载均衡的流程2.2 Ribbon 实现负载均衡的源码剖析 三、Ribbon 负载均衡策略3.1 负载均衡策略3.2 演示 Ribbon 负载均衡策略的更改 四、Ribbon 的饥饿加载4.1查看 Ribbon 的懒加载4.2 Ribbon 的饥饿加载模式 前…

《The Rise and Potential of Large Language Model Based Agents: A Survey》全文翻译

The Rise and Potential of Large Language Model Based Agents: A Surve - 基于 LLMs 的代理的兴起和潜力&#xff1a;一项调查 论文信息摘要1. 介绍2. 背景2.1 AI 代理的起源2.2 代理研究的技术趋势2.3 为什么大语言模型适合作为代理大脑的主要组件 3. 代理的诞生&#xff1a…

【文档智能】:GeoLayoutLM:一种用于视觉信息提取(VIE)的预训练模型

前言 文章介绍了一种用于视觉信息提取&#xff08;VIE&#xff09;的预训练模型&#xff1a;GeoLayoutLM。GeoLayoutLM通过显式建模几何关系和特殊的预训练任务来提高文本和布局的特征表示。该模型能够提高文档信息抽取的性能。 一、提出背景 当前多模态预训练模型在 SER 任…

c/c++中如何输入pi

标准的 C/C 语言中没有π这个符号及常量&#xff0c;一般在开发过程中是通过开发人员自己定义这个常量的&#xff0c;最常见的方式是使用宏定义&#xff1a; 方法1&#xff1a;#define pi 3.1415926 方法2&#xff1a;使用反三角函数const double pi acos(-1.0);

如何使用记事本制作一个简陋的小网页(2)——表格的建立

前情题要&#xff1a;http://t.csdnimg.cn/bK3H9 1.首先在之前的基础上建立一个新的标签页面。 2.使用<body></body>建立背景颜色 3.表格的填充和使用 如图所示&#xff0c;<table></table>是建立一个表格所需要使用的标签&#xff0c;可以使用width来…

Docker 容器跨主机通信 - Flannel

Author&#xff1a;rab 目录 前言一、架构及环境二、服务部署2.1 Etcd 部署2.2 Flannel 部署2.3 Docker 网络配置 三、容器通信验证及路由分析3.1 通信验证3.2 路由转发分析3.3 数据分发分析 总结 前言 今天是中秋佳节&#xff0c;首先在此祝大家“中秋快乐&#xff0c;阖家团…

java mongodb 并表 group 查询 Bson

对mongodb的使用中&#xff0c;需要将发生额表occr期初表open表&#xff0c;进行union的并表操作后&#xff0c;再进行group&#xff0c;sum&#xff0c;排序&#xff0c;分页操作。 查询了一番后&#xff0c;mongodb4.4版本后&#xff0c;新增了一个管道符&#xff0c;$union…

什么是 DNS 泛洪攻击(DNS 泛洪)

什么是 DNS 泛洪攻击&#xff08;DNS 泛洪&#xff09;&#xff1f; 域名系统 &#xff08;DNS&#xff09; 是用于在网站的机器可读地址&#xff08;例如 191.168.0.1&#xff1a;80&#xff09;和人类可读名称&#xff08;例如 radware.com&#xff09;之间进行解析的目录DN…

【HUAWEI】单臂路由

目录 ​ &#x1f96e;写在前面 &#x1f96e;2.1、拓扑图 &#x1f96e;2.2、操作思路 &#x1f96e;2.3、配置操作 &#x1f363;2.3.1、LSW4配置 &#x1f363;2.3.2、R2配置 &#x1f363;2.3.3、测试网络 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &…