背景介绍

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

 

服务器准备

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

1. 开通香港竞价实例

Istio 安装与部署 istio 配置_服务器

 

2. 选择配置 - 4 核 8G

Istio 安装与部署 istio 配置_服务器_02

 

3. 选择操作系统 - CentOS 7.9

Istio 安装与部署 istio 配置_服务器_03

 

4. 设置实例数量 - 2 台

Istio 安装与部署 istio 配置_github_04

 

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

Istio 安装与部署 istio 配置_Istio 安装与部署_05

 

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

Istio 安装与部署 istio 配置_服务器_06

 

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

Istio 安装与部署 istio 配置_github_07

 

8. 开通

Istio 安装与部署 istio 配置_Istio 安装与部署_08

 

安装 Kubernetes

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

角色

内网 IP

公网 IP

master

172.19.0.11

43.155.112.62

node

172.19.0.4

43.154.249.121

 

Istio 安装与部署 istio 配置_github_09

 

为了方便快速安装 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

Istio 安装与部署 istio 配置_ci_10

 

2. 安装 kubernetes

执行以下指令安装 kubernetes:

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

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

Istio 安装与部署 istio 配置_服务器_11

 

安装 Istio

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

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

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

Istio 安装与部署 istio 配置_ci_12

 

体验 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

Istio 安装与部署 istio 配置_Istio 安装与部署_13

 

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

Istio 安装与部署 istio 配置_服务器_14

 

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

Istio 安装与部署 istio 配置_ci_15

 

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

调用链列表:

Istio 安装与部署 istio 配置_github_16

 

调用链细节:

Istio 安装与部署 istio 配置_服务器_17

 

调用关系:

Istio 安装与部署 istio 配置_服务器_18

 

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

Istio 安装与部署 istio 配置_Istio 安装与部署_19

 

Istio 安装与部署 istio 配置_服务器_20

 

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

Istio 安装与部署 istio 配置_服务器_21

 

温馨提示

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

Istio 安装与部署 istio 配置_github_22

 

项目地址

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

  • golang 版本

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

 

  • .Net 版本

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