一探istio-proxy(envoy)容器里的秘密
今天,在测试环境跑通了istio。
惭愧,是用MicroK8s跑的,其它环境,不敢呀。
基本功能都OK了。
在运行了istio-injection=enabled之后,每个pod运行时,会多一个istio-proxy容器。这是istio功能实现的关键。
那,这里面都有什么进程呢?
/usr/local/bin/pilot-agent
/usr/local/bin/envoy
而pod运行时,启动参数和挂载目录呢?
Args: proxy sidecar --configPath /etc/istio/proxy --binaryPath /usr/local/bin/envoy --serviceCluster productpage --drainDuration 45s --parentShutdownDuration 1m0s --discoveryAddress istio-pilot.istio-system:15007 --discoveryRefreshDelay 1s --zipkinAddress zipkin.istio-system:9411 --connectTimeout 10s --proxyAdminPort 15000 --controlPlaneAuthPolicy NONE
最后,看看/etc/istio/proxy/envoy-rev0.json的内容,在这里,它应该已获取到控制面的数据,并且拦截了POD的所有流量了:
{ "node": { "id": "sidecar~10.1.1.125~productpage-v1-6c5dc454fb-lxnwz.default~default.svc.cluster.local", "cluster": "productpage", "metadata": {"INTERCEPTION_MODE":"REDIRECT","ISTIO_PROXY_SHA":"istio-proxy:930841ca88b15365737acb7eddeea6733d4f98b9","ISTIO_PROXY_VERSION":"1.0.2","ISTIO_VERSION":"1.0.5","POD_NAME":"productpage-v1-6c5dc454fb-lxnwz","app":"productpage","istio":"sidecar","pod-template-hash":"6c5dc454fb","version":"v1"} }, "stats_config": { "use_all_default_tags": false, "stats_tags": [{ "tag_name": "cluster_name", "regex": "^cluster\\.((.+?(\\..+?\\.svc\\.cluster\\.local)?)\\.)" }, { "tag_name": "tcp_prefix", "regex": "^tcp\\.((.*?)\\.)\\w+?$" }, { "tag_name": "response_code", "regex": "_rq(_(\\d{3}))$" }, { "tag_name": "response_code_class", "regex": "_rq(_(\\dxx))$" }, { "tag_name": "http_conn_manager_listener_prefix", "regex": "^listener(?=\\.).*?\\.http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)" }, { "tag_name": "http_conn_manager_prefix", "regex": "^http\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)" }, { "tag_name": "listener_address", "regex": "^listener\\.(((?:[_.[:digit:]]*|[_\\[\\]aAbBcCdDeEfF[:digit:]]*))\\.)" } ] }, "admin": { "access_log_path": "/dev/null", "address": { "socket_address": { "address": "127.0.0.1", "port_value": 15000 } } }, "dynamic_resources": { "lds_config": { "ads": {} }, "cds_config": { "ads": {} }, "ads_config": { "api_type": "GRPC", "refresh_delay": "1s", "grpc_services": [ { "envoy_grpc": { "cluster_name": "xds-grpc" } } ] } }, "static_resources": { "clusters": [ { "name": "prometheus_stats", "type": "STATIC", "connect_timeout": "0.250s", "lb_policy": "ROUND_ROBIN", "hosts": [{ "socket_address": { "protocol": "TCP", "address": "127.0.0.1", "port_value": 15000, } }], }, { "name": "xds-grpc", "type": "STRICT_DNS", "connect_timeout": "10s", "lb_policy": "ROUND_ROBIN", "hosts": [ { "socket_address": {"address": "istio-pilot.istio-system", "port_value": 15010} } ], "circuit_breakers": { "thresholds": [ { "priority": "DEFAULT", "max_connections": 100000, "max_pending_requests": 100000, "max_requests": 100000 }, { "priority": "HIGH", "max_connections": 100000, "max_pending_requests": 100000, "max_requests": 100000 }] }, "upstream_connection_options": { "tcp_keepalive": { "keepalive_time": 300 } }, "http2_protocol_options": { } } , { "name": "zipkin", "type": "STRICT_DNS", "connect_timeout": "1s", "lb_policy": "ROUND_ROBIN", "hosts": [ { "socket_address": {"address": "zipkin.istio-system", "port_value": 9411} } ] } ], "listeners":[ { "address": { "socket_address": { "protocol": "TCP", "address": "0.0.0.0", "port_value": 15090, } }, "filter_chains": [{ "filters": [{ "name": "envoy.http_connection_manager", "config": { "codec_type": "AUTO", "stat_prefix": "stats", "route_config": { "virtual_hosts": [{ "name": "backend", "domains": [ "*" ], "routes": [{ "match": { "prefix": "/stats/prometheus" }, "route": { "cluster": "prometheus_stats" } }] }] }, "http_filters": { "name": "envoy.router" } } }] }], }, ], }, "tracing": { "http": { "name": "envoy.zipkin", "config": { "collector_cluster": "zipkin" } } }, }
一探istio-proxy(envoy)容器里的秘密的更多相关文章
- Istio Polit-agent & Envoy 启动流程
开篇 通过上一篇 Istio Sidecar注入原理 文章可以发现,在应用提交到kubernate部署时已经同时注入了Sidecar应用. 细心的话应该还可以发现,除了注入了istio-proxy应用 ...
- 【Istio】error initializing configuration '/etc/istio/proxy/envoy-rev0.json': malformed IP address: istio-statsd-prom-bridge
今天遇到一个问题,istio的组件一直在重启,查看log大概是这个样子 --03T07::.935580Z info Epoch starting --03T07::.936317Z info Env ...
- sencha动态向容器里添加控件出现重叠问题
sencha动态向容器里添加控件出现重叠问题原因是由于动态生成控件的id有重复导致的.(js取时间到毫秒来做id,放在for里面会出现几个控件id是相同的情况.).解决掉重复id的问题就好了. 版权声 ...
- Docker容器里时间与宿主机不同步
docker容器里时间设置: 第一种: Dockerfile文件中添加一行:RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime或者 第二种: ...
- c++继承构造子类调用父类构造函数的问题及关于容器指针的问题及当容器里储存指针时,记得要手动释放
看下面的一个问题: class Person { private: string name; public: Person(const string& s=""){ nam ...
- 转:STL容器里存放对象还是指针
一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题.就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类 ...
- 从容器里dump java堆实验探索(原创)
目标:从docker容器里dump java堆 模拟程序 占用空间500M, 设置启动JVM参数 docker启动命令 (PS:经过测试,至少要650M才能启动容器) 方式1: 通过docker ex ...
- 如何在宿主机上执行容器里的jmap,jtack,jstat 命令获取信息(原创)
一般情况下,我们要获取docker容器里的jvm信息只能进入容器后执行jmap,jstack,jstat 命令去获取,jstack,jstat还好,但是jmap dump的文件要拿出来,得先copy ...
- docker容器里设置中文时区
本文讨论docker容器里中文时区的问题,总所周知docker hub上的镜像默认都是英文时区的,在国人使用过程当中需要将时区设置成中文,我原来光配置/etc/localtime了date显示的时间也 ...
随机推荐
- LOJ6686 Stupid GCD(数论,欧拉函数,杜教筛)
做题重心转移到 LOJ 了. 至于为什么,如果你知道“……”的密码,就去看吧. LOJ 上用户自创题大多数都不可做,今天看到个可做题(而且还是个水题),就来做了一发. 明显枚举立方根.(以下令 $m= ...
- [LeetCode] 772. Basic Calculator III 基本计算器之三
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
- Kubernetes 学习(九)Kubernetes 源码阅读之正式篇------核心组件之 Scheduler
0. 前言 继续上一篇博客阅读 Kubernetes 源码,参照<k8s 源码阅读>首先学习 Kubernetes 的一些核心组件,首先是 kube-scheduler 本文严重参考原文: ...
- 第28课 “共享状态”提供者(std::promise/std::package_task)
一. std::promise和std::package_task (一)共享状态.提供者和管理者 // CLASS TEMPLATE _Promise template <class _Ty& ...
- server 2012 r2 配置
filezilla的问题还是让人摸不着头脑,配置和别的机器上一样就是报STL权限错误,最后换了个端口就连上了. 服务器,填远端IP,被动模式打开,生成一个证书,被动模式的商品一定要在入站规则里 客户端 ...
- 安装Office 2016 出现 Office 16 Click-to-Run Extensibility Component
无法安装 64 位版本的 Office,因为在您的 PC 上找到了以下 32 位程序: Office 16 Click-to-Run Extensibility Component 请卸载所有 32 ...
- IDEA Rider使用64位IISExpress(3)
将原来的Programe Files(x86)修改为不带x86的即可.
- 在 ubuntu 下如何压缩与解压 7zip 文件。
1. 首先利用 ubuntu 软件中心搜索并下载 7zip.或者在终端中输入:sudo apt-get install p7zip 2. 压缩 3. 解压 谢谢浏览!
- 如何将云上的Linux文件自动备份到本地服务器
需求场景: 将云上一台Linux服务器文件备份到本地服务器,一周一备即可. 面对这样一个需求,我们可能面临下列几个问题, 备份方式:是云服务器推文件到本地服务器写入,还是本地服务器从云服务器拉文件?这 ...
- 安装mysql驱动程序
1. MYSQL驱动:https://dev.mysql.com/downloads/connector/odbc/ 64 位版本:https://cdn.mysql.com//Downloads/ ...