mirror of https://github.com/istio/istio.io.git
[zh] improve vm-architecture observability-issues grafana (#15188)
Signed-off-by: xin.li <xin.li@daocloud.io>
This commit is contained in:
parent
94841e7a30
commit
45e5d506d3
|
|
@ -10,15 +10,15 @@ owner: istio/wg-policies-and-telemetry-maintainers
|
|||
test: n/a
|
||||
---
|
||||
|
||||
## 在 Mac 上运行 Istio 时,Zipkin 不生效{#no-traces-appearing-in-Zipkin-when-running-Istio-locally-on-mac}
|
||||
## 在 Mac 上运行 Istio 时,Zipkin 不生效 {#no-traces-appearing-in-Zipkin-when-running-Istio-locally-on-mac}
|
||||
|
||||
Istio 已经完成安装并且都在正常工作,但是 Zipkin 中没有显示任何 trace 信息。
|
||||
Istio 已经完成安装且正常工作,但是 Zipkin 中没有显示任何 trace 信息。
|
||||
|
||||
这可能是由已知的 [Docker 问题](https://github.com/docker/for-mac/issues/1260)引起的,
|
||||
容器内的时间可能与主机上的时间有很大偏差。如果是这种情况,当您在 Zipkin 中选择了一个长时间范围时,
|
||||
容器内的时间可能与主机上的时间有较大偏差。如果是这种情况,当您在 Zipkin 中选择了一个长时间范围时,
|
||||
您可能会发现数据比预期早了一些时间。
|
||||
|
||||
您还可以通过对比 Docker 容器内和容器外的日期来确认该问题:
|
||||
您还可以通过对比 Docker 容器内和容器外的日期来确认此问题:
|
||||
|
||||
{{< text bash >}}
|
||||
$ docker run --entrypoint date gcr.io/istio-testing/ubuntu-16-04-slave:latest
|
||||
|
|
@ -30,26 +30,26 @@ $ date -u
|
|||
Thu Jun 15 02:25:42 UTC 2017
|
||||
{{< /text >}}
|
||||
|
||||
要解决此问题,您首先要重启 Docker 然后重新安装 Istio。
|
||||
要解决此问题,您需要重启 Docker 后重新安装 Istio。
|
||||
|
||||
## 缺少 Grafana 输出{#missing-Grafana-output}
|
||||
## 缺少 Grafana 输出 {#missing-Grafana-output}
|
||||
|
||||
如果从本地 Web 客户端连接到 Istio 端时,无法获取 Grafana 的数据,
|
||||
则应该验证客户端和服务器的日期和时间是否匹配。
|
||||
|
||||
Web 客户端(例如:Chrome)的时间会影响 Grafana 的输出。此问题的简单解决方案是验证
|
||||
Kubernetes 集群内的时间同步服务是否正确运行,以及 Web 客户端计算机是否也与目标服务器的时间相同。
|
||||
一些常见的时间同步系统有 NTP 和 Chrony。在有防火墙的实验室中问题比较严重。
|
||||
这种情况可能是 NTP 没有正确配置,指向基于实验室的 NTP 服务。
|
||||
一些常见的时间同步系统有 NTP 和 Chrony。在有防火墙的实验室中问题比较严重,
|
||||
这种情况可能是 NTP 配置错误,没有正确指向基于实验室的 NTP 服务。
|
||||
|
||||
## 验证 Istio CNI Pod 正在运行(如果使用){#verify-Istio-CNI-pods-are-running}
|
||||
## 验证 Istio CNI Pod 正在运行(如果使用) {#verify-Istio-CNI-pods-are-running}
|
||||
|
||||
Istio CNI 插件在 Kubernetes Pod 生命周期中的网络配置阶段执行 Istio
|
||||
网格 Pod 流量重定向,从而消除了用户将 Pod 部署到 Istio 网格中的
|
||||
[`NET_ADMIN` 和 `NET_RAW` 的需求](/zh/docs/ops/deployment/application-requirements/)。
|
||||
网格 Pod 流量重定向,从而消除了用户将 Pod 部署到 Istio 网格是对
|
||||
[`NET_ADMIN` 和 `NET_RAW` 权限的依赖](/zh/docs/ops/deployment/application-requirements/)。
|
||||
Istio CNI 插件取代了 `istio-init` 容器提供的功能。
|
||||
|
||||
1. 验证 `istio-cni-node` Pod 正在运行:
|
||||
1. 验证 `istio-cni-node` Pod 是否正在运行:
|
||||
|
||||
{{< text bash >}}
|
||||
$ kubectl -n kube-system get pod -l k8s-app=istio-cni-node
|
||||
|
|
@ -57,4 +57,4 @@ Istio CNI 插件取代了 `istio-init` 容器提供的功能。
|
|||
|
||||
1. 如果 `PodSecurityPolicy` 在您的集群中正在工作,确认 `istio-cni`
|
||||
Service Account 可以使用 `PodSecurityPolicy` 的
|
||||
[`NET_ADMIN` 和 `NET_RAW` 的功能](/zh/docs/ops/deployment/application-requirements/)。
|
||||
[`NET_ADMIN` 和 `NET_RAW` 功能](/zh/docs/ops/deployment/application-requirements/)。
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ Istio 对虚拟机的支持允许将 Kubernetes 集群外的工作负载接入
|
|||
|
||||
{{< tab name="单网络" category-value="single" >}}
|
||||
|
||||
在这个网格中,存在一个单独的[网络](/zh/docs/ops/deployment/deployment-models/#network-models),
|
||||
在这个网格中,存在一个单独的[网络区](/zh/docs/ops/deployment/deployment-models/#network-models),
|
||||
其中 Pod 和虚拟机彼此之间可以直接通信。
|
||||
|
||||
包括 XDS 配置和证书签名在内的控制面流量在集群中通过 Gateway 进行发送。
|
||||
|
|
@ -32,40 +32,40 @@ Pod 和虚拟机彼此之间可以直接通信,无需任何中间 Gateway。
|
|||
|
||||
{{< image width="75%"
|
||||
link="single-network.svg"
|
||||
alt="有单个网络和多个虚拟机的服务网格"
|
||||
title="单个网络"
|
||||
caption="有单个网络和多个虚拟机的服务网格"
|
||||
alt="有单个网络区和多个虚拟机的服务网格"
|
||||
title="单个网络区"
|
||||
caption="有单个网络区和多个虚拟机的服务网格"
|
||||
>}}
|
||||
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab name="多网络" category-value="multiple" >}}
|
||||
|
||||
在这个网格中,存在多个[网络](/zh/docs/ops/deployment/deployment-models/#network-models),
|
||||
在这个网格中,存在多个[网络区](/zh/docs/ops/deployment/deployment-models/#network-models),
|
||||
其中 Pod 和虚拟机彼此之间不能直接通信。
|
||||
|
||||
包括 XDS 配置和证书签名在内的控制面流量在集群中通过 Gateway 进行发送。
|
||||
类似的,Pod 和虚拟机的所有通信流经作为两个网络之间桥梁的 Gateway。
|
||||
类似的,Pod 和虚拟机的所有通信流经作为两个网络区之间桥梁的 Gateway。
|
||||
|
||||
{{< image width="75%"
|
||||
link="multi-network.svg"
|
||||
alt="有多个网络和多个虚拟机的服务网格"
|
||||
title="多个网络"
|
||||
caption="有多个网络和多个虚拟机的服务网格"
|
||||
alt="有多个网络区和多个虚拟机的服务网格"
|
||||
title="多个网络区"
|
||||
caption="有多个网络区和多个虚拟机的服务网格"
|
||||
>}}
|
||||
|
||||
{{< /tab >}}
|
||||
|
||||
{{< /tabset >}}
|
||||
|
||||
## 服务关联{#service-association}
|
||||
## 服务关联 {#service-association}
|
||||
|
||||
Istio 提供了两种机制来表示虚拟机工作负载:
|
||||
|
||||
* [`WorkloadGroup`](/zh/docs/reference/config/networking/workload-group/)
|
||||
表示共享通用属性的虚拟机工作负载逻辑组合。这类似于 Kubernetes 中的 `Deployment`。
|
||||
表示共享通用属性的虚拟机工作负载逻辑组合,这类似于 Kubernetes 中的 `Deployment`。
|
||||
* [`WorkloadEntry`](/zh/docs/reference/config/networking/workload-entry/)
|
||||
表示虚拟机工作负载的单个实例。这类似于 Kubernetes 中的 `Pod`。
|
||||
表示虚拟机工作负载的单个实例,这类似于 Kubernetes 中的 `Pod`。
|
||||
|
||||
创建这些资源(`WorkloadGroup` 和 `WorkloadEntry`)不会造成任何资源的制备,也不会运行任何虚拟机负载。
|
||||
这些资源只是引用这些负载并通知 Istio 如何合理地配置网格。
|
||||
|
|
@ -89,7 +89,7 @@ spec:
|
|||
{{< /text >}}
|
||||
|
||||
一旦虚拟机已[被配置并添加到网格](/zh/docs/setup/install/virtual-machine/#configure-the-virtual-machine),
|
||||
相应的 `WorkloadEntry` 将被 Istio 控制面自动创建。例如:
|
||||
相应的 `WorkloadEntry` 将被 Istio 控制面自动创建,例如:
|
||||
|
||||
{{< text yaml >}}
|
||||
apiVersion: networking.istio.io/v1beta1
|
||||
|
|
|
|||
|
|
@ -8,40 +8,40 @@ test: no
|
|||
---
|
||||
|
||||
[Grafana](https://grafana.com/) 是一个开源的监控解决方案,可以用来为 Istio
|
||||
配置仪表板。您可以使用 Grafana 来监控 Istio 及部署在服务网格内的应用程序。
|
||||
配置仪表盘。您可以使用 Grafana 来监控 Istio 及部署在服务网格内的应用程序。
|
||||
|
||||
## 配置 {#config}
|
||||
## 配置 {#config}
|
||||
|
||||
尽管可以构建自己的仪表板,但 Istio 同时也提供了一组预先配置的仪表板用来监视网格和控制平面的所有最重要的指标。
|
||||
尽管可以构建自己的仪表盘,但 Istio 同时也提供了一组预先配置的仪表盘用来监视网格和控制平面的所有最重要的指标。
|
||||
|
||||
* [Mesh Dashboard](https://grafana.com/grafana/dashboards/7639) 为运行在网格中的所有服务提供概览视图。
|
||||
* [Service Dashboard](https://grafana.com/grafana/dashboards/7636) 为服务提供详细的分类指标。
|
||||
* [Workload Dashboard](https://grafana.com/grafana/dashboards/7630) 为负载提供详细的分类指标。
|
||||
* [Performance Dashboard](https://grafana.com/grafana/dashboards/11829) 监控网格资源使用情况。
|
||||
* [Control Plane Dashboard](https://grafana.com/grafana/dashboards/7645) 监控控制面的健康状况及性能指标.
|
||||
* [WASM Extension Dashboard](https://grafana.com/grafana/dashboards/13277) 提供了网格范围的 WebAssembly 扩展运行时和加载状态的概述。
|
||||
* [网格仪表盘](https://grafana.com/grafana/dashboards/7639) 为运行在网格中的所有服务提供概览视图。
|
||||
* [Service 仪表盘](https://grafana.com/grafana/dashboards/7636) 为 Service 提供详细的分类指标。
|
||||
* [工作负载仪表盘](https://grafana.com/grafana/dashboards/7630) 为工作负载提供详细的分类指标。
|
||||
* [性能仪表盘](https://grafana.com/grafana/dashboards/11829) 监控网格资源使用情况。
|
||||
* [控制平面仪表盘](https://grafana.com/grafana/dashboards/7645) 监控控制面的健康状况及性能指标。
|
||||
* [WASM 扩展仪表盘](https://grafana.com/grafana/dashboards/13277) 提供了网格范围的 WebAssembly 扩展运行时和加载状态的概述。
|
||||
|
||||
可以通过多种方法来配置 Grafana 来使用这些仪表板:
|
||||
可以通过多种方法来配置 Grafana 来使用这些仪表盘:
|
||||
|
||||
### 方法1:快速开始 {#option-1-quick-start}
|
||||
### 方法1:快速开始 {#option-1-quick-start}
|
||||
|
||||
Istio 提供了一个基本的安装示例,以快速让 Grafana 启动和运行,
|
||||
与所有已经安装的 Istio 仪表板捆绑在一起:
|
||||
Istio 提供了一个基本的安装示例,以快速启动和运行 Grafana,
|
||||
与所有已经安装的 Istio 仪表盘捆绑在一起:
|
||||
|
||||
{{< text bash >}}
|
||||
$ kubectl apply -f {{< github_file >}}/samples/addons/grafana.yaml
|
||||
{{< /text >}}
|
||||
|
||||
通过 kubectl apply 方式将 Grafana 部署到集群中。该策略仅用于演示,
|
||||
并没有针对性能或安全性进行调优。
|
||||
通过 `kubectl apply` 方式将 Grafana 部署到集群中。
|
||||
此策略仅用于演示,并没有针对性能或安全性进行调优。
|
||||
|
||||
### 方法2:从 `grafana.com` 导入已经部署的 Deployment {#option-2-import-from-grafanacom-into-an-existing-deployment}
|
||||
### 方法2:从 `grafana.com` 导入已经部署的 Deployment {#option-2-import-from-grafanacom-into-an-existing-deployment}
|
||||
|
||||
如果想要快速地将Istio仪表板导入到现有的Grafana实例中,您可以使用
|
||||
如果想要快速地将 Istio 仪表盘导入到现有的 Grafana 实例中,您可以使用
|
||||
[Grafana UI 中的 **Import** 按钮](https://grafana.com/docs/grafana/latest/reference/export_import/#importing-a-dashboard)
|
||||
来添加上面的仪表板链接。当导入仪表板时,请注意必须选择一个 Prometheus 数据源。
|
||||
来添加上面的仪表盘链接。当导入仪表盘时,请注意必须选择一个 Prometheus 数据源。
|
||||
|
||||
也可以使用脚本一次导入所有仪表板。例如:
|
||||
也可以使用脚本一次导入所有仪表盘,例如:
|
||||
|
||||
{{< text bash >}}
|
||||
$ # Address of Grafana
|
||||
|
|
@ -68,11 +68,11 @@ $ echo -e "\nDone\n"
|
|||
$ done
|
||||
{{< /text >}}
|
||||
|
||||
### 方法3:特定的实现方法 {#option-3-implementation-specific-methods}
|
||||
### 方法3:特定的实现方法 {#option-3-implementation-specific-methods}
|
||||
|
||||
Grafana 可以通过其他方法进行安装和配置。要导入 Istio 仪表板,
|
||||
请参考文档中的安装方法。例如:
|
||||
Grafana 可以通过其他方法进行安装和配置。要导入 Istio 仪表盘,
|
||||
请参考文档中的安装方法,例如:
|
||||
|
||||
* [Grafana provisioning](https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards) 官方文档。
|
||||
* [Importing dashboards](https://github.com/helm/charts/tree/master/stable/grafana#import-dashboards)
|
||||
`stable/grafana` Helm chart 文档。
|
||||
* [Grafana 配置](https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards)官方文档。
|
||||
* [导入仪表盘](https://github.com/helm/charts/tree/master/stable/grafana#import-dashboards)
|
||||
`stable/grafana` Helm Chart 文档。
|
||||
|
|
|
|||
Loading…
Reference in New Issue