背景介绍

Istio 是一种服务网格,是一种现代化的服务网络层,它提供了一种透明、独立于语言的方法,以灵活且轻松地实现应用网络功能自动化。它是一种管理构成云原生应用的不同微服务的常用解决方案。Istio 服务网格还支持这些微服务彼此之间的通信和数据共享方式。Istio 的学习与使用具有一定的门槛,对初学者可能不太友好,官方示例也不一定能运行成功,本文将介绍一个开源工具让你一键体验 Istio。

服务器准备

为了方便演示以及备案的烦恼,本文会在腾讯云开通两台 4 核 8 G 按量付费的香港竞价实例,如果已有服务器可跳过此步。

1. 开通香港竞价实例

2. 选择配置 - 4 核 8G

3. 选择操作系统 - CentOS 7.9

4. 设置实例数量 - 2 台

5. 选择网络 - Default,选择带宽 - 按使用流量 100Mbps

6. 选择安全组 - 默认,放通所有端口

7. 设置密码 - 这里使用 @ErikXu1234

8. 开通

安装 Kubernetes

准备好服务器后,信息如下:

角色 内网 IP 公网 IP
master 172.19.0.11 43.155.112.62
node 172.19.0.4 43.154.249.121

为了方便快速安装 kubernetes,这里使用 sealos 进行安装。更多 sealos 的信息,可查看:https://www.sealos.io/docs/getting-started/installation,也可以直接使用本文介绍的工具安装,工具封装了 sealos 。

1. 下载安装工具

在 master 服务器上,执行以下指令:

# 下载
wget https://github.com/ErikXu/power-ci/releases/download/0.1.1/power-ci.tar.gz # 解压
tar -xzvf power-ci.tar.gz # 设置权限
chmod +x power-ci

2. 安装 kubernetes

执行以下指令安装 kubernetes:

./power-ci k8s install --masters 172.19.0.11 --nodes 172.19.0.4 --password @ErikXu1234

等待 5-10 分钟,完成 kubernetes 安装:

安装 Istio

在 master 服务器上,执行以下指令,其中 erikxu.com 可以换成你的域名:

./power-ci istio install --domain erikxu.com

等待 5-10 分钟,完成 Istio 安装:

体验 Istio

1. 修改本地 hosts

由于没有 erikxu.com 的域名解析权,所以只能修改本地 hosts,把以下域名解析到 node 的公网 IP

43.154.249.121 bookinfo.erikxu.com
43.154.249.121 grafana.erikxu.com
43.154.249.121 jaeger.erikxu.com
43.154.249.121 kiali.erikxu.com
43.154.249.121 prometheus.erikxu.com

2. 访问示例页面 - http://bookinfo.erikxu.com:30080/productpage

多次刷新页面触发不同版本(右边多了星星):

3. 访问 kiali 查看流量调用情况 - http://kiali.erikxu.com:30080

4. 访问 jaeger 查看调用链 - http://jaeger.erikxu.com:30080

调用链列表:

调用链细节:

调用关系:

5. 访问 grafana 查看监控信息 - http://grafana.erikxu.com:30080

6.访问 prometheus 查看监控和 kiali 源数据 - http://prometheus.erikxu.com:30080/

温馨提示

如果使用腾讯云竞价实例,体验完毕后请记得销毁实例:

项目地址

目前计划维护 golang 和 .Net 两个版本,觉得好用请点个 star,反馈建议也欢迎提 issue,想一起做的开源项目的也可以留言联系或者提 pr。

  • golang 版本

https://github.com/ErikXu/power-ci

  • .Net 版本

https://github.com/ErikXu/PowerCI.Net

参考总结

以上就是本文希望分享的内容,如果大家有什么问题,欢迎在公众号 - 跬步之巅留言交流。

最新文章

  1. sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO
  2. centos虚拟机网络配置
  3. make menuconfig出错解决方法
  4. google chrome中如何删除一条输入网址提示
  5. js dom操作获取节点的一些方法
  6. 转账示例(三):service层面实现(线程管理Connection)(本例采用QueryRunner来执行sql语句,数据源为C3P0)
  7. JVM读书笔记PART3
  8. linux --> ubuntu和mac通过samba共享
  9. JAVA的Date类与Calendar类(常用方法)
  10. LoadRunner运行错误集
  11. redis 简单的注册
  12. Dart语言特性必备了解!
  13. ORA-38301:can not perform DDL/DML Over Object in Recycle Bin 11.2.0.4
  14. 【Scheme】元循环求值
  15. UI设计行业中的“延禧攻略”,教你从青铜变王者
  16. P1120 小木棍 [数据加强版]
  17. iframe元素的学习(笔记)
  18. 静态变量数组实现LRU算法
  19. 通过Fegin远程调用 ,返回JPA Page 对象报错
  20. 微信小程序数据分析之自定义分析

热门文章

  1. 故障案例 | 主从复制环境中tokudb引擎报错排查过程
  2. Percona XtraBackup 8.0.26使用说明
  3. Point2和Point3类定义
  4. LuoguP1240 诸侯安置
  5. java-引用数组、继承、super关键字
  6. Taurus.MVC 微服务框架 入门开发教程:项目部署:3、微服务应用程序版本升级:全站升级和局部模块升级。
  7. Spring 02: Spring接管下的三层项目架构
  8. C语言重定向输入:txt文件内容是中文,重定向输入显示乱码的原因
  9. 基于开源方案构建统一的文件在线预览与office协同编辑平台的架构与实现历程
  10. C#使用Spire.Pdf包对PDF文档进行数字签名