Istio sidecar proxy 配置

假如您使用 kubernetes-vagrant-centos-cluster 部署了 Kubernetes 集群并开启了 Istio,再部署 bookinfo 示例,那么在 default 命名空间下有一个名字类似于 ratings-v1-7c9949d479-dwkr4 的 Pod,使用下面的命令查看该 Pod 的 Envoy sidecar 的全量配置:

kubectl -n default exec ratings-v1-7c9949d479-dwkr4 -c istio-proxy curl http://localhost:15000/config_dump > dump-rating.json

将 Envoy 的运行时配置 dump 出来之后你将看到一个长 6000 余行的配置文件。

下图展示的是 Envoy 的配置。

Envoy 配置

Istio 会在为 Service Mesh 中的每个 Pod 注入 Sidecar 的时候同时为 Envoy 注入 Bootstrap 配置,其余的配置是通过 Pilot 下发的,注意整个数据平面即 Service Mesh 中的 Envoy 的动态配置应该是相同的。您也可以使用上面的命令检查其他 sidecar 的 Envoy 配置是否跟最上面的那个相同。

使用下面的命令检查 Service Mesh 中的所有有 Sidecar 注入的 Pod 中的 proxy 配置是否同步。

$ istioctl proxy-status
PROXY                                                 CDS        LDS        EDS               RDS          PILOT                            VERSION
details-v1-876bf485f-sx7df.default                    SYNCED     SYNCED     SYNCED (100%)     SYNCED       istio-pilot-5bf6d97f79-6lz4x     1.0.0
...

istioctl 这个命令行工具就像 kubectl 一样有很多神器的魔法,通过它可以高效的管理 Istio 和 debug。

参考

编辑本页

宋净超(Jimmy Song)
宋净超(Jimmy Song)
Tetrate 布道师/云原生社区(中国)创始人

云原生资料库主编