You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/concepts/cluster-administration/system-traces.md
+29-6Lines changed: 29 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,15 +13,23 @@ weight: 60
13
13
14
14
System component traces record the latency of and relationships between operations in the cluster.
15
15
16
-
Kubernetes components emit traces using the [OpenTelemetry Protocol](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md#opentelemetry-protocol-specification) with the gRPC exporter and can be collected and routed to tracing backends using an [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector#-opentelemetry-collector).
For a complete guide to collecting traces and using the collector, see [Getting Started with the OpenTelemetry Collector](https://opentelemetry.io/docs/collector/getting-started/). However, there are a few things to note that are specific to Kubernetes components.
25
+
For a complete guide to collecting traces and using the collector, see
26
+
[Getting Started with the OpenTelemetry Collector](https://opentelemetry.io/docs/collector/getting-started/).
27
+
However, there are a few things to note that are specific to Kubernetes components.
23
28
24
-
By default, Kubernetes components export traces using the grpc exporter for OTLP on the [IANA OpenTelemetry port](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=opentelemetry), 4317. As an example, if the collector is running as a sidecar to a Kubernetes component, the following receiver configuration will collect spans and log them to standard output:
29
+
By default, Kubernetes components export traces using the grpc exporter for OTLP on the
As an example, if the collector is running as a sidecar to a Kubernetes component,
32
+
the following receiver configuration will collect spans and log them to standard output:
25
33
26
34
```yaml
27
35
receivers:
@@ -43,11 +51,19 @@ service:
43
51
44
52
### kube-apiserver traces
45
53
46
-
The kube-apiserver generates spans for incoming HTTP requests, and for outgoing requests to webhooks, etcd, and re-entrant requests. It propagates the [W3C Trace Context](https://www.w3.org/TR/trace-context/) with outgoing requests but does not make use of the trace context attached to incoming requests, as the kube-apiserver is often a public endpoint.
54
+
The kube-apiserver generates spans for incoming HTTP requests, and for outgoing requests
55
+
to webhooks, etcd, and re-entrant requests. It propagates the
56
+
[W3C Trace Context](https://www.w3.org/TR/trace-context/) with outgoing requests
57
+
but does not make use of the trace context attached to incoming requests,
58
+
as the kube-apiserver is often a public endpoint.
47
59
48
60
#### Enabling tracing in the kube-apiserver
49
61
50
-
To enable tracing, enable the `APIServerTracing` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) on the kube-apiserver. Also, provide the kube-apiserver with a tracing configration file with `--tracing-config-file=<path-to-config>`. This is an example config that records spans for 1 in 10000 requests, and uses the default OpenTelemetry endpoint:
on the kube-apiserver. Also, provide the kube-apiserver with a tracing configration file
65
+
with `--tracing-config-file=<path-to-config>`. This is an example config that records
66
+
spans for 1 in 10000 requests, and uses the default OpenTelemetry endpoint:
51
67
52
68
```yaml
53
69
apiVersion: apiserver.config.k8s.io/v1alpha1
@@ -57,10 +73,17 @@ kind: TracingConfiguration
57
73
samplingRatePerMillion: 100
58
74
```
59
75
76
+
For more information about the `TracingConfiguration` struct, see
77
+
[API server config API (v1alpha1)](/docs/reference/config-api/apiserver-config.v1alpha1/#apiserver-k8s-io-v1alpha1-TracingConfiguration).
78
+
60
79
## Stability
61
80
62
-
Tracing instrumentation is still under active development, and may change in a variety of ways. This includes span names, attached attributes, instrumented endpoints, etc. Until this feature graduates to stable, there are no guarantees of backwards compatibility for tracing instrumentation.
81
+
Tracing instrumentation is still under active development, and may change
82
+
in a variety of ways. This includes span names, attached attributes,
83
+
instrumented endpoints, etc. Until this feature graduates to stable,
84
+
there are no guarantees of backwards compatibility for tracing instrumentation.
63
85
64
86
## {{% heading "whatsnext" %}}
65
87
66
88
* Read about [Getting Started with the OpenTelemetry Collector](https://opentelemetry.io/docs/collector/getting-started/)
* ReadWriteOnce -- the volume can be mounted as read-write by a single node
416
416
* ReadOnlyMany -- the volume can be mounted read-only by many nodes
417
417
* ReadWriteMany -- the volume can be mounted as read-write by many nodes
418
+
* ReadWriteOncePod -- the volume can be mounted as read-write by a single Pod.
419
+
This is only supported for CSI volumes and Kubernetes version 1.22+.
418
420
419
421
In the CLI, the access modes are abbreviated to:
420
422
421
423
* RWO - ReadWriteOnce
422
424
* ROX - ReadOnlyMany
423
425
* RWX - ReadWriteMany
426
+
* RWOP - ReadWriteOncePod
424
427
425
428
> __Important!__ A volume can only be mounted using one access mode at a time, even if it supports many. For example, a GCEPersistentDisk can be mounted as ReadWriteOnce by a single node or ReadOnlyMany by many nodes, but not at the same time.
0 commit comments