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: tutorials/monitor-kubernetes-data-plane-with-cockpit/index.mdx
+39-15Lines changed: 39 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ With this feature:
21
21
-**Simplify troubleshooting**: Quickly drill down into specific pods or containers without needing to configure a separate logging stack.
22
22
23
23
<Messagetype="important">
24
-
This feature does incur costs based on the volume of logs ingested. Refer to [Cockpit FAQ](/faq/cockpit/#how-am-i-billed-for-using-cockpit-with-custom-data) for more details and best practices to avoid unexpected bills. |
24
+
This feature does incur costs based on the volume of logs ingested. Refer to [Cockpit FAQ](/faq/cockpit/#how-am-i-billed-for-using-cockpit-with-custom-data) for more details and best practices to avoid unexpected bills.
25
25
</Message>
26
26
27
27
<Macroid="requirements" />
@@ -30,13 +30,20 @@ With this feature:
30
30
- An API Key with [IAM permissions](/identity-and-access-management/iam/reference-content/permission-sets/) to edit your cluster `(KubernetesFullAccess` or `KubernetesSystemMastersGroupAccess`)
31
31
-[A token](/observability/cockpit/how-to/create-token/) with permissions to push to, and query logs from Cockpit
32
32
33
-
## Architecture and Limitations
33
+
## Architecture and limitations
34
34
35
35
### Control Plane vs. Data Plane
36
36
37
37
-**Control Plane**: Fully managed by Scaleway. Users can already [monitor control plane components](/containers/kubernetes/how-to/monitor-cluster/) (e.g., `kube-apiserver`, `CCM`, `CSI`) via Cockpit.
38
38
-**Data Plane**: Runs in your Scaleway Project (customer-managed instances, `kubelet`, `containerd`, customer Pods, etc.). You have **full access** to the data plane, including the ability to SSH into nodes.
| Responsibility | Fully managed by Scaleway | Managed by the customer (runs in your Scaleway Project) |
43
+
| Components |`kube-apiserver`, `CCM`, `CSI`, etc. |`kubelet`, `containerd`, customer Pods, and system components like `kubelet.service`. |
44
+
| Access | Users can monitor components via Cockpit ([see how-to guide](/containers/kubernetes/how-to/monitor-cluster/)) | Full access to data, including SSH into nodes, log management, and custom configurations. |
45
+
| Billing | Included in cluster costs | Billed based on log ingestion volume (see pricing below). |
46
+
40
47
Because the data plane is entirely under your control, **logs from any components running on these nodes are considered your own data**. Consequently, shipping these logs to Cockpit is billed based on data ingestion.
41
48
42
49
## How it works
@@ -60,24 +67,28 @@ You can use Scaleway’s **[Easy Deploy](/containers/kubernetes/how-to/enable-ea
60
67
- Collect container logs for **all namespaces** (by default).
You may edit the default configuration of the deployment to specify the sources of logs to ingest (under `config.snippets.scrapeConfigs` in the yaml file): `cockpit_promtail_scrape_config_pods: “… list of namespaces…” cockpit_promtail_scrape_config_journal: “… list of system components…”` |
65
-
</Message>
70
+
<Messagetype="note">
71
+
You can edit the default deployment configuration to filter logs by source (under `config.snippets.scrapeConfigs` in the YAML file). For example:
Below is a simplified snippet of the configuration that Easy Deploy generates by default:
70
81
71
-
```
82
+
```yaml
72
83
config:
73
84
clients:
74
-
- bearer_token: "{{{ cockpit_bearer_token }}}" # no need to modify
75
-
url: "{{{ cockpit_loki_push_url }}}" # no need to modify
85
+
- bearer_token: "{{{ cockpit_bearer_token }}}"#Automatically set by Easy Deploy
86
+
url: "{{{ cockpit_loki_push_url }}}"#Automatically set by Easy Deploy
76
87
77
88
snippets:
78
89
scrapeConfigs: |
79
-
{{{- cockpit_promtail_scrape_config_pods }}} #default all pods are logged
80
-
{{{- cockpit_promtail_scrape_config_journal }}} #default all system components are logged
90
+
{{{- cockpit_promtail_scrape_config_pods }}} # Default: log all pods
91
+
{{{- cockpit_promtail_scrape_config_journal }}} # Default: log all system components
81
92
extraVolumeMounts:
82
93
- mountPath: /var/log/journal
83
94
name: journal
@@ -89,7 +100,7 @@ extraVolumes:
89
100
```
90
101
91
102
<Message type="note">
92
-
Template values like `{{{ cockpit_bearer_token }}}` and `{{{ cockpit_loki_push_url }}}` are automatically replaced by the Easy Deploy system with your actual values. Please do not overwrite any of these two values. |
103
+
Template values like `{{{ cockpit_bearer_token }}}` (Bearer Token) and `{{{ cockpit_loki_push_url }}}` (Loki URL) are automatically set. Avoid modifying these values.
93
104
</Message>
94
105
95
106
## Observing logs in Cockpit
@@ -114,7 +125,15 @@ Key points include:
114
125
- **Filtering**: Limit logs to critical namespaces or system components only.
115
126
116
127
<Message type="note">
117
-
You may edit the default configuration of the deployment to adjust the volume of logs to ingest: `extraLimitsConfig: | readline_rate_enabled: true #rate limiting readline_rate: 10000 #log lines / sec readline_burst: 10000 #cap for burst lines readline_rate_drop: true #drop excess lines`
128
+
You may edit the default configuration of the deployment to adjust the volume of logs to ingest:
129
+
```yaml
130
+
extraLimitsConfig: |
131
+
readline_rate_enabled: true # rate limiting
132
+
readline_rate: 10000 # log lines / sec
133
+
readline_burst: 10000 # cap for burst lines
134
+
readline_rate_drop: true # drop excess lines
135
+
```
136
+
118
137
</Message>
119
138
120
139
<Message type="tip">
@@ -130,15 +149,20 @@ Key points include:
130
149
## Troubleshooting
131
150
132
151
- **No logs appearing** in Cockpit:
133
-
- Verify that the Promtail pod is running (`kubectl get pods -n <promtail-namespace>`).
0 commit comments