PowerShell免费软件

动态负载均衡网关《envoy powershell 遥控器》项目开源了

简介

我的《envoy powershell 遥控器》项目开源免费了

项目名:《envoy_powershell》

项目中文名:《envoy powershell 遥控器》

https://gitee.com/chuanjiao10/envoy_powershell

powershell 语言编写的 envoy 控制平面。
Envoy control plane written in powershell language.

envoy是比nginx更好的负载均衡网关,istio就是基于envoy。它的特色是【动态配置】负载均衡后端。而nginx的配置变化需要狂reload。

本项目是powershell语言编写的 envoy 控制平面。

本项目通过在linux中运行一个envoy容器,和powershell脚本,

把【使用本地配置文件,来动态控制envoy】,转换成【从命令行,经过ssh协议,通过命令,控制envoy】,

以达到动态添加后端,删除后端,添加路由,删除路由的功能。

本项目暂时没有写,添加多个envoy【listeners】的脚本。因为负载均衡网关会占用多核心cpu,建议多虚拟机使用。

可以通过建立多个虚拟机,或多个目录,docker run多个envoy容器,来实现多个【listeners】副本。

 

安装

 

1 安装一台linux,不支持win。

2 linux一键安装powershell。

https://gitee.com/chuanjiao10/kasini3000_agent_linux

3用git下载本软件的所有脚本,并保存在/etc/envoy_ps1。

4 linux上安装docker。

https://docs.docker.com/engine/install/

5 下载envoy:

docker pull envoyproxy/envoy-alpine:v1.14.4

 

使用

问:如何设定cds?

答: cds名,就是应用名。

add-cds.ps1 名

del-cds.ps1 名

delall-cds.ps1

 

问:如何设定后端ip,端口?

答:

add-eds.ps1 -cname cds名 -ip 1.2.3.4 -port 80

del-eds.ps1 -cname cds名 -ip 1.2.3.4

 

问:如何设定路由?

答:

add-rds.ps1 -cname cds名 -prefix '/url路径' -domains '域名1','域名2'

del-rds.ps1 -cname cds名 -prefix '/url路径' -domains '域名1','域名2'

delall-rds-and-new-rds.ps1 -cname cds名  # 这相当于添加了  -prefix '/' 和 -domains '*'

 

常见问题

问:设定的顺序是?

答:

*   添加顺序:应该先添加cds应用名,然后添加eds后端,最后添加http路由。

```

ssh root@你的linux的ip pwsh -f /etc/envoy_ps1/add-cds.ps1 -cname 'abc1'

ssh root@你的linux的ip pwsh -f /etc/envoy_ps1/add-eds.ps1 -cname 'abc1' -ip 1.2.3.4 -port 80

ssh root@你的linux的ip pwsh -f /etc/envoy_ps1/delall-rds-and-new-rds.ps1 -cname 'abc1'

```

*    删除顺序:应该先删除http路由。后删除cds应用名。

 

*   后端:当cds存在时,可以任意增删后端。可以把后端删空,但不建议。当删除cds时,会删除cds所属的所有后端。

 

问:如何查看脚本结果,及配置文件的正确性?

答:

http://linux的ip:9901/clusters   #后端

http://linux的ip:9901/config_dump   #配置信息

 

问:如何测试envoy的url跳转结果?

答:

* 在linux机上,用curl测试,跳转后的结果。

* 在linux机上,用curl测试,跳转前的结果。

 

比如 192.168.1.2:80 ------> www.baidu.com:80

 

线在linux上curl后面的端口(百度),然后curl前面的端口。

 

问:url跳转的源ip是什么?

答: 你的linux的ip

 

# 问:url跳转的源端口是什么?

答: 取决于你运行docker时的命令行。

下面例子中,源端口就是80

```

docker container run -d -p 80:10000

```

 

经过ssh,远程命令行的用法:

```

ssh root@你的linux的ip pwsh -f /etc/envoy_ps1/add-eds.ps1 -cname cds名 -ip 1.2.3.4 -port 80

```

 

问:如何运行容器?

答: 

```

docker container run -d -p 80:10000 -p 9901:9901 -v /etc/envoy_ps1:/etc/envoy envoyproxy/envoy-alpine:v1.14.4

```

*    envoy的lds监听,本机linux的,所有ip的,10000端口。这个没必要更改。通过容器映射后,暴露在linux机80端口。

 

*    envoy的admin功能监听,本机linux的,所有ip的,9901端口。

 

*  建立【/etc/envoy_ps1】目录,并把本项目的所有powershell脚本放进去。

 

*    **系统需求**  envoy-alpine:v1.14.4 ,不支持15及以上。15的关键字变了。

 

posted on   PowerShell免费软件  阅读(509)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示