当前位置: 首页 > news >正文

istio安装部署总结

istio安装部署总结

大纲

  • istio基础概念
  • 版本选择
  • 安装istio
  • 核心主件
  • 卸载istio
  • kiali安装

istio基础概念

https://istio.io/latest/zh/docs/ 中文文档

istio是一个服务治理平台,治理服务间的访问,(例如流量控制,安全策略,限流机制等)只要服务间产生访问就可以进行治理,不关注服务是否为微服务,也不要求服务的代码进行微服务化。

版本选择

安装istio前需要对比版本,istio与k8s有深度的绑定,istio与 k8s版本对应如下

在这里插入图片描述

https://istio.io/latest/docs/releases/supported-releases/#support-status-of-istio-releases 版本对应说明

由于本地的k8s集群版本为1.17 故本次安装使用Istio 1.9.x

在这里插入图片描述

k8s 1.17 对应 Istio 1.9.x

下载地址
https://github.com/istio/istio/releases/tag/1.9.9
https://github.com/istio/istio/releases/tag/1.9.7

在这里插入图片描述

下载完成后得到 istio-1.9.7-linux-amd64.tar.gz 解压后得到istioctl

在这里插入图片描述

将istioctl命令复制到/usr/bin文件夹即可

在这里插入图片描述

安装方式

istioctl install配置说明

https://istio.io/latest/zh/docs/setup/install/istioctl/ 官方安装文档说明

最简单的安装方式是直接使用istioctl install命令进行安装

istioctl install --set profile=demo
使用--set 可以指定安装时的参数
例如 
--set profile=demo 表示指定配置类型为demo

istio profile配置类型有如下类型

  • default:根据 IstioOperator API 的默认设置启动组件。 建议用于生产部署和 Multicluster Mesh 中的 Primary Cluster。
    您可以运行 istioctl profile dump 命令来查看默认设置。

  • demo:这一配置具有适度的资源需求,旨在展示 Istio 的功能。 它适合运行 Bookinfo 应用程序和相关任务。 这是通过快速开始指导安装的配置。

  • minimal:与默认配置文件相同,但只安装了控制平面组件。 它允许您使用 Separate Profile 配置控制平面和数据平面组件(例如 Gateway)。

  • remote:配置 Multicluster Mesh 的 Remote Cluster。

  • empty:不部署任何东西。可以作为自定义配置的基本配置文件。

  • preview:预览文件包含的功能都是实验性。这是为了探索 Istio 的新功能。不确保稳定性、安全性和性能(使用风险需自负)。

下图表示不同的配置文件会去安装的istio的组件

在这里插入图片描述

https://istio.io/latest/zh/docs/setup/additional-setup/config-profiles/ 安装配置文件官方说明文档

–set 还可以配置其他参数

  • –set meshConfig.accessLogFile=/dev/stdout 启动访问日志
  • –set hub=registry-1.docker.io/istio 配置根镜像 可以是自己搭建的私有镜像仓库,可以将其他渠道获得的镜像放入自己的registry中,方便使用

其他安装配置说明 https://istio.io/v1.9/docs/reference/config/istio.operator.v1alpha1/#IstioOperatorSpec

安装istio

使用 istioctl install --set profile=demo命令安装istio 此时会安装Istiod,ingressgateway和egressgateway,

istioctl install --set profile=demo

在这里插入图片描述

安装完成后可以看到

在这里插入图片描述

核心主件

  • istiod istiod
  • istio ingress gateway
  • istio egress gateway

istiod

istiod中的’d’ 代表 daemon

istiod 将老版本中需要的 Pilot,Galley,Citadel 和 sidecar 注入器执行的功能统一为一个二进制文件

参考资料 https://istio.io/latest/zh/blog/2020/istiod/

istio ingress gateway

istio ingress gateway是进入集群的大门,外部要访问网格内部需要从这个ingress gateway进入

istio egress gateway

istio egress gateway是出去集群的大门。流量出去的时候走这

卸载istio

istioctl x uninstall --purge

kiali安装使用

kialiIstio 可观察性的控制台。通过监视流量来推断拓扑和错误报告,它可以帮助您了解服务网格的结构和运行状态。 Kiali 提供了详细的的指标并与 Grafana 进行基础集成,可以用于高级查询。通过与 Jaeger 来提供分布式链路追踪功能。

官方资料 https://istio.io/latest/zh/docs/ops/integrations/kiali/

Kiali提供以下功能:

  • 1 分布式跟踪
  • 2 服务拓扑图
  • 3 服务发现
  • 4 健康检查
  • 5 指标度量收集
  • 6 配置校验

kiali安装

在github上找到对应版本的istio的源码,例如当前安装的istio版本为1.9.7

在这里插入图片描述

istio-1.9.x版本
https://github.com/istio/istio/tree/release-1.9/samples/addons

在这里插入图片描述

配置文件说明

  • kiali.yaml kiali安装配置文件
  • jaeger.yaml jaeger分布式链路追踪安装配置文件
  • prometheus.yaml prometheus监控安装配置文件
  • grafana.yaml grafana相关配置,可以不部署

安装时先修改kiali.yaml 中service的配置,将service的类型改为NodePort 这样可以外网访问

apiVersion: v1
kind: Service
metadata:name: kialinamespace: istio-systemlabels:... 省略
spec:ports:- name: httpprotocol: TCPport: 20001targetPort: 20001nodePort:  20001- name: http-metricsprotocol: TCPport: 9090targetPort: 9090nodePort:  9090selector:app.kubernetes.io/name: kialiapp.kubernetes.io/instance: kiali-servertype: NodePort  

最小安装只需要安装kiali.yaml prometheus.yaml jaeger.yaml

kubectl apply -f kiali.yaml -n istio-system
kubectl apply -f prometheus.yaml -n istio-system
kubectl apply -f jaeger.yaml -n istio-system

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

安装完成后可以看下

在这里插入图片描述

访问 http://192.168.0.160:20001/ kiali成功运行
在这里插入图片描述

http://www.lryc.cn/news/96708.html

相关文章:

  • Linux操作系统~必考面试题⑨
  • 国标GB28181协议视频平台EasyCVR修改录像计划等待时间较长的原因排查与解决
  • 线性代数(主题篇):第三章:向量组 、第四章:方程组
  • 大数据课程C4——ZooKeeper结构运行机制
  • 解决伪类元素‘after‘或者‘before‘遮挡父元素,导致鼠标移入或点击等事件不生效的问题
  • 电动汽车市场的减速,正在让小鹏汽车付出代价
  • Yarn上Streaming流自动调节资源设计
  • 微信小程序的个人博客--【小程序花园】
  • 智慧园区楼宇合集 | 图扑数字孪生管控系统
  • 【代码随想录day21】二叉搜索树中的众数
  • 【防火墙】iptables防火墙(一)
  • 微信小程序之富文本特殊处理
  • react-draft-wysiwyg富文本编辑器
  • P5721 【深基4.例6】数字直角三角形
  • 【电子设计大赛】2023 年全国大学生电子设计竞赛 仪器和主要元器件清单
  • (八九)如何与InfluxDB交互InfluxDB HTTP API
  • excel 生成sql技巧
  • 2023牛客暑期多校训练营2(D/E/F/H/I/K)
  • Ubuntu搭建Samba服务-学习记录
  • Unity Shader - if 和 keyword 的指令比较
  • 【C++入门到精通】C++入门 —— 类和对象(了解类和对象)
  • DRS 迁移本地mysql 到华为云
  • 腾讯云 Cloud Studio 实战训练营——快速构建React完成点餐H5页面
  • 在 React 中,props(属性)用于在组件之间传递数据
  • Unity实现camera数据注入RMP推送或轻量级RTSP服务模块
  • CVPR2023新作:3D感知的AI换脸算法
  • Android安卓实战项目(4)---提供给阿尔兹海默症患者的APP(源码在文末)
  • 详解Mybatis之自动映射 自定义映射问题
  • shiro的优点
  • 使用分布式HTTP代理爬虫实现数据抓取与分析的案例研究