Documentation
DocumentationDiscussions
Documentation
These docs are for v2023.2. Click to read the latest docs for v2024.3.

Using Helm

Details on using the Seq Helm chart

Kubernetes is a container orchestration platform that standardizes many of the concerns around deploying, integrating, exposing, and maintaining applications. With some configuration, Seq can run in Kubernetes. The best way to get started is using the seq Helm chart.

Installing Seq

Use Helm to install the Seq chart. First, add the datalust Helm repository:

helm repo add datalust https://helm.datalust.co
helm repo update

Then you can install the seq chart:

helm install my-seq datalust/seq

This will create a Seq instance in your cluster as a cluster-internal service with persistent storage. It can be discovered and logged to by other other apps within the cluster, but won't be externally visible.

🚧

Before going live

Make sure you check the storage and memory docs for more recommendations for a healthy deployment.

Upgrading Seq

Use:

helm upgrade my-seq

to upgrade a Seq instance in your cluster. Only a single instance of Seq can use its storage at a time, so deployments will use the Recreate strategy to ensure the previous instance is removed before a new one is started.

Ingesting from within the cluster

A Seq instance can be discovered within the cluster using a generated DNS record. So if the release is called seq in the logging namespace, then it can be reached at seq.logging.svc.cluster.local.

See the section on collecting application logs for more details.

Ingesting from outside the cluster

Seq can be made accessible to external consumers through an ingress. Ingress requires an ingress controller to be running in your cluster.

The Seq Helm chart allows ingress for the full Seq UI and/or the limited ingestion-only API.

The following example configures ingress for the UI, using an existing nginx controller as an ingest controller:

helm install -f config.yaml my-seq datalust/seq
# config.yaml
ingress:
  annotations:
    kubernetes.io/ingress.class: nginx

ui:
  ingress:
    enabled: true
    path: /
    hosts:
      - seq.mydomain.com


ingestion:
  ingress:
    enabled: true
    path: /
    hosts:
      - ingestion.seq.mydomain.com

📘

Ingress for the UI and ingestion API can only be separated by subdomain, rather than by the port or path.

Adding a DNS entry pointing seq.mydomain.com and ingestion.seq.mydomain.com to your ingress controller's public IP will forward requests to the Seq service.

For other considerations, see Ingress.