日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Administration interface

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Administration interface 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Administration interface和Layered Runtime

管理接口admin

Envoy內(nèi)建了一個(gè)管理服務(wù)(administration server),它支持查詢和修改操作,甚至有可能暴露私有數(shù)據(jù)(例如統(tǒng)計(jì)數(shù)據(jù)、集群名稱和證書信息等),因此非常有必要精心編排其訪問控制機(jī)制以避免非授權(quán)訪問;

admin:access_log: [] # 訪問日志協(xié)議的相關(guān)配置,通常需要指定日志過濾器及日志配置等;access_log_path: ... # 管理接口的訪問日志文件路徑,無須記錄訪問日志時(shí)使用/dev/null;profile_path: ... # cpu profiler的輸出路徑,默認(rèn)為/var/log/envoy/envoy.prof;address: # 監(jiān)聽的套接字;socket_address: protocol: ...address: ...port_value: ...

下面是一個(gè)簡單的配置示例

admin: access_log_path: /tmp/admin_access.log address: socket_address: { address: 0.0.0.0, port_value: 9901 } # 提示:此處 僅為出于方便測試的目的,才設(shè)定其監(jiān)聽于對外通信的任意IP地址;安全起見,應(yīng)該使用127.0.0.1;

為Envoy添加Admin Interface

以前面一節(jié)中配置的“L7 Front Proxy”添加管理接口的方法,僅需要在其用到的envoy.yaml

配置文件中添加相關(guān)的配置信息即可;

下面給出的簡單的測試命令

admin: access_log_path: /tmp/admin_access.log address: socket_address: { address: 0.0.0.0, port_value: 9901 } static_resources: listeners: - name: listener_0 address: socket_address: { address: 0.0.0.0, port_value: 80 } filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: ingress_http codec_type: AUTO …… clusters: - name: local_cluster connect_timeout: 0.25s type: STATIC …… ~$ curl 172.31.5.2:9901/listeners listener_0::0.0.0.0:80 ~$ curl 172.31.5.2:9901/ready LIVE ~$ curl 172.31.5.2:9901/config_dump { "configs": [ { "@type": "type.googleapis.com/envoy.admin.v3.BootstrapConfigDump", "bootstrap": { "node": { "hidden_envoy_deprecated_build_version": "98c1c9e9a40804b93b074badad1cdf284b47d58b/1.18.3/Clean/RELEAS E/BoringSSL", "user_agent_name": "envoy", "user_agent_build_version": { "version": { "major_number": 1, "minor_number": 18, "patch": 3 }, …… }

管理接口admin速覽

admin接口內(nèi)置了多個(gè)/path,不同的path可能會(huì)分別接受不同的GET或POST請求;

admin commands are: /: Admin home page # GET /ready:Outputs a string and error code reflecting the state of the server. # GET,返回envoy服務(wù)當(dāng)前的狀態(tài); /certs: print certs on machine # GET,列出已加載的所有TLS證書及相關(guān)的信息; /clusters: upstream cluster status # GET,額外支持使用“GET /clusters?format=json” /config_dump: dump current Envoy configs # GET,打印Envoy加載的各類配置信息;支持include_eds、master和resource等查詢參數(shù); /contention: dump current Envoy mutex contention stats (if enabled) # GET,互斥跟蹤 /cpuprofiler: enable/disable the CPU profiler # POST,啟用或禁用cpuprofiler /healthcheck/fail: cause the server to fail health checks # POST,強(qiáng)制設(shè)定HTTP健康狀態(tài)檢查為失敗; /healthcheck/ok: cause the server to pass health checks # POST,強(qiáng)制設(shè)定HTTP健康狀態(tài)檢查為成功; /heapprofiler: enable/disable the heap profiler # POST,啟用或禁用heapprofiler; /help: print out list of admin commands /hot_restart_version: print the hot restart compatibility version # GET,打印熱重啟相關(guān)的信息; /listeners: print listener addresses # GET,列出所有偵聽器,支持使用“GET /listeners?format=json” /drain_listeners:Drains all listeners. # POST,驅(qū)逐所有的listener,支持使用inboundonly(僅入站偵聽器)和graceful(優(yōu)雅關(guān)閉)等查詢參數(shù); /logging: query/change logging levels # POST,啟用或禁用不同子組件上的不同日志記錄級別 /memory: print current allocation/heap usage # POST,打印當(dāng)前內(nèi)在分配信息,以字節(jié)為單位; /quitquitquit: exit the server # POST,干凈退出服務(wù)器; /reset_counters: reset all counters to zero # POST,重圍所有計(jì)數(shù)器; /tap:This endpoint is used for configuring an active tap session. # POST,用于配置活動(dòng)的帶標(biāo)簽的session; //reopen_logs:Triggers reopen of all access logs. Behavior is similar to SIGUSR1 handling. # POST,重新打開所有的日志,功能類似于SIGUSR1信號; /runtime: print runtime values # GET,以json格式輸出所有運(yùn)行時(shí)相關(guān)值; /runtime_modify: modify runtime values # POST /runtime_modify?key1=value1&key2=value2,添加或修改在查詢參數(shù)中傳遞的運(yùn)行時(shí)值 /server_info: print server version/status information # GET,打印當(dāng)前Envoy Server的相關(guān)信息; /stats: print server stats # 按需輸出統(tǒng)計(jì)數(shù)據(jù),例如GET /stats?filter=regex,另外還支持json和prometheus兩種輸出格式; /stats/prometheus: print server stats in prometheus format # 輸出prometheus格式的統(tǒng)計(jì)信息;

管理接口

幾個(gè)示例輸出

? GET /clusters:列出所有已配置的集群,包括每個(gè)集群中發(fā)現(xiàn)的所有上游主機(jī)以及每個(gè)主機(jī)的統(tǒng)計(jì)信息;支持輸出為json格式;

◆ 集群管理器信息:“version_info string”,無CDS時(shí),則顯示為“version_info::static”

◆ 集群相關(guān)的信息:斷路器、異常點(diǎn)檢測和用于表示是否通過CDS添加的標(biāo)識(shí)“add_via_api”

◆ 每個(gè)主機(jī)的統(tǒng)計(jì)信息:包括總連接數(shù)、活動(dòng)連接數(shù)、總請求數(shù)和主機(jī)的健康狀態(tài)等;不健康的原因通常有以下三種

  • failed_active_hc:未通過主動(dòng)健康狀態(tài)檢測;

  • failed_eds_health:被EDS標(biāo)記為不健康;

  • failed_outlier_check:未通過異常檢測機(jī)制的檢查;

? GET /listeners:列出所有已配置的偵聽器,包括偵聽器的名稱以及監(jiān)聽的地址;支持輸出為json格式;

? POST /reset_counters:將所有計(jì)數(shù)器重圍為0;不過,它只會(huì)影響Server本地的輸出,對于已經(jīng)發(fā)送到

外部存儲(chǔ)系統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)無效;

? GET /config_dump:以json格式打印當(dāng)前從Envoy的各種組件加載的配置信息;

? GET /ready:獲取Server就緒與否的狀態(tài),LIVE狀態(tài)為200,否則為503;

集群統(tǒng)計(jì)信息中主機(jī)的狀態(tài)說明

Envoy 運(yùn)行時(shí)配置概述

相較于靜態(tài)資源配置來說,xDS API的動(dòng)態(tài)配置機(jī)制使得Envoy的配置系統(tǒng)極具彈性;

? 但有時(shí)候配置的變動(dòng)僅需要修改個(gè)別的功能特性,若通過xDS接口完成未免有些動(dòng)靜過大,Runtime便是面向這種場景的配置接口;

? Runtime就是一個(gè)虛擬文件系統(tǒng)樹,可通過一至多個(gè)本地文件系統(tǒng)目錄、靜態(tài)資源、RTDS動(dòng)態(tài)發(fā)現(xiàn)和Admin Interface進(jìn)行定義和配置;

◆ 每個(gè)配置稱為一個(gè)Layer,因而也稱為“Layered Runtime”,這些Layer最終疊加生效;

換句話說,Runtime是與Envoy一起部署的外置實(shí)時(shí)配置系統(tǒng),用于支持更改配置設(shè)置而無需重啟Envoy或更改主配置;

? 運(yùn)行時(shí)配置相關(guān)的運(yùn)行時(shí)參數(shù)也稱為“功能標(biāo)志(feature flags)”或“決策者(decider)”;

? 通過運(yùn)行時(shí)參數(shù)更改配置將實(shí)時(shí)生效;

運(yùn)行時(shí)配置的實(shí)現(xiàn)也稱為運(yùn)行時(shí)配置供應(yīng)者;

? Envoy當(dāng)前支持的運(yùn)行時(shí)配置的實(shí)現(xiàn)是由多個(gè)層級組成的虛擬文件系統(tǒng)

◆ Envoy在配置的目錄中監(jiān)視符號鏈接的交換空間,并在發(fā)生交換時(shí)重新加載文件樹;

? 但Envoy會(huì)使用默認(rèn)運(yùn)行時(shí)值和“null”提供給程序以確保其正確運(yùn)行,因此,運(yùn)行時(shí)配置系統(tǒng)并不必不可少;

配置Envoy運(yùn)行時(shí)環(huán)境

啟用Envoy的運(yùn)行時(shí)配置機(jī)制需要在Bootstrap文件中予以啟用和配置

?定義在bootstrap配置文件中的layered_runtime頂級字段之下

? 一旦在bootstrap中給出layered_runtime字段,則至少要定義出一個(gè)layer;

layered_runtime: # 配置運(yùn)行配置供應(yīng)者,未指定時(shí)則使用null供應(yīng)者,即所有參數(shù)均加載其默認(rèn)值; layers: # 運(yùn)行時(shí)的層級列表,后面的層將覆蓋先前層上的配置; - name: ... # 運(yùn)行時(shí)的層級名稱,僅用于“GET /runtime”時(shí)的輸出; static_layer: {...} # 靜態(tài)運(yùn)行時(shí)層級,遵循運(yùn)行時(shí)probobuf JSON表示編碼格式;不同于靜態(tài)的xDS資源,靜態(tài)運(yùn)行時(shí)層一樣可被后面的層所覆蓋; # 此項(xiàng)配置,以及后面三個(gè)層級類型彼此互斥,因此一個(gè)列表項(xiàng)中僅可定義一層; disk_layer: {...} # 基于本地磁盤的運(yùn)行時(shí)層級; symlink_root: ... # 通過符號鏈接訪問的文件系統(tǒng)樹; subdirectory: ... # 指定要在根目錄中加載的子目錄; append_service_cluster: ... # 是否將服務(wù)集群附加至符號鏈接根目錄下的子路徑上; admin_layer: {...} # 管理控制臺(tái)運(yùn)行時(shí)層級,即通過/runtime管理端點(diǎn)查看,通過/runtime_modify管理端點(diǎn)修改的配置方式; rtds_layer: {...} # 運(yùn)行時(shí)發(fā)現(xiàn)服務(wù)(runtime discovery service)層級,即通過xDS API中的RTDS API動(dòng)態(tài)發(fā)現(xiàn)相關(guān)的層級配置; name: ... # 在rtds_config上為RTDS層訂閱的資源; rtds_config:RTDS的ConfigSource;

Front Proxy and TlS

Front proxy

在Envoy Mesh中,作為Front Proxy的Envoy通常是獨(dú)立運(yùn)行的進(jìn)程,它將客戶端請求代理至Mesh中的各Service,而這些Service中的每個(gè)應(yīng)用實(shí)例都會(huì)隱藏于一個(gè)Sidecar Proxy模式的envoy

實(shí)例背后;

? 我們這里仍然以docker-compose為編排工具,以便于將更多的精力集中于Envoy及Mesh之上

TLS

Envoy Mesh 中的TLS模式大體有如下幾種常用場景

Front Proxy面向下游客戶端提供https服務(wù),但Front Proxy、Mesh內(nèi)部的各服務(wù)間依然使用http協(xié)議

◆ https → http

? Front Proxy面向下游客戶端提供https服務(wù),而且Front Proxy、Mesh內(nèi)部的各服務(wù)間也使用https協(xié)議

◆ https → https

◆ 但是內(nèi)部各Service間的通信也有如下兩種情形

  • 僅客戶端驗(yàn)證服務(wù)端證書

  • 客戶端與服務(wù)端之間互相驗(yàn)證彼此的證書(mTLS)

◆ 注意:對于容器化的動(dòng)態(tài)環(huán)境來說,證書預(yù)配和管理將成為顯著難題

? Front Proxy直接以TCP Proxy的代理模式,在下游客戶端與上游服務(wù)端之間透傳tls協(xié)議;

◆ https-passthrough

◆ 集群內(nèi)部的東西向流量同樣工作于https協(xié)議模型

TLS Front Proxy

僅需要配置Listener面向下游客戶端提供tls通信,下面是Front Proxy Envoy的配置示例

static_resources:listeners:- name: listener_httpaddress:socket_address: { address: 0.0.0.0, port_value: 8443 }filter_chains: - filters:- name: envoy.filters.network.http_connection_managertyped_config: @type":type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManagerstat_prefix: ingress_httpcodec_type: AUTOroute_config:name: local_routevirtual_hosts:- name: web_service_01domains: ["*"]routes:- match: { prefix: "/" }route: { cluster: web_cluster_01 }http_filters: - name: envoy.filters.http.routertransport_socket:name: envoy.transport_sockets.tlstyped_config:"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContextcommon_tls_context:tls_certificates:# The following self-signed certificate pair is generated using:# $ openssl req -x509 -newkey rsa:2048 -keyout front-proxy.key -out front-proxy.crt -days 3650 -nodes -subj '/CN=www.magedu.com'- certificate_chain:filename: "/etc/envoy/certs/front-proxy.crt"private_key:filename: "/etc/envoy/certs/front-proxy.key“

Upstream and downstream TLS

除了Listener中面向下游提供tls通信,Front Proxy還要以tls協(xié)議與Envoy Mesh中的各Service建

立tls連接;

? 下面左側(cè)是Envoy Mesh中的某Service的Sidecar Proxy Envoy的配置示例,右則是Front Proxy Envoy

中的Cluster面向上游通信的配置示例

static_resources:listeners:- name: listener_0address:socket_address: { address: 0.0.0.0, port_value: 443 }filter_chains:- filters:- name: envoy.filters.network.http_connection_managertyped_config:……h(huán)ttp_filters: - name: envoy.filters.http.router transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext common_tls_context: tls_certificates: - certificate_chain: filename: "/etc/envoy/certs/webserver.crt" private_key: filename: "/etc/envoy/certs/webserver.key" clusters: - name: web_cluster_01connect_timeout: 0.25stype: STATIClb_policy: ROUND_ROBINload_assignment:cluster_name: web_cluster_01endpoints:- lb_endpoints:- endpoint:address:socket_address: { address: 172.31.8.11, port_value: 443 }- endpoint:address:socket_address: { address: 172.31.8.12, port_value: 443 }transport_socket:name: envoy.transport_sockets.tlstyped_config:"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext

Front Proxy https passthrough

TLS passthrough模式的Front Proxy需要使用TCP Proxy類型的Listener,Cluster的相關(guān)配置中也無需再指定transport_socket相關(guān)的配置;

? 但Envoy Mesh中各Service需要基于tls提供服務(wù)

static_resources:listeners:- name: listener_httpaddress:socket_address: { address: 0.0.0.0, port_value: 8443 }filter_chains:- filters:- name: envoy.filters.network.tcp_proxytyped_config:"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxycluster: web_cluster_01stat_prefix: https_passthroughclusters:- name: web_cluster_01connect_timeout: 0.25stype: STATIClb_policy: ROUND_ROBINload_assignment:cluster_name: web_cluster_01endpoints:- lb_endpoints:- endpoint:address:socket_address: { address: 172.31.9.11, port_value: 443 }- endpoint:address:socket_address: { address: 172.31.9.12, port_value: 443 }

總結(jié)

以上是生活随笔為你收集整理的Administration interface的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久婷婷综合国产 | 天天操天天拍 | 一级一毛片 | 亚洲无码一区二区三区 | 台湾无码一区二区 | 国产婷 | 成人福利片 | 精品一区二区三区四区视频 | 精品偷拍网 | 日韩香蕉网 | 精品免费看 | 国内av自拍 | 日本黄色片. | 四季av日韩精品一区 | 欧美老肥妇做爰bbww | 91在线最新| 亚洲一区在线播放 | 成人午夜激情网 | 一区二区日韩精品 | www.成人网.com | 在线视频观看免费 | xxxx日本免费| 日韩大片av | 91九色蝌蚪 | 在线免费视频一区 | 国产一区二区三区精品愉拍 | 国产原创视频在线 | 快色网站 | 中文字幕自拍偷拍 | 久久99精品国产 | 少妇光屁股影院 | 欧美日韩不卡视频 | 午夜精品福利在线 | 亚洲国产精品99 | 色婷综合 | 久操视频网站 | av资源天堂| 午夜精品久久久久久久久久久 | 黄色大片日本 | 大桥未久av在线 | 人妻少妇久久中文字幕 | 欧美日韩激情一区二区 | 青青草综合 | av之家在线| 成人污污视频在线观看 | 精品国产va久久久久久久 | 中国丰满老妇xxxxx交性 | 国产女人高潮毛片 | 一本一道久久综合 | 日韩欧美中文字幕精品 | 99热免费在线观看 | 亚洲综合免费观看高清完整版在线 | 又黄又爽又刺激的视频 | 欧美精品日韩在线 | 亚洲我射av| 亚洲三级在线免费观看 | 黄色网www| 91国偷自产中文字幕久久 | 亚洲最大在线观看 | 91亚色视频在线观看 | 亚洲成在人 | 久久久久久国产精品免费播放 | 炕上如狼似虎的呻吟声 | 成人在线观看一区二区 | 91成人在线观看高潮 | 嫩草视频91 | 在线观看免费av网站 | 国产一区h | 在线观看深夜视频 | 国产浮力第一页 | 日日碰狠狠添天天爽无码av | 黄色99视频 | 成人网站免费观看 | 朴麦妮原版视频高清资源 | 黄色网页网站 | 国产第一福利 | 91快色 | 中文字幕在线观看高清 | 中文字幕无码av波多野吉衣 | 性一交一乱一透一a级 | 色婷婷小说 | 五月网婷婷 | 对白刺激theporn | 亚洲三级视频在线观看 | www.rihan| 香蕉久久精品 | 欧美黄色激情 | 夜夜看| 综合色在线视频 | 日韩欧美久久久 | 99热精品在线观看 | 96超碰在线 | 爱情岛亚洲论坛入口 | 女人高潮特级毛片 | 黄色91在线观看 | 在线精品免费视频 | 中文字幕在线2018 | 午夜精品久久久久久毛片 | 美女精品网站 |