

手摸手带你 在Windows系统中安装Istio - 万猫学社
source link: https://www.cnblogs.com/heihaozi/p/17442462.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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功能”后,勾选“Hyper-V”所有选项,如下图:

点击“确定”,等一会儿就安装好了。(可能需要重启电脑)
安装 Docker Desktop
访问https://desktop.docker.com/win/stable/amd64/Docker%20Desktop%20Installer.exe下载,双击Docker Desktop Installer.exe运行安装程序。按照安装向导上的说明授权安装程序并继续进行安装。
安装完成后,启动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 状态,如下图:

给命名空间添加标签,指示 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 get pods
命令我们就可以看到Bookinfo 示例应用相关的 Pod 都处于 Running 状态,如下图:

最后,我们通过检查返回的页面标题,来验证应用是否已在集群中运行,并已提供网页服务:
# 获取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>
。
最后,感谢你这么帅,还给我点赞。
Recommend
-
128
前言 本篇文章其实陆陆续续写了快半年,主体部分写好了很久了,但由于种种原因一直没有发布。首先来说说写这篇文章的主要初衷是:在做前端后台项目的时候经常会用到很多 icon 图标,刚开始还好,但随着项目的不断迭代,每次修改添加图标会变得很麻烦,而且总觉得不...
-
39
为什么? 为什么要实现自动部署? 在2个月的时间里,一直都在忙着整理博客,每一个程序员都有一个博客梦(当然也不排除有些是没有的),我先后使用过各种博客系统: vuepress react-static jekyll hexo ... 这些都因为前前后后
-
41
-
34
在下最近遇到要在服务器上安装 Mysql、Nginx、EasyMock 等工具的场景,这里记录一下我使用 Docker 安装的过程,希望也能...
-
14
【手摸手,带你搭建前后端分离商城系统】01 搭建基本代码框架、生成一个基本API 通过本教程的学习,将带你从零搭建一个商城系统。 当然,这个商城涵盖了很多流行的知识点和技术核心 我可以学习到什么?...
-
7
jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具。除此以外,jmap命令还可以查看finalize执行队列、Java堆和方法区的详细信息,比如空间使用率、当前使用的什么垃圾回收器、...
-
11
【前端架构必备】手摸手带你搭建一个属于自己的脚手架 作者:战场小包看这篇文章之前,你肯定会疑惑,为什么你会写一个属于自己的脚手架?脚手架相比大家都不陌生,比如我们经常使用 vue-cli
-
10
图解 Apache SkyWalking UI 的使用 Apache SkyWa...
-
6
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。 微服务的历史 再介绍什么是微服务之前,我们先了解一下微服务架构的历史,也就是微服务是如何提出来的。 2011年5月...
-
9
大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。 微服务架构被技术大牛们总结出了以下九个特点: 服务组件化 围绕业务功能 产品而不是项目 强终端弱管...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK