envoy部分三:enovy的部署


◼ Envoy通常用於以容器編排系統為底層環境的服務網格中,並以sidecar的形式與主程序容 器運行為單個Pod。

◼ 非編排系統環境中測試時,可以將主程序與Envoy運行於同一容器,或手動組織主程序 容器與Envoy容器共享同一網絡名稱空間。

◼ Front Proxy類型的Envoy可獨立運行為守護進程或容器。

Envoy項目為多種平台(例如amd64和arm64等)維護有相應的Docker Image,我們可按需獵 取相應鏡像后以容器形式運行Envoy,而且它們存在以下幾種變化形式

◼ envoy:基於Ubuntu Bionic制作的Docker Image
◼ envoy-alpine和envoy-alpine-dev:基於alpine制作的Docker Image
◼ envoy-debug和envoy-debug-dev:基於Ubuntu制作的帶有debug環境的Docker Image
◼ envoy-windows 和envoy-windows-dev :基於Windows 1809 制作的Docker Image

Get Envoy項目為多個主流的Linux發行版(例如Ubuntu、CentOS和RHEL等)維護了二進制 的發行版,配置相應的倉庫后,即可使用系統的包管理器進行安裝;

◼ Ubuntu
◆https://dl.bintray.com/tetrate/getenvoy-deb

◼ CentOS
◆https://tetrate.bintray.com/getenvoy-rpm/centos/

◼ RHEL
◆https://tetrate.bintray.com/getenvoy-rpm/rhel/

部署文檔(建議使用穩定版)

◼ https://www.envoyproxy.io/docs/envoy/latest/start/install

部署Envoy,以Ubuntu Linux發行版為例

$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -sL 'https://getenvoy.io/gpg' | sudo apt-key add -
# 檢查密鑰
$ apt-key fingerprint 6FF974DB | grep "5270 CEAC"
$ sudo add-apt-repository "deb [arch=amd64] https://dl.bintray.com/tetrate/getenvoy-deb $(lsb_release -cs) stable"
$ sudo apt update
$ sudo apt install getenvoy-envoy

運行Envoy

◼ 檢查envoy的版本
◆envoy --version

◼ 獲取幫助
◆envoy --help

◼ 檢查配置文件語法
◆envoy --mode validate -c /path/to/my-envoy-config.yaml

◼ 運行Envoy,並指定自定義的日志路徑
◆envoy -c envoy-demo.yaml --log-path logs/custom.log

◆示例配置文件(提示:被代理的服務是Google,建議修改為其他可用地址)
https://www.envoyproxy.io/docs/envoy/latest/_downloads/92dcb9714fb6bc288d042029b34c0de4/envoy-demo.yaml 

啟動envoy

啟動Envoy時,需要通過“-c”選項為其指定初始配置文件以提供引導配置(Bootstrap configuration),這也是使用v3 API的必然要求:

~]$ envoy -c <path to config>.{json,yaml,pb,pb_text}

◆擴展名代表了配置信息的組織格式;

引導配置是Envoy配置信息的基點,用於承載Envoy的初始配置,它可能 包括靜態資源和動態資源的定義

◆靜態資源(static_resources)於啟動直接加載

◆動態資源(dynamic_resources)則需要通過配置的xDS服務獲取並生成

通常,Listener和Cluster是Envoy得以運行的基礎,而二者的配置可以全部為靜態格式,也 可以混合 使 用動態及靜態方式提供,或者全部配置為動態;

◆例如,一個yaml格式純靜態的基礎配置框架:
static_resources
  listeners: 
  - name: ...
    address: {}
    filter_chains: []
    clusters: 
    - name: ...
      type: ...
      connect_timeout: {}
      dns_lookup_family: V4_ONLY
      load_assignment: {}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM