動態負載均衡網關《envoy powershell 遙控器》項目開源了

簡介

個人《envoy powershell 遙控器》項目開源免費了linux

項目名:《envoy_powershell》nginx

項目中文名:《envoy powershell 遙控器》git

https://gitee.com/chuanjiao10/envoy_powershelldocker

powershell 語言編寫的 envoy 控制平面。
Envoy control plane written in powershell language.shell

envoy是比nginx更好的負載均衡網關,istio就是基於envoy。它的特點是【動態配置】負載均衡後端。而nginx的配置變化須要狂reload。後端

本項目是powershell語言編寫的 envoy 控制平面。負載均衡

本項目經過在linux中運行一個envoy容器,和powershell腳本,dom

把【使用本地配置文件,來動態控制envoy】,轉換成【從命令行,通過ssh協議,經過命令,控制envoy】,ssh

以達到動態添加後端,刪除後端,添加路由,刪除路由的功能。curl

本項目暫時沒有寫,添加多個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的關鍵字變了。

相關文章
相關標籤/搜索