{"id":2947,"date":"2017-12-09T04:54:54","date_gmt":"2017-12-08T20:54:54","guid":{"rendered":"http:\/\/switch.linesno.com\/?p=2947"},"modified":"2017-12-09T04:54:59","modified_gmt":"2017-12-08T20:54:59","slug":"google%e3%80%81ibm%e5%92%8clyft%e5%bc%80%e6%ba%90%e7%9a%84%e5%be%ae%e6%9c%8d%e5%8a%a1%e7%ae%a1%e7%90%86%e6%a1%86%e6%9e%b6istio","status":"publish","type":"post","link":"http:\/\/switch.linesno.com\/?p=2947","title":{"rendered":"Google\u3001IBM\u548cLyft\u5f00\u6e90\u7684\u5fae\u670d\u52a1\u7ba1\u7406\u6846\u67b6Istio"},"content":{"rendered":"<p>\u672c\u6587\u6839\u636e\u5b98\u7f51\u7684\u6587\u6863\u6574\u7406\u800c\u6210\uff0c\u6b65\u9aa4\u5305\u62ec\u5b89\u88c5<code>istio 0.1.5<\/code>\u5e76\u521b\u5efa\u4e00\u4e2abookinfo\u7684\u5fae\u670d\u52a1\u6765\u6d4b\u8bd5istio\u7684\u529f\u80fd\u3002<\/p>\n<p>\u6587\u4e2d\u4f7f\u7528\u7684yaml\u6587\u4ef6\u53ef\u4ee5\u5728<a href=\"https:\/\/github.com\/rootsongjc\/kubernetes-handbook\">kubernetes-handbook<\/a>\u7684<code>manifests\/istio<\/code>\u76ee\u5f55\u4e2d\u627e\u5230\uff0c\u6240\u6709\u7684\u955c\u50cf\u90fd\u6362\u6210\u4e86\u6211\u7684\u79c1\u6709\u955c\u50cf\u4ed3\u5e93\u5730\u5740\uff0c\u8bf7\u6839\u636e\u5b98\u7f51\u7684\u955c\u50cf\u81ea\u884c\u4fee\u6539\u3002<\/p>\n<h2 id=\"\u5b89\u88c5\u73af\u5883\">\u5b89\u88c5\u73af\u5883<\/h2>\n<ul>\n<li>CentOS 7.3.1611<\/li>\n<li>Docker 1.12.6<\/li>\n<li>Kubernetes 1.6.0<\/li>\n<\/ul>\n<h2 id=\"\u5b89\u88c5\">\u5b89\u88c5<\/h2>\n<p><strong>1.\u4e0b\u8f7d\u5b89\u88c5\u5305<\/strong><\/p>\n<p>\u4e0b\u8f7d\u5730\u5740\uff1a<a href=\"https:\/\/github.com\/istio\/istio\/releases\">https:\/\/github.com\/istio\/istio\/releases<\/a><\/p>\n<p>\u4e0b\u8f7dLinux\u7248\u672c\u7684\u5f53\u524d\u6700\u65b0\u7248\u5b89\u88c5\u5305<\/p>\n<pre class=\" language-shell\"><code class=\" language-shell\">wget https:\/\/github.com\/istio\/istio\/releases\/download\/0.1.5\/istio-0.1.5-linux.tar.gz\r\n<\/code><\/pre>\n<p><strong>2.\u89e3\u538b<\/strong><\/p>\n<p>\u89e3\u538b\u540e\uff0c\u5f97\u5230\u7684\u76ee\u5f55\u7ed3\u6784\u5982\u4e0b\uff1a<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">.\r\n\u251c\u2500\u2500 bin\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 istioctl\r\n\u251c\u2500\u2500 install\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 kubernetes\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 addons\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u251c\u2500\u2500 grafana.yaml\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u251c\u2500\u2500 prometheus.yaml\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u251c\u2500\u2500 servicegraph.yaml\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 zipkin.yaml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 istio-auth.yaml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 istio-rbac-alpha.yaml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 istio-rbac-beta.yaml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 istio.yaml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 README.md\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 templates\r\n\u2502\u00a0\u00a0         \u251c\u2500\u2500 istio-auth\r\n\u2502\u00a0\u00a0         \u2502\u00a0\u00a0 \u251c\u2500\u2500 istio-auth-with-cluster-ca.yaml\r\n\u2502\u00a0\u00a0         \u2502\u00a0\u00a0 \u251c\u2500\u2500 istio-cluster-ca.yaml\r\n\u2502\u00a0\u00a0         \u2502\u00a0\u00a0 \u251c\u2500\u2500 istio-egress-auth.yaml\r\n\u2502\u00a0\u00a0         \u2502\u00a0\u00a0 \u251c\u2500\u2500 istio-ingress-auth.yaml\r\n\u2502\u00a0\u00a0         \u2502\u00a0\u00a0 \u2514\u2500\u2500 istio-namespace-ca.yaml\r\n\u2502\u00a0\u00a0         \u251c\u2500\u2500 istio-egress.yaml\r\n\u2502\u00a0\u00a0         \u251c\u2500\u2500 istio-ingress.yaml\r\n\u2502\u00a0\u00a0         \u251c\u2500\u2500 istio-manager.yaml\r\n\u2502\u00a0\u00a0         \u2514\u2500\u2500 istio-mixer.yaml\r\n\u251c\u2500\u2500 istio.VERSION\r\n\u251c\u2500\u2500 LICENSE\r\n\u2514\u2500\u2500 samples\r\n    \u251c\u2500\u2500 apps\r\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 bookinfo\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 bookinfo.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 cleanup.sh\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 destination-ratings-test-delay.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 loadbalancing-policy-reviews.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mixer-rule-additional-telemetry.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mixer-rule-empty-rule.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mixer-rule-ratings-denial.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 mixer-rule-ratings-ratelimit.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 README.md\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 route-rule-all-v1.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 route-rule-delay.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 route-rule-reviews-50-v3.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 route-rule-reviews-test-v2.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 route-rule-reviews-v2-v3.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 route-rule-reviews-v3.yaml\r\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 httpbin\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 httpbin.yaml\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 README.md\r\n    \u2502\u00a0\u00a0 \u2514\u2500\u2500 sleep\r\n    \u2502\u00a0\u00a0     \u251c\u2500\u2500 README.md\r\n    \u2502\u00a0\u00a0     \u2514\u2500\u2500 sleep.yaml\r\n    \u2514\u2500\u2500 README.md\r\n\r\n11 directories, 41 files\r\n<\/code><\/pre>\n<p>\u4ece\u6587\u4ef6\u91cc\u8868\u4e2d\u53ef\u4ee5\u770b\u5230\uff0c\u5b89\u88c5\u5305\u4e2d\u5305\u62ec\u4e86kubernetes\u7684yaml\u6587\u4ef6\uff0c\u793a\u4f8b\u5e94\u7528\u548c\u5b89\u88c5\u6a21\u677f\u3002<\/p>\n<p><strong>3.\u5b89\u88c5istioctl<\/strong><\/p>\n<p>\u5c06<code>.\/bin\/istioctl<\/code>\u62f7\u8d1d\u5230\u4f60\u7684<code>$PATH<\/code>\u76ee\u5f55\u4e0b\u3002<\/p>\n<p><strong>4.\u68c0\u67e5RBAC<\/strong><\/p>\n<p>\u56e0\u4e3a\u6211\u4eec\u5b89\u88c5\u7684kuberentes\u7248\u672c\u662f1.6.0\u9ed8\u8ba4\u652f\u6301RBAC\uff0c\u8fd9\u4e00\u6b65\u53ef\u4ee5\u8df3\u8fc7\u3002\u5982\u679c\u4f60\u4f7f\u7528\u7684\u5176\u4ed6\u7248\u672c\u7684kubernetes\uff0c\u8bf7\u53c2\u8003<a href=\"https:\/\/istio.io\/docs\/tasks\/installing-istio.html\">\u5b98\u65b9\u6587\u6863<\/a>\u64cd\u4f5c\u3002<\/p>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u6b63\u786e\u7684\u8f93\u51fa\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">$ kubectl api-versions | grep rbac\r\nrbac.authorization.k8s.io\/v1alpha1\r\nrbac.authorization.k8s.io\/v1beta1\r\n<\/code><\/pre>\n<p><strong>5.\u521b\u5efa\u89d2\u8272\u7ed1\u5b9a<\/strong><\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">$ kubectl create -f install\/kubernetes\/istio-rbac-beta.yaml\r\nclusterrole \"istio-manager\" created\r\nclusterrole \"istio-ca\" created\r\nclusterrole \"istio-sidecar\" created\r\nclusterrolebinding \"istio-manager-admin-role-binding\" created\r\nclusterrolebinding \"istio-ca-role-binding\" created\r\nclusterrolebinding \"istio-ingress-admin-role-binding\" created\r\nclusterrolebinding \"istio-sidecar-role-binding\" created\r\n<\/code><\/pre>\n<p><strong>\u6ce8\u610f\uff1a<\/strong>\u5b98\u7f51\u7684\u5b89\u88c5\u5305\u4e2d\u7684\u8be5\u6587\u4ef6\u4e2d\u5b58\u5728RoleBinding\u9519\u8bef\uff0c\u5e94\u8be5\u662f\u96c6\u7fa4\u7ea7\u522b\u7684<code>clusterrolebinding<\/code>\uff0c\u800crelease\u91cc\u7684\u4ee3\u7801\u53ea\u662f\u666e\u901a\u7684<code>rolebinding<\/code>\uff0c\u67e5\u770b\u8be5Issue\u00a0<a href=\"https:\/\/github.com\/istio\/istio\/issues\/327\">Istio manager cannot list of create k8s TPR when RBAC enabled #327<\/a>\u3002<\/p>\n<p><strong>6.\u5b89\u88c5istio\u6838\u5fc3\u7ec4\u4ef6<\/strong><\/p>\n<p>\u7528\u5230\u7684\u955c\u50cf\u6709\uff1a<\/p>\n<pre><code>docker.io\/istio\/mixer:0.1.5\r\ndocker.io\/istio\/manager:0.1.5\r\ndocker.io\/istio\/proxy_debug:0.1.5\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u6682\u65f6\u4e0d\u5f00\u542f<a href=\"https:\/\/istio.io\/docs\/concepts\/network-and-auth\/auth.html\">Istio Auth<\/a>\u3002<\/p>\n<p><strong>\u6ce8\u610f\uff1a<\/strong>\u672c\u6587\u4e2d\u7528\u5230\u7684\u6240\u6709yaml\u6587\u4ef6\u4e2d\u7684<code>type: LoadBalancer<\/code>\u53bb\u6389\uff0c\u4f7f\u7528\u9ed8\u8ba4\u7684ClusterIP\uff0c\u7136\u540e\u914d\u7f6eTraefik ingress\uff0c\u5c31\u53ef\u4ee5\u5728\u96c6\u7fa4\u5916\u90e8\u8bbf\u95ee\u3002\u8bf7\u53c2\u8003<a href=\"https:\/\/github.com\/rootsongjc\/kubernetes-handbook\/blob\/master\/practice\/traefik-ingress-installation.md\">\u5b89\u88c5Traefik ingress<\/a>\u3002<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">kubectl apply -f install\/kubernetes\/istio.yaml\r\n<\/code><\/pre>\n<p><strong>7.\u5b89\u88c5\u76d1\u63a7\u63d2\u4ef6<\/strong><\/p>\n<p>\u7528\u5230\u7684\u955c\u50cf\u6709\uff1a<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">docker.io\/istio\/grafana:0.1.5\r\nquay.io\/coreos\/prometheus:v1.1.1\r\ngcr.io\/istio-testing\/servicegraph:latest\r\ndocker.io\/openzipkin\/zipkin:latest\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u65b9\u4fbf\u4e0b\u8f7d\uff0c\u5176\u4e2d\u4e24\u4e2a\u955c\u50cf\u6211\u5907\u4efd\u5230\u4e86\u65f6\u901f\u4e91\uff1a<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">index.tenxcloud.com\/jimmy\/prometheus:v1.1.1\r\nindex.tenxcloud.com\/jimmy\/servicegraph:latest\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u63d2\u4ef6<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">kubectl apply -f install\/kubernetes\/addons\/prometheus.yaml\r\nkubectl apply -f install\/kubernetes\/addons\/grafana.yaml\r\nkubectl apply -f install\/kubernetes\/addons\/servicegraph.yaml\r\nkubectl apply -f install\/kubernetes\/addons\/zipkin.yaml\r\n<\/code><\/pre>\n<p>\u5728traefik ingress\u4e2d\u589e\u52a0\u589e\u52a0\u4ee5\u4e0a\u51e0\u4e2a\u670d\u52a1\u7684\u914d\u7f6e\uff0c\u540c\u65f6\u589e\u52a0istio-ingress\u914d\u7f6e\u3002<\/p>\n<pre class=\" language-yaml\"><code class=\" language-yaml\">    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">host<\/span><span class=\"token punctuation\">:<\/span> grafana.istio.io\r\n      <span class=\"token key atrule\">http<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">paths<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">path<\/span><span class=\"token punctuation\">:<\/span> \/\r\n          <span class=\"token key atrule\">backend<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token key atrule\">serviceName<\/span><span class=\"token punctuation\">:<\/span> grafana\r\n            <span class=\"token key atrule\">servicePort<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">3000<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">host<\/span><span class=\"token punctuation\">:<\/span> servicegraph.istio.io\r\n      <span class=\"token key atrule\">http<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">paths<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">path<\/span><span class=\"token punctuation\">:<\/span> \/\r\n          <span class=\"token key atrule\">backend<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token key atrule\">serviceName<\/span><span class=\"token punctuation\">:<\/span> servicegraph\r\n            <span class=\"token key atrule\">servicePort<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">8088<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">host<\/span><span class=\"token punctuation\">:<\/span> prometheus.istio.io\r\n      <span class=\"token key atrule\">http<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">paths<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">path<\/span><span class=\"token punctuation\">:<\/span> \/\r\n          <span class=\"token key atrule\">backend<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token key atrule\">serviceName<\/span><span class=\"token punctuation\">:<\/span> prometheus\r\n            <span class=\"token key atrule\">servicePort<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">9090<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">host<\/span><span class=\"token punctuation\">:<\/span> zipkin.istio.io\r\n      <span class=\"token key atrule\">http<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">paths<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">path<\/span><span class=\"token punctuation\">:<\/span> \/\r\n          <span class=\"token key atrule\">backend<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token key atrule\">serviceName<\/span><span class=\"token punctuation\">:<\/span> zipkin\r\n            <span class=\"token key atrule\">servicePort<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">9411<\/span>\r\n    <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">host<\/span><span class=\"token punctuation\">:<\/span> ingress.istio.io\r\n      <span class=\"token key atrule\">http<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token key atrule\">paths<\/span><span class=\"token punctuation\">:<\/span>\r\n        <span class=\"token punctuation\">-<\/span> <span class=\"token key atrule\">path<\/span><span class=\"token punctuation\">:<\/span> \/\r\n          <span class=\"token key atrule\">backend<\/span><span class=\"token punctuation\">:<\/span>\r\n            <span class=\"token key atrule\">serviceName<\/span><span class=\"token punctuation\">:<\/span> istio<span class=\"token punctuation\">-<\/span>ingress\r\n            <span class=\"token key atrule\">servicePort<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">80<\/span>\r\n<\/code><\/pre>\n<h2 id=\"\u6d4b\u8bd5\">\u6d4b\u8bd5<\/h2>\n<p>\u6211\u4eec\u4f7f\u7528Istio\u63d0\u4f9b\u7684\u6d4b\u8bd5\u5e94\u7528<a href=\"https:\/\/istio.io\/docs\/samples\/bookinfo.html\">bookinfo<\/a>\u5fae\u670d\u52a1\u6765\u8fdb\u884c\u6d4b\u8bd5\u3002<\/p>\n<p>\u8be5\u5fae\u670d\u52a1\u7528\u5230\u7684\u955c\u50cf\u6709\uff1a<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">istio\/examples-bookinfo-details-v1\r\nistio\/examples-bookinfo-ratings-v1\r\nistio\/examples-bookinfo-reviews-v1\r\nistio\/examples-bookinfo-reviews-v2\r\nistio\/examples-bookinfo-reviews-v3\r\nistio\/examples-bookinfo-productpage-v1\r\n<\/code><\/pre>\n<p>\u8be5\u5e94\u7528\u67b6\u6784\u56fe\u5982\u4e0b\uff1a<\/p>\n<p><img decoding=\"async\" src=\"\/2017\/12\/49e2abc11726f2428d949b2e2fbf3f9a.png\" alt=\"BookInfo Sample\u5e94\u7528\u67b6\u6784\u56fe\" \/><\/p>\n<p><strong>\u90e8\u7f72\u5e94\u7528<\/strong><\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">kubectl create -f &lt;(istioctl kube-inject -f samples\/apps\/bookinfo\/bookinfo.yaml)\r\n<\/code><\/pre>\n<p><code>Istio kube-inject<\/code>\u547d\u4ee4\u4f1a\u5728<code>bookinfo.yaml<\/code>\u6587\u4ef6\u4e2d\u589e\u52a0Envoy sidecar\u4fe1\u606f\u3002\u53c2\u8003\u00a0<a href=\"https:\/\/istio.io\/docs\/reference\/commands\/istioctl.html#istioctl-kube-inject\">istio \u6587\u6863<\/a><\/p>\n<p>\u5728\u672c\u673a\u7684<code>\/etc\/hosts<\/code>\u4e0b\u589e\u52a0VIP\u8282\u70b9\u548c<code>ingress.istio.io<\/code>\u7684\u5bf9\u5e94\u4fe1\u606f\u3002\u5177\u4f53\u6b65\u9aa4\u53c2\u8003\uff1a<a href=\"https:\/\/github.com\/rootsongjc\/kubernetes-handbook\/blob\/master\/practice\/edge-node-configuration.md\">\u8fb9\u7f18\u8282\u70b9\u914d\u7f6e<\/a><\/p>\n<p>\u5728\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95ee<a href=\"http:\/\/ingress.istio.io\/productpage\">http:\/\/ingress.istio.io\/productpage<\/a><\/p>\n<h2 id=\"\u76d1\u63a7\">\u76d1\u63a7<\/h2>\n<p>\u4e0d\u65ad\u5237\u65b0productpage\u9875\u9762\uff0c\u5c06\u53ef\u4ee5\u5728\u4ee5\u4e0b\u51e0\u4e2a\u76d1\u63a7\u4e2d\u770b\u5230\u5982\u4e0b\u754c\u9762\u3002<\/p>\n<p><strong>Grafana\u9875\u9762<\/strong><\/p>\n<p><a href=\"http:\/\/grafana.istio.io\/\">http:\/\/grafana.istio.io<\/a><\/p>\n<p><img decoding=\"async\" src=\"\/2017\/12\/6a39bf2ef145b12fbffb3553954a8902.jpg\" alt=\"Istio Grafana\u754c\u9762\" \/><\/p>\n<p><strong>Prometheus\u9875\u9762<\/strong><\/p>\n<p><a href=\"http:\/\/prometheus.istio.io\/\">http:\/\/prometheus.istio.io<\/a><\/p>\n<p><img decoding=\"async\" src=\"\/2017\/12\/cccc7f0a0b309cc870d6d832d40f715c.jpg\" alt=\"Prometheus\u9875\u9762\" \/><\/p>\n<p><strong>Zipkin\u9875\u9762<\/strong><\/p>\n<p><a href=\"http:\/\/zipkin.istio.io\/\">http:\/\/zipkin.istio.io<\/a><\/p>\n<p><img decoding=\"async\" src=\"\/2017\/12\/ad8d2733b53e26e918a8dbcb02431d75.jpg\" alt=\"Zipkin\u9875\u9762\" \/><\/p>\n<p><strong>ServiceGraph\u9875\u9762<\/strong><\/p>\n<p><a href=\"http:\/\/servicegraph.istio.io\/dotviz\">http:\/\/servicegraph.istio.io\/dotviz<\/a><\/p>\n<p>\u53ef\u4ee5\u7528\u6765\u67e5\u770b\u670d\u52a1\u95f4\u7684\u4f9d\u8d56\u5173\u7cfb\u3002<\/p>\n<p>\u83b7\u5f97json\u683c\u5f0f\u7684\u8fd4\u56de\u7ed3\u679c\uff0c\u8bbf\u95ee<a href=\"http:\/\/servicegraph.istio.io\/graph\">http:\/\/servicegraph.istio.io\/graph<\/a><\/p>\n<p><img decoding=\"async\" src=\"\/2017\/12\/ff562e59c93bb7255137967f0dff652a.jpg\" alt=\"ServiceGraph\u9875\u9762\" \/><\/p>\n<h2 id=\"\u66f4\u8fdb\u4e00\u6b65\"><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u6839\u636e\u5b98\u7f51\u7684\u6587\u6863\u6574\u7406\u800c\u6210\uff0c\u6b65\u9aa4\u5305\u62ec\u5b89\u88c5istio 0.1.5\u5e76\u521b\u5efa\u4e00\u4e2abookinfo\u7684\u5fae\u670d\u52a1\u6765\u6d4b\u8bd5isti [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[86],"tags":[],"class_list":["post-2947","post","type-post","status-publish","format-standard","hentry","category-service"],"_links":{"self":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/2947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2947"}],"version-history":[{"count":1,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/2947\/revisions"}],"predecessor-version":[{"id":2953,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/2947\/revisions\/2953"}],"wp:attachment":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2947"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}