[zh] Sync tasks/debug-application-cluster/resource-metrics-pipeline.md

This commit is contained in:
Qiming Teng
2020-11-20 11:42:09 +08:00
parent 1e38b53fc8
commit 5abd960d9c
@@ -14,28 +14,29 @@ content_type: concept
<!--
Resource usage metrics, such as container CPU and memory usage,
are available in Kubernetes through the Metrics API. These metrics can be either accessed directly
by user, for example by using `kubectl top` command, or used by a controller in the cluster, e.g.
are available in Kubernetes through the Metrics API. These metrics can be accessed either directly
by the user with the `kubectl top` command, or by a controller in the cluster, for example
Horizontal Pod Autoscaler, to make decisions.
-->
资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得。
这些指标可以直接被用户访问,比如使用 `kubectl top` 命令行,或者这些指标由集群中的控制器使用,
例如Horizontal Pod Autoscaler,使用这些指标来做决策。
这些指标可以直接被用户访问,比如使用 `kubectl top` 命令行,或者集群中的控制器
例如 Horizontal Pod Autoscalers) 使用来做决策。
<!-- body -->
<!--
## The Metrics API
Through the Metrics API you can get the amount of resource currently used
Through the Metrics API, you can get the amount of resource currently used
by a given node or a given pod. This API doesn't store the metric values,
so it's not possible for example to get the amount of resources used by a
so it's not possible, for example, to get the amount of resources used by a
given node 10 minutes ago.
-->
## Metrics API {#the-metrics-api}
通过 Metrics API,你可以获得指定节点或 Pod 当前使用的资源量。
此 API 不存储指标值,因此想要获取某个指定节点 10 分钟前的资源使用量是不可能的。
此 API 不存储指标值,因此想要获取某个指定节点 10 分钟前的
资源使用量是不可能的。
<!--
The API is no different from any other API:
@@ -43,12 +44,12 @@ The API is no different from any other API:
此 API 与其他 API 没有区别:
<!--
- it is discoverable through the same endpoint as the other Kubernetes APIs under `/apis/metrics.k8s.io/` path
- it offers the same security, scalability and reliability guarantees
- it is discoverable through the same endpoint as the other Kubernetes APIs under the path: `/apis/metrics.k8s.io/`
- it offers the same security, scalability, and reliability guarantees
-->
- 此 API 和其它 Kubernetes API 一起位于同一端点(endpoint)之下,是可发现
- 此 API 和其它 Kubernetes API 一起位于同一端点(endpoint)之下可发现,
路径为 `/apis/metrics.k8s.io/`
-提供相同的安全性、可扩展性和可靠性保证
-具有相同的安全性、可扩展性和可靠性保证
<!--
The API is defined in [k8s.io/metrics](https://github.com/kubernetes/metrics/blob/master/pkg/apis/metrics/v1beta1/types.go)
@@ -69,7 +70,11 @@ Metrics API 需要在集群中部署 Metrics Server。否则它将不可用。
### CPU
CPU is reported as the average usage, in [CPU cores](/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu), over a period of time. This value is derived by taking a rate over a cumulative CPU counter provided by the kernel (in both Linux and Windows kernels). The kubelet chooses the window for the rate calculation.
CPU is reported as the average usage, in
[CPU cores](/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu),
over a period of time. This value is derived by taking a rate over a cumulative CPU counter
provided by the kernel (in both Linux and Windows kernels).
The kubelet chooses the window for the rate calculation.
-->
## 度量资源用量 {#measuring-resource-usage}
@@ -80,6 +85,15 @@ CPU 用量按其一段时间内的平均值统计,单位为
此度量值通过在内核(包括 Linux 和 Windows)提供的累积 CPU 计数器乘以一个系数得到。
`kubelet` 组件负责选择计算系数所使用的窗口大小。
<!--
### Memory
Memory is reported as the working set, in bytes, at the instant the metric was collected.
In an ideal world, the "working set" is the amount of memory in-use that cannot be freed under memory pressure.
However, calculation of the working set varies by host OS, and generally makes heavy use of heuristics to produce an estimate.
It includes all anonymous (non-file-backed) memory since Kubernetes does not support swap.
The metric typically also includes some cached (file-backed) memory, because the host OS cannot always reclaim such pages.
-->
### 内存 {#memory}
内存用量按工作集(Working Set)的大小字节数统计,其数值为收集度量值的那一刻的内存用量。
@@ -94,37 +108,35 @@ CPU 用量按其一段时间内的平均值统计,单位为
<!--
## Metrics Server
[Metrics Server](https://github.com/kubernetes-incubator/metrics-server) is a cluster-wide aggregator of resource usage data.
Starting from Kubernetes 1.8 it's deployed by default in clusters created by `kube-up.sh` script
[Metrics Server](https://github.com/kubernetes-sigs/metrics-server) is a cluster-wide aggregator of resource usage data.
By default, it is deployed in clusters created by `kube-up.sh` script
as a Deployment object. If you use a different Kubernetes setup mechanism you can deploy it using the provided
[deployment yamls](https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy).
It's supported in Kubernetes 1.7+ (see details below).
[deployment components.yaml](https://github.com/kubernetes-sigs/metrics-server/releases) file.
-->
## Metrics 服务器 {#metrics-server}
[Metrics 服务器](https://github.com/kubernetes-incubator/metrics-server)是集群范围资源使用数据的聚合器。
在由 `kube-up.sh` 脚本创建的集群中默认会以 Deployment 的形式被部署
[Metrics 服务器](https://github.com/kubernetes-sings/metrics-server)
是集群范围资源用量数据的聚合器
默认情况下,在由 `kube-up.sh` 脚本创建的集群中会以 Deployment 的形式被部署。
如果你使用其他 Kubernetes 安装方法,则可以使用提供的
[deployment yamls](https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy)
[部署组件 components.yaml](https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy)
来部署。
<!--
Metric server collects metrics from the Summary API, exposed by [Kubelet](/docs/admin/kubelet/) on each node.
Metric server collects metrics from the Summary API, exposed by
[Kubelet](/docs/reference/command-line-tools-reference/kubelet/) on each node, and is registered with the main API server via
[Kubernetes aggregator](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/).
-->
Metric server 从每个节点上的 [Kubelet](/zh/docs/reference/command-line-tools-reference/kubelet/)
Metric 服务器从每个节点上的 [kubelet](/zh/docs/reference/command-line-tools-reference/kubelet/)
公开的 Summary API 中采集指标信息。
该 API 通过
[Kubernetes 聚合器](/zh/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
注册到主 API 服务器上。
<!--
Metrics Server registered in the main API server through
[Kubernetes aggregator](/docs/concepts/api-extension/apiserver-aggregation/),
which was introduced in Kubernetes 1.7.
Learn more about the metrics server in
[the design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/metrics-server.md).
-->
Metrics 服务器通过
[Kubernetes 聚合器](/zh/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
注册到主 API 服务器。
<!--
Learn more about the metrics server in [the design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/metrics-server.md).
-->
在[设计文档](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/metrics-server.md)中可以了解到有关 Metrics 服务器的更多信息。
在[设计文档](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/instrumentation/metrics-server.md)
中可以了解到有关 Metrics 服务器的更多信息。