diff --git a/docs/windows.md b/docs/windows.md index 1aae07913..645805c83 100644 --- a/docs/windows.md +++ b/docs/windows.md @@ -5,11 +5,65 @@ support for windows. ## Running collection on windows nodes -In order to fully support windows nodes, the following issues should be addressed: +- To setup a k8s cluster with windows nodes, here's a terraform registry for reference: -- Windows nodes do not support linux filesystems -- We should use HostProcess Containers to support log collection -- Lack of windows supported containers + - https://registry.terraform.io/modules/aws-samples/windows-workloads-on-aws/aws/latest/submodules/eks-windows + +- It is a known limitation that windows nodes only support the containerd runtime: + + - https://kubernetes.io/docs/concepts/windows/intro/#containerd + +- We need the Windows nodes to use containerd 1.7.1 or greater to keep linux mounts on Windows hosts + + - https://kubernetes.io/docs/tasks/configure-pod-container/create-hostprocess-pod/#containerd-v1-7-and-greater + - PR: https://github.com/containerd/containerd/pull/8331 + +- The logs collection container (and possibly others) must be HostProcess containers for privileged access on the Windows node + + - https://kubernetes.io/docs/tasks/configure-pod-container/create-hostprocess-pod/#hostprocess-pod-configuration-requirements + +- The metadata enrichment layer continues to run on linux nodes + +- Only pods responsible for collecting logs, run on both windows and linux nodes + +- The windows container base images we use are mentioned below + + - https://hub.docker.com/r/microsoft/windows-nanoserver + +- Hardware recommendations for Windows containers + - https://kubernetes.io/docs/concepts/windows/intro/#windows-hardware-recommendations + +## Recommendations and limitations + +Kubernetes clusters are required to have linux nodes even in clusters predominantly running windows nodes. This is because the k8s control +plane requires linux nodes. Based on this, we recommend the following: + +- It is currently recommended to have atleast 3 linux nodes for the control plane and the opentelemetry metadata enrichment layer +- Logs collection on windows nodes is currently experimental. Only container logs are currently ingested. +- Metrics and traces collection is only supported on linux nodes + +## Configuration + +- To enable logs collection on Windows nodes please use the configuration below + + ``` + sumologic: + logs: + collector: + otellogswindows: + enabled: true + ``` + +- To change the base image for windows containers please see the example below: + + ``` + sumologic: + clusterName: k8s-cluster + otellogswindows: + image: + repository: "public.ecr.aws/sumologic/sumologic-otel-collector-dev" + tag: "latest-windows-amd64-ltsc2022" + ``` ### Known Issues