diff --git a/docs/instrument/collector-setup/kubernetes-helm-setup.md b/docs/instrument/collector-setup/kubernetes-helm-setup.md index 7f2cbec..a2ed36c 100644 --- a/docs/instrument/collector-setup/kubernetes-helm-setup.md +++ b/docs/instrument/collector-setup/kubernetes-helm-setup.md @@ -82,6 +82,92 @@ helm install scout base14/scout-collector --version 0.6.0 \ ``` +## Windows Nodes + +:::note + +Windows node support is experimental. It is disabled by default, so enabling +it is an explicit opt-in. + +::: + +If your cluster has Windows node groups, the collector needs a second DaemonSet +to run on them. A single DaemonSet cannot serve both operating systems: the +collector image is published separately for Linux and Windows, and the Linux +daemon mounts Linux host paths that Windows pods do not support. + +### Enabling it + +Set this in your `values.yaml`, then install as shown above: + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true +``` + +The Windows daemon shares your Scout endpoint and credentials with the other +collectors, so there is nothing further to configure. + +The exception is `extraEnvs`, which is per-collector: Helm replaces lists rather +than merging them. If you supply the Scout secret through an environment +variable rather than setting `scout.apiKey`, add the same entry under +`windowsDaemon.extraEnvs` as well as `agent-collector.extraEnvs`. + +### What it collects + +Container logs from `C:\var\log\pods` and kubelet stats from the Windows +kubelet. + +Host metrics, Windows Event Log and performance counters are not collected yet. + +Telemetry from applications *running on* Windows nodes does not need any of +this — point your SDKs at the agent as usual. The service is named after your +Helm release, so with the `helm install scout ...` above it is: + +```text +scout-agent-collector.scout.svc:4318 +``` + +### Windows Server version + +The default image targets **Windows Server 2022**. A Windows container image +must match the host build, so on Server 2019 set the tag explicitly: + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true + image: + tag: "0.130.1-windows-2019-amd64" +``` + +A cluster with a mix of 2019 and 2022 nodes needs one DaemonSet per build, since +a single pod template carries a single image. Contact support and we will help +you configure it. + +### Other options + +```yaml showLineNumbers title="values.yaml" +scout: + windowsDaemon: + enabled: true + # Windows node pools are often tainted; tolerate yours here. + tolerations: [] + # Where the kubelet writes container logs, if your nodes differ. + hostLogPath: 'C:\var\log\pods' + # The collector runs as ContainerUser, which is not an administrator. If log + # collection fails with permission errors, set ContainerAdministrator. + runAsUserName: "" + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 512Mi + cpu: 400m +``` + ## Configuration Guide ## Using Otelcol style configuration